From Salix OS
The Broadcom wireless chip needs proprietary software (called "firmware") that runs on the wireless chip itself to work properly. This firmware is copyrighted by Broadcom and must be extracted from Broadcom's proprietary drivers. To get such firmware on your system, you must download the driver from a legal distribution point, extract it, and install it.
http://linuxwireless.org/en/users/Drivers/b43
Here is a short guide on how to create a b43(legacy) firmware package for your system.
Contents |
Supported devices
First you need to find out which firmware you require for your device. You can use the lspci command to display the Chip-ID of the wireless card which can then be compared against the Supported devices list at http://linuxwireless.org.
# lspci -vnn | grep 14e4 0001:01:01.0 Network controller [0280]: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02)
The Chip-ID from the example above is [14e4:4318], using this information you should discover this card requires the b43 (as opposed to b43legacy) kernel module using version 4.150.10.5 of the firmware.
Salix 13.1
If you are a Salix 13.1 user please read the How to install b43 firmware for Broadcom wifi (Salix 13.1) forum thread.
Salix 13.37 (and above)
First you need to install the b43-fwcutter package from the Salix repository.
slapt-get -u slapt-get -i b43-fwcutter
Distributed with the b43-fwcutter package are a number of ready-made build scipts (SLKBUILD) you can use to create a b43 or b43legacy firmware package. These scripts can be found in the /usr/share/b43-fwcutter/ directory.
To create a package copy the relevant build script in to an empty directory then execute slkbuild -X as root (super user) from that directory. The source archive will be fetched from the internet (you will need an active internet connection) and the package created.
mkdir b43 cd b43 cat /usr/share/b43-fwcutter/b43-firmware-4.150.10.5.SLKBUILD > SLKBUILD slkbuild -X
Once the package has been created you can install it with the package management tools.
spkg -i b43-firmware-4.150.10.5-fw-1pw.txz
With the addition of Sourcery and slapt-src to Salix 13.37 it is also possible to install similar packages from SlackBuilds.org quickly and easily.
Note: It is planned to distribute the above SLKBUILD scripts via the Salix slapt-src repository in the future.
Post-installation
Once the firmware has been installed you can load the b43 (or b43legacy) kernel module with the modprobe command. If the module doesn't load automatically on startup then you may want to add the command to /etc/rc.d/rc.local.
modprobe b43
If you have installed Broadcom's Hybrid Linux Driver then you will need to unload the wl module first.
modprobe -r wl
To perminently blacklist the wl module use the following command. This way you can easily delete /etc/modprobe.d/blacklist-wl.conf to remove the blacklist at a later date.
echo "blacklist wl" > /etc/modprobe.d/blacklist-wl.conf
Note: It is planned for the b43 firmware packages to automatically create this file in the future.
Troubleshooting
There may be times when your target system doesn't have any access to the internet other than via a wireless connection which creates a "chicken and egg" situation when it comes to upgrading or changing the installed operating system.
Since this situation has been raised on the forum many times here are a few helpful hints.
- The firmware has no architecture so the packages can be created on either version of Salix (32bit or 64bit) and installed on the other version.
- The system you use to extract the firmware does not require a Broadcom wireless card to be connected to it.
- Solution A: Install Salix inside a virtual machine before installing to your hard drive so you can create the firmware package while you still have a working internet connection.
- Solution B: Use a Salix Live CD to create the firmware package on another system with a working internet connection.