SDB:Wireless network card
This article will take you through the steps of getting different wireless network cards to work with openSUSE.
In many cases your wlan card will work out of the box and you needn't worry about it. In case it doesn't here's what to do.
Find out which chipset is on the card
The first step is to find out which chipset is on the card. The manufacturer is irrelevant, what matters is the chipset. There only exists a limited number of chipsets that all the card manufacturers use. The chipset tells you which driver you need.
Use this command if you have a pcmcia card or an onboard card:
Look for the wireless card in the list and find the chipset, for example bcm43xx, Intel Pro Wireless, Atheros, RT2500 etc.
If you have a usb card use this command:
This won't output very detailed information, but it'll give you a unique hardware ID, for example 046d:c01b, search for it with Google or another internet search engine to find out what chipset is on the device.
The next step depends on the chipset. There can be a variety of reasons why a chipset is not supported out of the box. It may need proprietary firmware, there can be legal issues, or if you're unlucky there's no native Linux-driver for you chipset at all.
Getting your card to work
Intel Pro Wireless (IPW) 2100/2200
This is one of the most widely used cards. There's a driver for it in the kernel but you need some proprietary firmware as well for it to work. This is very easy to get, just install the package ipw-firmware from the non-oss repository
Intel Pro Wireless (IPW) 3945/4965
This chipset has an opensource driver included and an additional firmware as well for it to work. Be sure that the packages iwlwifi and iwl3945-ucode/iwl4965-ucode are installed from the repository
There's a driver in the wlan-kmp-<kernel flavour> package. Ralink have been very cooperative with the free and open source software community.
The driver for these cards needs a non-oss hal that is considered in violation of the kernel license. Therefore this driver is not provided with the openSUSE madwifi package. You should be able to find packages for openSUSE elsewhere.
Intersil's Prism54 chips series
The following chips are (partly) supported
- ISL3877, ISL3880, ISL3890 and ISL3886 (miniPCI)
- ISL3886 + net2280 (USB, 1st generation with net2280 usb<->pci bridge)
- ISL3887 (USB, 2nd generation, native USB interface)
--( STMicroelectronics' STLC4560 (SPI) - available in wireless-testing )
For the ISL3890 miniPCI chip I have used the information from URL http://lekernel.net/prism54/ and the FullMAC driver URL http://lekernel.net/prism54/fullmac.html Download the proprietary 18.104.22.168 firmware for the prism54 driver and put it in the /lib/firmware/ directory and rename it to isl3890 Run the command modprobe prism54 as root and configure the wireless networkcard in yast/ Network Devices/ Network Settings and check under the tab global options, that User Controlled with NetworkManager was selected as Network Setup Method. After saving this configuration and configuring the NetworkManager settings my wireless Intersil Corporation ISL3890 [Prism GT/Prism Duette] networkcard started working.
Since version 2.6.17 of the Linux kernel there's a native driver included. This driver is reverse engineered, Broadcom have done nothing to help get support for the cards on Linux. Besides the driver you also need non-oss firmware, unlike Intel Broadcom won't allow distribution of this firmware by Linux distributors like Novell. So you need to manually extract the firmware from a Windows or Mac driver. Install the package bcm43xx-fwcutter. This package includes a script that will automatically get a driver from the internet and extract the firmware to the correct place. As root enter following command (I have added /usr in front of the command since in my openSUSE 10.3 system this was needed)
If it turns out, via dmesg, that you have a 4311/version 2 chip, you NEED kernel 2.6.25. The default openSUSE 2.6.22 kernel will not work with this device. Furthermore, you need to use driver b43, not bcm43xx, which means that you will also need new V4 firmware. I have installed the 2.6.25 kernel, the new open source b43 driver and the new version 4 firmware using the following URL:
After configuring the wireless network card with Yast and configuring KDE's NetworkManager the Broadcom 802.11g adapter BCM94311 MCG WLan Mini PCI started working correctly.
PS Just to help others with the same problem here are the clarifications I got from Larry Finger on the above mentioned URL.
I follow the URL, provided, to building a new kernel. I have a few remarks to make the text of the URL clearer and provide Larry's answers on my questions.
ad 1 Download kernel source Select option F behind kernel 2.6.25 otherwise you will download a patch.
ad 2 Unpack In the directory you saved the linux-2.6.25.tar.bz2 file
ad 5 Make sure you have installed qt3_devel should read qt3-devel
ad 6 In the GUI question 1: Networking/Wireless ...... Deselect "Generic IEEE80211 Networking stack (depreciated)" I can only toggle between " . " or " V " What should I do? If you cannot deselect it completely, then leave it with a dot. I think that some other network interface module requires it, which is the reason you cannot deselect it. It won't hurt. Dot means selects it as a module and the check has it built into the kernel.
question 2: Device Drivers/Network Device Support/Wireless LAN Should I not do anything, check or dot, with Broadcom BCM43xx wireless support (depreciated). Deselect bcm43xx.
ad7 Make How do I know that make ends witout errors? Does it say something after completion about errors? If there had been an error, it would have aborted with a message. Yours finished just fine.
For information on http://zd1211.ath.cx/wiki/DriverRewrite.
The zd1211rw driver is already installed in the kernel. Download the firmware files from http://zd1211.ath.cx/wiki/DriverRewrite and copy to /lib/firmware/zd1211, create folders if they do not exist. Then connect your wireless card, and set it using Yast. It is possible that your card is detected as ethx wlanX instead, accept the automatic detection and check that it uses the zd1211rw module. Active knetworkmanager and use it to connect to the wi-fi network you want.
There's no driver for your card
If there's absolutely no native Linux driver maybe you can use a Windows driver with ndiswrapper, see ndiswrapper howto. Use only as a last resort.