On 08/22/16 12:57 AM, Joshua M. Clulow wrote:
If you need to port graphics bits from FreeBSD, or OpenBSD, or from somewhere else, just start working on it! Kernel development isn't a dark art, or a secret club with handshakes and lodge hats; it requires tenacity, and dogged persistence, but it's all just software.
Or even from Solaris, as we've made our i915 KMS port available as well: https://hg.java.net/hg/solaris-x11~x-s12-clone/file/default/open-src/kernel If you'd like to learn more before diving into the code, you could start by watching some of the talks from the Solaris & BSD porters at X.Org conferences in recent years - see https://www.x.org/wiki/Events/XDC2015/Program/ and the previous XDC programs listed on https://www.x.org/wiki/Events/History/ . There's also some in-depth blogs from the Linux i915 KMS maintainer at http://blog.ffwll.ch/tags/ which may be useful. One thing you may hear in several places is "It's easier/better to port your kernel to KMS than to port KMS to your kernel" - which is a way of saying you'll want to add interfaces to the kernel that KMS needs, even if they're just a thin shim over the native interfaces, since a successful port will not be a "do it once and done forever" thing, but will need ongoing long term maintenance since graphics and graphics devices continue to evolve at a much faster rate than things like storage devices or network devices. (Just look at the "new things in drm/i915" posts every couple months on the blog above.) That's unfortunately the part left out of the above Solaris code release which you may have an easier time finding in the open source kernels from the BSDs, but our maintainer gave one of the talks mentioned above and can answer some questions about it. (But if the question is "Can you publish the rest of the source?", the answer is still "Sorry, no we can't.") Alternatively, you could learn to use Coccinelle <http://coccinelle.lip6.fr/> and then write a series of API mapping transforms you apply to every new code version you bring in, but in either case, far more of the DRI/KMS porting work lies in things like memory management and matching up kernel/driver API's than in actual graphics programming. -alan- ------------------------------------------- illumos-discuss Archives: https://www.listbox.com/member/archive/182180/=now RSS Feed: https://www.listbox.com/member/archive/rss/182180/21175430-2e6923be Modify Your Subscription: https://www.listbox.com/member/?member_id=21175430&id_secret=21175430-6a77cda4 Powered by Listbox: http://www.listbox.com