SDB:Broadcom (BCM4306) WLAN Installation under SUSE
From openSUSE
Version 9.3 - 10.2
Contents |
Situation
Situation 1 - You have a Broadcom WLAN card based on BCM4306 chipset but the card is not active because of the missing Linux Driver (Version 9.3 - 10.0). See "ndiswrapper procedure".
Situation 2 - You have openSUSE 10.2 and you have a Broadcom bcm43xx series chipset listed in YaST > Network Devices > Network Card. Note: openSUSE 10.2 was distributed with the BCM46xx driver but not the firmware for legal reasons.
openSUSE 10.2 Option 1 - You can use the orginal drivers distributed with openSUSE 10.2, however, the bcm46xx drivers only support 11 Mb/s. Users who need/want the original drivers need to load the firmware for the chipset using bcm43xx-fwcutter. See "Original Driver Procedure"
openSUSE 10.2 Option 2 - You can maximize your wireless hardware to 54 Mb/s in most cases using the ndiswrapper, however to use this option you will need to remove the bcm46xx drivers and blacklist them from being reloaded again using the "bmc43xx Removal Procedure" then use the "ndiswrapper procedure".
ndiswrapper Procedure
Note: In 10.2 you must first remove the original bcm43xx driver according to "openSUSE 10.2 Option 2 - bcm43xx Removal Procedure", prior to using ndiswrapper, see below for removal procedure
1. You need to check if ndiswrapper is installed through: Yast > Software > Software Installation and search for ndiswrapper. 2. Start the shell console (Kmenu >System > Terminal Program > Terminal) and login as root with the command:
sux -
and type in the root password. Afterwards create a directory with:
mkdir /lib/windrivers
You need to download the Windows driver for BCM4306 from the following link: http://www.silfreed.net/download/hpzt3000cto/SP23107A.tar.gz [seems to be corrupt; try this link: http://www.suseblog.com/bcmwl5.tar.bz2 ] and place them under /lib/windrivers:
mv PATH_TO_DRIVER /lib/windrivers
From the console change to the directory with the drivers:
cd /lib/windrivers
Afterwards execute
tar -zxvf NAME_OF_DRIVER.tar.gz
for example tar -zxvf SP23107A.tar.gz then
cd NAME_OF_DRIVER
Check if threre are no other ndiswrapper modules loaded with:
ndiswrapper -l
if there are some, remove them with:
ndiswrapper -e NAME_OF_MODULE
After this install the Drivermodule with
ndiswrapper -i bcmwl5.inf
[you then probably still have to remove and blacklist the old bcm43xx driver, which seems to block the new driver. Do as follows:
rmmod bcm43xx
After that, as root, edit /etc/modprobe.conf.local . Add this line to tell it to never load the bcm43xx module:
blacklist bcm43xx
(compare: http://www.suseblog.com/?p=279#comment-98263 )]
and load the module with
modprobe ndiswrapper
Reboot. Now you can configure your WLAN card through YAST > Network devices > Network card and configure a new wireless card and use the module name ndiswrapper. The other options here depend on the network system you want to use. (Fixed IP or DHCP, encryption etc.)
You can check if the card is active as from the console [Ctrl] + [Alt] + [F1] as "root" and type in
iwconfig
or
ifconfig
to see if the interface is recognized.
openSUSE 10.2 Option 1 - Original Driver Procedure
- On an HP Pavilion zv6000 laptop the driver configures automatically on a fresh install but is not funcional; the BIOS still reads that the card is enabled but if you watch the boot messages you'll see a line saying radio is disabled. The 1-touch-button for enable/disable wireless is off and pushing the button or using KWifiManager does not remedy the problem. Installing bcm43xx-fwcutter firmware will fix this problem.
1. You need to check if the bcm43xx-fwcutter package is installed through: Yast > Software > Software Installation and search for bcm43xx-fwcutter
2. Find the windows driver for your wireless chip. An example windows driver was titled bcmwl5.sys Also note if you can't find yours try doing a google search for wl_apsta.o (SUSE worked with both the orginal windows driver and the wl_apsta.o at the time of this WIKI post). Put the driver file on your desktop in SUSE.
3. Start the shell console (Kmenu >System > Terminal Program > Terminal) and login as root with the command:
sux -
and type in the root password
Extract your firmware files from your wireless chip and store them in the firmware file by typing in the following. (Note: Swap out the name of your driver accordingly...in this example it is wl_apsta.o):
bcm43xx-fwcutter -w /lib/firmware ~/Desktop/wl_apsta.o
4. Another way to install the firmware is using the install script included in the bcm43xx-fwcutter package. You need to have a working internet connection for this as it is attempted to download wl_apsta.o, next the firmware is extracted and stored in /lib/firmware.
install_bcm43xx_firmware
5. Now that the firmware is ready for the driver to use, load the module by typing the following:
modprobe bcm43xx
6. Reboot and now you can configure your WLAN card through YAST > Network devices > Network card
openSUSE 10.2 Option 2 - bcm43xx Removal Procedure
Only use the procedure below if you plan on removing openSUSE 10.2's original bcm43xx driver and installing the unsupported ndiswrapper driver.
1. Start the shell console (Kmenu >System > Terminal Program > Terminal) and login as root with the command:
sux -
and type in the root password
See if you have the bcm43xx drivers still installed:
lsmod | grep bcm43xx
Any response means it's installed, so remove it:
rmmod bcm43xx
Now blacklist it from being loaded again by adding the line "blacklist bcm43xx" to very bottom of the /etc/modprobe.d/blacklist file. To open the file with Kwrite type:
su -c 'kwrite /etc/modprobe.d/blacklist'
Also edit /etc/sysconfig/hardware/(your nic card) to change the module. Change 'bcm43xx' to 'ndiswrapper'
su -c 'kwrite /etc/sysconfig/hardware/hwcfg-bus-pci-xxx
2. Now follow the instructions in the "ndiswrapper procedure" above to setup your wireless card using ndiswrapper.
Keywords: Broadcom | BCM4306 | BCM43XX | bcm43xx-fwcutter | WLAN | wireless

