Kernel comment: Perseverance pays off
by Thorsten Leemhuis
Today, there are open source Linux drivers for all major Wi-Fi chips, which was unimaginable five years ago. The constant pressure for open source drivers has thus paid off, and this may also work in other areas in the long term.
"Buy a Centrino notebook, and then the Wi-Fi chipset will work with Linux." Five years ago, such simplifications were more common because a lot of the Wi-Fi components either did not run on Linux or took a lot of tweaking, say, with Ndiswrapper and Driverloader to get the NDIS drivers intended for use with Windows to run on Linux. Internet forums contained thousands of comments on these issues, and people repeatedly said that the Linux kernel needed a stable API for external drivers; otherwise, manufacturers would never offer proper Linux drivers for Wi-Fi hardware.
We now know that such a step was not necessary, for all major manufacturers of Wi-Fi hardware for PCs and notebooks are currently working on open source drivers maintained within work on the Linux kernel.
Wi-Fi chips that are well supported by the Linux kernel therefore work on a lot of current distributions right after installation, or with live media, without any user intervention. In fact, the process is much more user-friendly than in the Windows world and makes rescue media especially designed for non-Linux users quite interesting. Kernel hackers are also quite satisfied because they can easily adapt kernel APIs and drivers to accommodate new situations in other areas without having to take special account of backwards compatibility; if any problems occur, they have access to the sources and can go troubleshooting until they reach the limits of hardware, firmware and documentation.
As the wording "well supported by the Linux kernel" at the beginning of the previous paragraph suggests, the situation is not perfect, but it is pretty satisfying, as the Kernel Log on changes to network drivers and infrastructure in Linux 2.6.39 reveals. Broadcom chips were long considered problematic, and justifiably so, but now the firm has become the last major vendor of Wi-Fi hardware to take part in developing open source drivers. But, there are still start-up and coordination issues: for example, at the same time as Broadcom released its open source driver, the kernel hackers were already adding support for some of the same chips to the open source driver that is already included in the kernel, duplicating effort.
Ralink and Realtek have already gone a step further by working with kernel hackers who maintain the Linux kernel's Wi-Fi driver and Wi-Fi stack. For some time now, both of them have been offering open source Linux drivers developed outside of the kernel for their own Wi-Fi chips. Because they often have their own Wi-Fi stack and suffer from a lack of quality in other respects, they generally only make it into the kernel's staging area, designed for drivers of low quality; because these drivers have some problems, a few distributors do not include them. Closer cooperation with kernel developers should prevent such problems in drivers for new chips. The two companies, however, seem to be largely leaving the task of cleaning up older staging drivers to the community, so the driver situation for Ralink and Realtek's Wi-Fi hardware will not improve overnight, but only in the long term.
Atheros and Intel are a step ahead of their three competitors since they have both been taking part in driver development in the kernel for quite some time; they even program some of the improvements for the kernel's Wi-Fi stack, from which their competitors' drivers benefit. When Wi-Fi chips from these two firms do not work (well), the chips are often very new or the drivers are too old, because distributions generally only pass on fresh drivers to users after a few months. Despite this praise, the situation is not perfect here, either; for instance, Intel hardly releases any documentation, which causes problems in maintaining drivers for old Wi-Fi components.
Nonetheless, the insistence by open source developers on proper, clean, open source Wi-Fi drivers (with support from distributors, sometimes outside of the public eye) has paid off in the end. This persistence on the principle that "drivers are part of the Linux kernel" has led to widespread acceptance after many years in which some Linux fans, companies, and driver developers expressly countered that open source Wi-Fi drivers are simply not possible, the reasons or excuses including issues wireless guidelines, laws, and intellectual property rights.
The latter argument about IPR is also made for Linux graphics drivers: some people repeatedly call for a stable API for proprietary drivers. Linux developers would be well advised not to give in here either, because the light is already visible at the end of the tunnel; following Intel's example, AMD has been working on open source drivers for its own graphics chips for a few years, and work is improving. Recently, open source developers at AMD even got an advance look at the development of future graphics chips so they could announce their requirements early on, so as to allow the functionality to be used with open source drivers. In the long run, the situation for open source graphics drivers could improve in the way it did for Wi-Fi drivers. One day, NVIDIA might even realise that open source drivers are important for widespread success in the Linux world – it is a realisation that the firm came to a few years ago regarding drivers for mainboard chipsets.
Thorsten Leemhuis is the author of Kernel Log, published on The H and heise Open in Germany, which tracks, in detail, developments and advances in the Linux kernel and its ecosystem of free and open source software. Editions of Kernel Log can be found by using the search function at The H Open Source.