Broadcom releases open source wireless driver for Linux
Broadcom has released its brcm80211 wireless driver for Linux, suitable for the BCM4313, BCM43224 and BCM43225 802.11n wireless chips, under a GPL2-compatible license. Kernel hacker Greg Kroah-Hartman has already merged it into the staging tree, the area reserved for drivers which are not of normal Linux kernel quality, and announced that the driver will be merged into the main Linux development tree in Linux 2.6.37, which has an expected release date of late this year or early 2011.
Linux wireless driver veteran Luis R. Rodriguez ("mcgrof") praises Broadcom in a 'dent' on Twitter alternative Identi.ca. He considers this the end of a five-year mission to open source all major 802.11 wireless drivers. In the long-term, this step should also render superfluous a warning against purchasing Broadcom hardware which recently found its way into the wireless driver developer wiki and was mentioned in a recent Kernel Log. Wireless driver developers are currently meeting in San Francisco.
The warning was made with respect to the proprietary broadcom-wl driver, which, apart from ndiswrapper, which is now barely maintained, has been the only option for using many newer Broadcom wireless chips in Linux. The Linux kernel has long included the b43 driver, created largely through reverse engineering, for many older Broadcom wireless chips – as well as chips supported by the new driver, the b43 page on the Linux wireless developer wiki includes a number of chips which are not currently considered supported. The release announcement for brcm80211 indicates that the driver offers a framework for supporting further chips.
The driver that has now been released is based on the Linux kernel's Mac80211 wireless stack, which forms the basis for all newer kernel wireless drivers. This gives it a head start on some other drivers in the staging branch which are based on other Wi-Fi stacks, though this may not be the only reason these drivers are quarantined in the area for lower-quality drivers.
The documentation for brcm80211 provides information on the driver's functionality. The to do file (obligatory for staging drivers) gives an overview of the work required before the driver can make the transition from the staging area to the space reserved for 'proper' wireless drivers in the kernel source code. Kernel developers may also use the newly open sourced code to add support for components supported by brcm80211 to the older Broadcom driver, possibly leading to a new name in the event of a major rewrite.