Everyone grumbles about Linux driver problems, but kernel hacker Greg Kroah-Hartman actually did something about it. Kroah-Hartman created a program by which open-source developers would create drivers for hardware vendors even if their equipment was proprietary. Over a year later, though, Kroah-Hartman has found that the vast majority of hardware OEMs (original equipment manufacturers) already offer Linux support.
As Kroah-Hartman explains in his Linux Driver Project Status Report as of April 2008, “The Linux Driver Project (LDP) is alive and well, with over 300 developers wanting to participate, many drivers already written and accepted into the Linux kernel tree, and many more being currently developed. The main problem is a lack of projects. It turns out that there really isn’t much hardware that Linux doesn’t already support. Almost all new hardware produced is coming with a Linux driver already written by the company, or by the community with help from the company.”
Be that as it may, there are two classes of hardware where Linux users face perpetual hardware driver woes. These are “video input devices and wireless network cards, that is not well supported by Linux, but large efforts are already underway to resolve this issue, with the wireless driver issue pretty much taken care of already, however there are a few notable exceptions,” said Kroah-Hartman.
In general, though, Kroah-Hartman sees people’s perception of there not being enough Linux drivers as a myth. What perpetuates this myth are four things. The first two are the aforementioned video input and Wi-Fi devices. The other two are printer and scanners, especially all-in-one units that combine multiple functions into one box, and ” There are two main classes of hardware, video input devices and wireless network cards, that is not well supported by Linux, but large efforts are already underway to resolve this issue, with the wireless driver issue pretty much taken care of already, however there are a few notable exceptions.”
In the case of printers and scanners, Kroah-Hartman said that these are already “being handled very well by the Linux Printing project and the SANE project.” In any case, he continued, “Printer and scanner drivers in Linux are userspace 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 it. They are very knowledgeable, skilled, have vendor contacts, and can do a lot to help resolve your issues.”
As for older equipment, well, there’s only so much you can do with hardware that has no documentation, no open APIs (application programming interfaces), and sometimes, no surviving manufacturer. As Kroah-Hartman said, “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.”
But, what about the real problem children, Wi-Fi and video-input devices? According to Kroah-Hartman, “The Linux-Wireless group of developers have 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.”
Still, Kroah-Hartman admits, “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. These drivers usually lag the introduction of the hardware by a number of months due to the lack of vendor support.”
Unfortunately for Linux users, Broadcom and Atheros are ranked by ABI Research as the number one and number two Wi-Fi chipset vendors. So, while Linux does have better Wi-Fi support, it doesn’t have it for the equipment where it needs it the most.
As for video-input devices, such as Web-cams, well there things aren’t looking so rosy. Kroah-Hartman said that while “there is an active Linux developer community” it’s “hampered by a different development model (Mercurial trees outside of the main kernel source), and a lack of full-time developers, not to mention a high degree of inter-personal conflicts.”
Still, he continued, “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.”
So, all that said, Kroah-Hartman announced that the LDP is changing its focus. Now, it will work with vendors to help them understand how to work with Linux. In addition, he’s trying a new approach to creating new Linux drivers for vendors that do want the LDP’s help.
In addition, according to Brandon Phillips, a Linux kernel developer who works for Novell and with the LDP, “LDP developers will be working on cleaning up existing drivers that are ‘out of tree’ from the main Linux kernel.” Out of tree device drivers are ones that work with Linux, but have never been sufficiently cleaned up to actually be made an official part of Linux.
According to Phillips, this will not only add more devices that are automatically supported by any Linux distribution, it will also give new device driver developers some useful experience. Needless to say, of course, Phillips also said that, “The LDP would love to work on new drivers. If a vendor has a problem with revealing information about their device, they can work with the Linux Foundation as a trusted third party under NDAs (non-disclosure agreements).