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

Reply via email to