How to encourage Vendors to participate in the kernel community
Dirk Hohndel started a session to talk about hardware interactions with the kernel. Jon Linville started with the atheros driver and the current open source implementations and the recent kerfluffle about that driver. It looks like that is all resolved now. There are also issues though with concern about government regulations regarding wireless broadcast ranges. While the regulatory requirements are a bit subjective, most vendors are being quite conservative and mostly avoiding working with the community as well. Intel, for instance, is using originally user level and now firmware to help match the interpretation of the regulatory requirements. However, the atheros cards are completely controlled by the host CPU, so the open source/drivers can't use the binary user level or firmware implementations. This is why Atheros currently uses a binary core with their existing driver.
On the nVidia side, the nouveau driver has made some progress but it is very slow going. It is very difficult to figure out the existing registers and semantics for the hardware. There has been great progress with the 2D accelleration model, and working now on dual head operation and laptop operating. There is some hope that Fedora 8 will ship a pre-release of the driver, and it is probably a year from being fully working. There is also the ati500 driver, it is slowly working one card at a time, each PCI ID being enabled one at a time. No work has been done on 3D, although the R500 has the same 3D engine as the R400 which should help.
The other recent player is Via - which asked for a Linux driver. Not sure yet how we are going to work with them.
Chris Schlager, director of the AMD research center. AMD has been successful so far primarily because of Linux. They have recently acquired ATI, which of course happens to make graphics cards. A recently announced project is Fusion, which tries to combine a CPU with a GPU. Of course, the ATI GPU is currently enabled by a binary blob, which of couse is at odds with the kernel community. The current driver can not be open sourced for various reasons. However, AMD will be developing a driver for 2D and 3D for all r500 and r600 devices. All of this will be done in the X.org environment, probably under the MIT license (not yet sorted out but that is the most likely outcome). ATI is also willing to answer questions, although they may not be able to provide specifications.
At this point, Dirk switched to talking about how the community actually makes it harder for vendors (IHV's in this case) to work with the community, which is actually encouraging IHV's to create and distribute binary drivers. Open source participants are effectively getting punished in comparison when working with the development community. Binary driver writers can simply release drivers on their own schedules, with complete control of their own environment. Open source participants on the other hand, work through the unpredictable interactions with the community, and delivering drivers is much more difficult and much less predictable.
The request is twofold - one is to make binary modules substantially more difficult AND to make it much easier to get drivers into mainline. Linus still supports binary modules primarily because they are not derived works of Linux. But, we also need to be better about accepting support for new hardware. The discussion wandered a bit with an emphasis on making it easier to add support for new hardware as opposed to making it harder to run binary modules, both both resonated well with the group.
Labels: linux kernel summit