2007-02-21, 01:07 AM
I noticed there were upwards of 800 views to my previous post about wireless in SuSE 10.2, and zero responses. I dug and dug and dug, and finally, at www.opensuse.org of all places, they had a fix for me. I will post it here as verbatim as I can, otherwise you can see it in full by clicking here. . Please note that this will only work with BROADCOM cards, not atheros or any other brand. Be warned.
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".
[edit]
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: [/url][url=http://www.silfreed.net/download/hpzt3000cto/SP23107A.tar.gz]http://www.silfreed.net/download/hpzt3000cto/SP23107A.tar.gz 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
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.
[edit]
openSUSE 10.2 Option 1 - Original Driver Procedure
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
Now that the firmware is extracted and 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
[edit]
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.