bcm43xx.txt 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. BCM43xx Linux Driver Project
  2. ============================
  3. Introduction
  4. ------------
  5. Many of the wireless devices found in modern notebook computers are
  6. based on the wireless chips produced by Broadcom. These devices have
  7. been a problem for Linux users as there is no open-source driver
  8. available. In addition, Broadcom has not released specifications
  9. for the device, and driver availability has been limited to the
  10. binary-only form used in the GPL versions of AP hardware such as the
  11. Linksys WRT54G, and the Windows and OS X drivers. Before this project
  12. began, the only way to use these devices were to use the Windows or
  13. OS X drivers with either the Linuxant or ndiswrapper modules. There
  14. is a strong penalty if this method is used as loading the binary-only
  15. module "taints" the kernel, and no kernel developer will help diagnose
  16. any kernel problems.
  17. Development
  18. -----------
  19. This driver has been developed using
  20. a clean-room technique that is described at
  21. http://bcm-specs.sipsolutions.net/ReverseEngineeringProcess. For legal
  22. reasons, none of the clean-room crew works on the on the Linux driver,
  23. and none of the Linux developers sees anything but the specifications,
  24. which are the ultimate product of the reverse-engineering group.
  25. Software
  26. --------
  27. Since the release of the 2.6.17 kernel, the bcm43xx driver has been
  28. distributed with the kernel source, and is prebuilt in most, if not
  29. all, distributions. There is, however, additional software that is
  30. required. The firmware used by the chip is the intellectual property
  31. of Broadcom and they have not given the bcm43xx team redistribution
  32. rights to this firmware. Since we cannot legally redistribute
  33. the firwmare we cannot include it with the driver. Furthermore, it
  34. cannot be placed in the downloadable archives of any distributing
  35. organization; therefore, the user is responsible for obtaining the
  36. firmware and placing it in the appropriate location so that the driver
  37. can find it when initializing.
  38. To help with this process, the bcm43xx developers provide a separate
  39. program named bcm43xx-fwcutter to "cut" the firmware out of a
  40. Windows or OS X driver and write the extracted files to the proper
  41. location. This program is usually provided with the distribution;
  42. however, it may be downloaded from
  43. http://developer.berlios.de/project/showfiles.php?group_id=4547
  44. The firmware is available in two versions. V3 firmware is used with
  45. the in-kernel bcm43xx driver that uses a software MAC layer called
  46. SoftMAC, and will have a microcode revision of 0x127 or smaller. The
  47. V4 firmware is used by an out-of-kernel driver employing a variation of
  48. the Devicescape MAC layer known as d80211. Once bcm43xx-d80211 reaches
  49. a satisfactory level of development, it will replace bcm43xx-softmac
  50. in the kernel as it is much more flexible and powerful.
  51. A source for the latest V3 firmware is
  52. http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o
  53. Once this file is downloaded, the command
  54. 'bcm43xx-fwcutter -w <dir> <filename>'
  55. will extract the microcode and write it to directory
  56. <dir>. The correct directory will depend on your distribution;
  57. however, most use '/lib/firmware'. Once this step is completed,
  58. the bcm3xx driver should load when the system is booted. To see
  59. any messages relating to the driver, issue the command 'dmesg |
  60. grep bcm43xx' from a terminal window. If there are any problems,
  61. please send that output to Bcm43xx-dev@lists.berlios.de.
  62. Although the driver has been in-kernel since 2.6.17, the earliest
  63. version is quite limited in its capability. Patches that include
  64. all features of later versions are available for the stable kernel
  65. versions from 2.6.18. These will be needed if you use a BCM4318,
  66. or a PCI Express version (BCM4311 and BCM4312). In addition, if you
  67. have an early BCM4306 and more than 1 GB RAM, your kernel will need
  68. to be patched. These patches, which are being updated regularly,
  69. are available at ftp://lwfinger.dynalias.org/patches. Look for
  70. combined_2.6.YY.patch. Of course you will need kernel source downloaded
  71. from kernel.org, or the source from your distribution.
  72. If you build your own kernel, please enable CONFIG_BCM43XX_DEBUG
  73. and CONFIG_IEEE80211_SOFTMAC_DEBUG. The log information provided is
  74. essential for solving any problems.