Subject: Binary only drivers in sys?
To: None <tech-kern@netbsd.org>
From: Bruce J.A. Nourish <bjan+tech-kern@bjan.net>
List: tech-kern
Date: 08/24/2003 19:41:50
Hey everyone,

I've porting FreeBSD's ath(4) to NetBSD over the last few days, and I'm 
now blocking on some changes to the 80211 subsystem that David Young is
working on.

I'm taking this interlude to ask a question: what should we do about 
non-BSD licensed kernel code? Specifically, the atheros driver relies
upon a binary only ELF object, which is released under a licence that
prohibits use and distribution in modified form. By FCC regulations,
this software cannot be released under any other license.

FreeBSD solved the problem by putting the non-BSD object in a contrib
subdir. We don't have such a subdir for the kernel. As the goal of
this porting effort is the get the code into the kernel, the Core
team will have to decide where they want it. Also, when I'm done with
ath(4), I'm considering porting ltmdm, the Lucent windmodem driver, from 
FreeBSD; this also relies on a restrictively licensed .o file.

I've considered LKM's as potentially the ideal solution to the problem,
but there are no examples of LKM network drivers. Could such a thing
be made reasonably easily? How would I go about it?

Also, I believe FreeBSD's loader(8) can insert modules into the kernel
at boot. Would anyone want such a feature in NetBSD? The only use I
can think of would be to let people with binary-only network drivers
install/netboot NetBSD. It would certainly be nice, though.

-- 
Bruce J.A. Nourish <bjan+JUNK@bjan.net>