1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- 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 <dir> <filename>'
- will extract the microcode and write it to directory
- <dir>. The correct directory will depend on your distribution;
- however, most use '/lib/firmware'. Once this step is completed,
- the bcm3xx driver should load when the system is booted. To see
- any messages relating to the driver, issue the command 'dmesg |
- grep bcm43xx' from a terminal window. If there are any problems,
- please send that output to Bcm43xx-dev@lists.berlios.de.
- Although the driver has been in-kernel since 2.6.17, the earliest
- version is quite limited in its capability. Patches that include
- all features of later versions are available for the stable kernel
- versions from 2.6.18. These will be needed if you use a BCM4318,
- or a PCI Express version (BCM4311 and BCM4312). In addition, if you
- have an early BCM4306 and more than 1 GB RAM, your kernel will need
- to be patched. These patches, which are being updated regularly,
- are available at ftp://lwfinger.dynalias.org/patches. Look for
- combined_2.6.YY.patch. Of course you will need kernel source downloaded
- from kernel.org, or the source from your distribution.
- If you build your own kernel, please enable CONFIG_BCM43XX_DEBUG
- and CONFIG_IEEE80211_SOFTMAC_DEBUG. The log information provided is
- essential for solving any problems.
|