BCM43xx Linux Driver Project ============================ Introduction ------------ Many of the wireless devices found in modern notebook computers are based on the wireless chips produced by Broadcom. These devices have been a problem for Linux users as there is no open-source driver available. In addition, Broadcom has not released specifications for the device, and driver availability has been limited to the binary-only form used in the GPL versions of AP hardware such as the Linksys WRT54G, and the Windows and OS X drivers. Before this project began, the only way to use these devices were to use the Windows or OS X drivers with either the Linuxant or ndiswrapper modules. There is a strong penalty if this method is used as loading the binary-only module "taints" the kernel, and no kernel developer will help diagnose any kernel problems. Development ----------- This driver has been developed using a clean-room technique that is described at http://bcm-specs.sipsolutions.net/ReverseEngineeringProcess. For legal reasons, none of the clean-room crew works on the on the Linux driver, and none of the Linux developers sees anything but the specifications, which are the ultimate product of the reverse-engineering group. Software -------- Since the release of the 2.6.17 kernel, the bcm43xx driver has been distributed with the kernel source, and is prebuilt in most, if not all, distributions. There is, however, additional software that is required. The firmware used by the chip is the intellectual property of Broadcom and they have not given the bcm43xx team redistribution rights to this firmware. Since we cannot legally redistribute the firmware we cannot include it with the driver. Furthermore, it cannot be placed in the downloadable archives of any distributing organization; therefore, the user is responsible for obtaining the firmware and placing it in the appropriate location so that the driver can find it when initializing. To help with this process, the bcm43xx developers provide a separate program named bcm43xx-fwcutter to "cut" the firmware out of a Windows or OS X driver and write the extracted files to the proper location. This program is usually provided with the distribution; however, it may be downloaded from http://developer.berlios.de/project/showfiles.php?group_id=4547 The firmware is available in two versions. V3 firmware is used with the in-kernel bcm43xx driver that uses a software MAC layer called SoftMAC, and will have a microcode revision of 0x127 or smaller. The V4 firmware is used by an out-of-kernel driver employing a variation of the Devicescape MAC layer known as d80211. Once bcm43xx-d80211 reaches a satisfactory level of development, it will replace bcm43xx-softmac in the kernel as it is much more flexible and powerful. A source for the latest V3 firmware is http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o Once this file is downloaded, the command 'bcm43xx-fwcutter -w