Man vs. Myth: Greg Kroah-Hartman and the Kernel Driver Project
Don't tell Greg Kroah-Hartman that Linux hurts for device drivers. He's heard too much of that rap, and he's already done plenty to stop it. We should thank him and help pick up the ball. I'm doing both here.
The beginning of the end of the Missing Drivers Myth came at the 2006 Ottowa Linux Symposium, where Greg said, “Linux supports more different types of devices than any other operating system ever has in the history of computing.”
Still, the OSDL (later the Linux Foundation) board—composed mostly of large vendors—listed device drivers as the #2 “most pressing issue”. So the Linux Driver Project (LDP) was created. Alas, Greg reports on his blog, “No vendors showed up.” But after he announced, “Tell me all of the hardware that you know of that is not supported by Linux!”, he writes, “the response from users was overwhelming”. Thus, a canonical wiki list was created at the LDP.
After this, Greg went to each vendor personally, and the conversation almost always went like this:
GREG: “What hardware do you ship that is not currently supported by Linux?”
VENDOR: “It all is.”
GREG: “But wait, why are you claiming that 'Linux drivers' is your second most pressing issue today with Linux?”
VENDOR: “I don't know.”
Thanks to those clues, missing drivers is out of the board members' top ten pressing issues.
But, there always is work to be done. As Greg puts it, that work falls into four categories of user complaints. Here they are, with excerpts of Greg's responses to each:
1. Printer and scanner support: “...already being handled very well by the Linux Printing Project and the SANE Project. Printer and scanner drivers in Linux are user-space programs and libraries and have nothing to do with the kernel at all. If you have any issues with these types of devices, please go ask the developers of those projects about them.”
2. Older devices no longer manufactured that people really want to see working on their Linux machines someday: “...is hard. It would be great for Linux to support all of these older devices, but without the specs for the device, or in many cases, a company that is still in business, Linux support is going to be very difficult to achieve....Luckily, for almost all modern hardware devices, it is not necessary.”
3. Wireless device support: “the Linux-Wireless group of developers has done an amazing amount of work in the past year, adding a whole new wireless protocol stack to the Linux kernel, as well as numerous different hardware drivers, some initially created by vendors and others created by reverse-engineering the hardware with no vendor help or approval. The latest kernel.org releases contain a raft of new hardware support for wireless drivers, and the number of active drivers in the queue to be added in the near future is quite large. Alas, there are still some wireless vendors that do not provide Linux support directly. Two of these, Atheros and Broadcom, have drivers created by the community through reverse-engineering efforts....Hopefully, this will change in the future.”
4. Video input device support: “...there is an active Linux developer community in this area, but it seems to be hampered by a different development model...and a lack of full-time developers, not to mention a high degree of interpersonal conflicts that seem quite strange to outsiders. Support for a large majority of these devices is slowly trickling into the main kernel tree—the most important being the USB video class driver, which will support almost all new USB video devices in the future, thereby removing the major problem most users will face when purchasing a new video device.”
In addition to further education, Greg has opened development by keeping all code related to the LDP in a quilt patch series that is automatically included in the linux-next-daily kernel releases, which are then contained in a git tree that “provides a place where developers can provide changes, updates and see where they can help out if they wish to do so in a much easier manner. It also provides a way for companies participating to observe the status of their code in a much more open manner.”
It would be nice if Atheros and Broadcom were among those companies.
For more, visit linuxdriverproject.org.
Greg's blog post is at www.kroah.com/log/linux/linux_driver_project_status-2008-04.html.