[PATCH] bcm43xx: Update Documentation/bcm43xx.txt
The in-kernel documentation of the bcm43xx driver is out of date. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
c6710e50f6
commit
70a734391a
|
@ -2,35 +2,88 @@
|
||||||
BCM43xx Linux Driver Project
|
BCM43xx Linux Driver Project
|
||||||
============================
|
============================
|
||||||
|
|
||||||
About this software
|
Introduction
|
||||||
-------------------
|
|
||||||
|
|
||||||
The goal of this project is to develop a linux driver for Broadcom
|
|
||||||
BCM43xx chips, based on the specification at
|
|
||||||
http://bcm-specs.sipsolutions.net/
|
|
||||||
|
|
||||||
The project page is http://bcm43xx.berlios.de/
|
|
||||||
|
|
||||||
|
|
||||||
Requirements
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
1) Linux Kernel 2.6.16 or later
|
Many of the wireless devices found in modern notebook computers are
|
||||||
http://www.kernel.org/
|
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.
|
||||||
|
|
||||||
You may want to configure your kernel with:
|
Development
|
||||||
|
-----------
|
||||||
|
|
||||||
CONFIG_DEBUG_FS (optional):
|
This driver has been developed using
|
||||||
-> Kernel hacking
|
a clean-room technique that is described at
|
||||||
-> Debug Filesystem
|
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.
|
||||||
|
|
||||||
2) SoftMAC IEEE 802.11 Networking Stack extension and patched ieee80211
|
Software
|
||||||
modules:
|
--------
|
||||||
http://softmac.sipsolutions.net/
|
|
||||||
|
|
||||||
3) Firmware Files
|
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 firwmare 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.
|
||||||
|
|
||||||
Please try fwcutter. Fwcutter can extract the firmware from various
|
To help with this process, the bcm43xx developers provide a separate
|
||||||
binary driver files. It supports driver files from Windows, MacOS and
|
program named bcm43xx-fwcutter to "cut" the firmware out of a
|
||||||
Linux. You can get fwcutter from http://bcm43xx.berlios.de/.
|
Windows or OS X driver and write the extracted files to the proper
|
||||||
Also, fwcutter comes with a README file for further instructions.
|
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.
|
||||||
|
|
Loading…
Reference in a new issue