Installing BCM4306 wireless LAN controller in RHEL
Linux - Wireless NetworkingThis forum is for the discussion of wireless networking in Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Installing BCM4306 wireless LAN controller in RHEL
Hello all,
I have installed RHEL4 (Update 2) with a Linksys BCM4306 802.11b/g wireless LAN Controller (rev 02) card in it.
This card got detected with the lspci command. Now how to make in work actually i.e., where to find the driver. I already googled but no feasible link to this cards driver. Every discussion seems to end in ndiswrapper which is completely new to me.
1) b43/b43-legacy - These are the drivers in the kernel and are almost certainly part of the RHEL4 kernel. Have a look at your lsmod output and see if either of them are already loaded. If you go this direction, you need to use a program called fwcutter to create the firmware files necessary for the b43/b43-legacy driver to work. There are good instructions here on how to do that.
2)ndiswrapper - This allows Windows drivers to function in Linux. To use this, you'll have to compile ndsiwrapper (usually pretty easy) and install a Windows driver (check out the ndiswrapper wiki for good instructions). You will also have to blacklist b43 and the ssb module, otherwise you'll get a conflict over the wireless card.
Hi,
Thanks for your answer.
I have moved to Fedora core7 for this. After installing I am confused as whether the wireless card is really installed or what, as in modprobe there is no entry of it.
In 'network configuration' window its showing only the Builtin lan card as broadcom Tigon3 but not showing the wireless one.
Below are the settings:
PHP Code:
[root@localhost ~]# cat /etc/modprobe.conf alias eth0 tg3 alias scsi_hostadapter ata_piix alias snd-card-0 snd-intel8x0 options snd-card-0 index=0 options snd-intel8x0 index=0
[root@localhost ~]# iwconfig lo no wireless extensions.
eth0 no wireless extensions.
wmaster0 no wireless extensions.
wlan0 IEEE 802.11g ESSID:"" Mode:Managed Channel:0 Access Point: Not-Associated Retry min limit:7 RTS thr:off Fragment thr=2346 B Encryption key:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
The /var/log/messages is showing
Code:
May 29 21:35:36 localhost kernel: bcm43xx_mac80211: Adding Interface type 2
May 29 21:35:36 localhost kernel: bcm43xx_mac80211: Error: Microcode "bcm43xx_microcode4.fw" not available or load failed.
May 29 21:35:36 localhost firmware_helper[30980]: Loading of /lib/firmware/bcm43xx_microcode4.fw for bcm43xx_mac80211 driver failed: No such file or directory
May 29 21:35:38 localhost NetworkManager: <WARN> nm_device_802_11_wireless_scan(): could not trigger wireless scan on device wlan0: Network is down
I have moved to Fedora core7 for this. After installing I am confused as whether the wireless card is really installed or what, as in modprobe there is no entry of it.
Moving to FC7 doesn't change anything I wrote in my first post. You either have to install the firmware for the native linux driver or you have to install ndiswrapper and a Windows driver.
If you look at your iwconfig output, it DOES see the wireless card (wlan0). And looking at the log output, it shows that bcm43xx (the now discontinued precedessor to b43) can't find the firmware files it needs. To get this working you either have to install the firmware (using the fwcutter version for bcm43xx) or install ndiswrapper and a Windows driver and blacklist bcm43xx.
[root@localhost ~]# iwlist wlan0 scanning wlan0 Interface doesn't support scanning : Network is down
[root@localhost firmware]# /sbin/ifup wlan0 /sbin/ifup: configuration for wlan0 not found. Usage: ifup <device name>
Now the log is saying this:
Code:
May 31 09:34:22 localhost kernel: bcm43xx_mac80211: Adding Interface type 2
May 31 09:34:22 localhost kernel: bcm43xx_mac80211: YOUR FIRMWARE IS TOO OLD. Firmware from binary drivers older than version 4.x is unsupported. You must upgrade your firmware files.
May 31 09:34:24 localhost NetworkManager: <WARN> nm_device_802_11_wireless_scan(): could not trigger wireless scan on device wlan0: Network is down
After this I tried with with ndiswrapper as follows:
[root@localhost ndiswrapper-1.53]# make make -C driver make[1]: Entering directory `/root/wireless/ndiswrapper/ndiswrapper-1.53/driver'
*** WARNING: This kernel uses 4K stack size option (CONFIG_4KSTACKS); many Windows drivers will not work with this option enabled. Disable CONFIG_4KSTACKS in kernel's .config file, recompile and install kernel
make -C /usr/src/kernels/2.6.21-1.3194.fc7-i686 M=/root/wireless/ndiswrapper/ndiswrapper-1.53/driver make[2]: Entering directory `/usr/src/kernels/2.6.21-1.3194.fc7-i686' LD /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/built-in.o MKEXPORT /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/crt_exports.h MKEXPORT /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/hal_exports.h MKEXPORT /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/ndis_exports.h MKEXPORT /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/ntoskernel_exports.h MKEXPORT /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/ntoskernel_io_exports.h MKEXPORT /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/rtl_exports.h MKEXPORT /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/usb_exports.h CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/crt.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/hal.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/iw_ndis.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/loader.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/ndis.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/ntoskernel.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/ntoskernel_io.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/pe_linker.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/pnp.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/proc.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/rtl.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/wrapmem.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/wrapndis.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/wrapper.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/usb.o CC [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/divdi3.o LD [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/ndiswrapper.o Building modules, stage 2. MODPOST 1 modules CC /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/ndiswrapper.mod.o LD [M] /root/wireless/ndiswrapper/ndiswrapper-1.53/driver/ndiswrapper.ko make[2]: Leaving directory `/usr/src/kernels/2.6.21-1.3194.fc7-i686' make[1]: Leaving directory `/root/wireless/ndiswrapper/ndiswrapper-1.53/driver' make -C utils make[1]: Entering directory `/root/wireless/ndiswrapper/ndiswrapper-1.53/utils' gcc -g -Wall -I../driver -o loadndisdriver loadndisdriver.c make[1]: Leaving directory `/root/wireless/ndiswrapper/ndiswrapper-1.53/utils'
[root@localhost ndiswrapper-1.53]# make install make -C driver install make[1]: Entering directory `/root/wireless/ndiswrapper/ndiswrapper-1.53/driver'
*** WARNING: This kernel uses 4K stack size option (CONFIG_4KSTACKS); many Windows drivers will not work with this option enabled. Disable CONFIG_4KSTACKS in kernel's .config file, recompile and install kernel
NOTE: Windows driver configuration file format has changed since 1.5. You must re-install Windows drivers if they were installed before. make[1]: Leaving directory `/root/wireless/ndiswrapper/ndiswrapper-1.53/utils' mkdir -p -m 0755 /usr/share/man/man8 install -m 644 ndiswrapper.8 /usr/share/man/man8 install -m 644 loadndisdriver.8 /usr/share/man/man8
[root@localhost win]# ls *.inf bcmwl5a.inf bcmwl5.inf [root@localhost win]# ls *.sys bcmwl5.sys bcmwlntp.sys [root@localhost win]# ndiswrapper -i bcmwl5.inf installing bcmwl5 ... forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 forcing parameter IBSSGMode from 0 to 2 [root@localhost win]# ndiswrapper -l bcmwl5 : driver installed device (14E4:4320) present (alternate driver: bcm43xx-mac80211) [root@localhost win]# rmmod bcm43xx-mac80211 [root@localhost win]# ndiswrapper -l bcmwl5 : driver installed device (14E4:4320) present (alternate driver: bcm43xx-mac80211) [root@localhost win]# ls /etc/ndiswrapper/ bcmwl5/
But still after removing the native driver wit rmmod as above it keeps appearing. Now if blacklist with these three lines
blacklist ssb
blacklist bcm43xx_mac80211
blacklist mac80211
then iwconfig doesn't even show the wlan0 interface.
I think I made it work using which method I don't know as its now showing in modprobe.conf and also in nework manager. But in modprobe.conf its showing
PHP Code:
alias wlan0 bcm43xx-mac80211
though I am using ndiswrapper. I am going to do the setup again to clear my concept of this wireless thing.
- That log file entry complaining of too old firmware means that you need to find a newer Windows driver to use to create firmware files. You might have some luck if you look at the old bcm43xx site, but since that driver has been deprecated, they may not link to appropriate drivers. An alternative would be to get the latest driver from your card manufacturers website and see if that works.
Quote:
But still after removing the native driver wit rmmod as above it keeps appearing. Now if blacklist with these three lines
blacklist ssb
blacklist bcm43xx_mac80211
blacklist mac80211
then iwconfig doesn't even show the wlan0 interface.
Now that you've blacklisted bcm43xx, you'll need to load ndiswrapper. In your modprobe.conf file you could change that line to
alias wlan0 ndiswrapper
That should mean that when the ndiswrapper module gets loaded, it grabs the wlan0 name. Note that you may have to load ndiswrapper manually (or in a startup script) as Fedora probably won't automatically load it.
Also, you got the infamous 4K warning when you compiled ndiswrapper. In the past, a lot of Fedora systems completely locked up when the ndiswrapper module was loaded, and the 4K stack was the reason. It depends a lot on the Windows driver being used, but if it happens to you, the only solution is to either find a kernel that doesn't have the 4K stack limitation or to dump ndiswrapper and use one of the native drivers.
Tell me one thing, how will know that the wireless is really installed?
I now tried fresh installation of RHEL5 in that and after installation I found and entry in network manager windows and also in modprobe.conf file like alias eth1 bcm43xx.
Now at the log I checked and found that it was missing the firmware so right away I installed ndiswrapper as did previous post and blacklisted the bcm43xx and here is the output below. Does its installed now and how to make it active as no LED is glowing.
PHP Code:
[root@localhost ~]# iwconfig lo no wireless extensions.
eth0 no wireless extensions.
eth1 IEEE 802.11g ESSID:off/any Mode:Managed Frequency:2.462 GHz Access Point: Not-Associated Bit Rate:54 Mb/s Tx-Power:25 dBm RTS thr:2347 B Fragment thr:2346 B Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
sit0 no wireless extensions.
After default installation the ESSID was like "" but after installing ndiswrapper it became as above "off/any"
[root@localhost ~]# iwlist eth1 scan eth1 No scan results
[root@localhost ~]# ndiswrapper -l bcmwl5 : driver installed device (14E4:4320) present (alternate driver: bcm43xx) [root@localhost ~]# cat /etc/modprobe.conf alias eth0 tg3 alias scsi_hostadapter ata_piix #alias eth1 bcm43xx # I added the below line alias eth1 ndiswrapper alias snd-card-0 snd-intel8x0 options snd-card-0 index=0 options snd-intel8x0 index=0 remove snd-intel8x0 { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-intel8x0
[root@localhost ~]# cat /etc/modprobe.d/blacklist # # Listing a module here prevents the hotplug scripts from loading it. # Usually that'd be so that some other driver will bind it instead, # no matter which driver happens to get probed first. Sometimes user # mode tools can also control driver binding. # # Syntax: driver name alone (without any spaces) on a line. Other # lines are ignored. #
Kernel Currently compiled with Wireless Extension v20.
eth1 Recommend Wireless Extension v18 or later, Currently compiled with Wireless Extension v20.
[root@localhost ~]# dmesg | grep ndiswrapper ndiswrapper version 1.53 loaded (smp=yes, preempt=no) ndiswrapper: driver bcmwl5 (Broadcom,02/10/2005, 3.100.35.1) loaded ndiswrapper: using IRQ 169 usbcore: registered new driver ndiswrapper ndiswrapper: changing interface name from 'wlan0' to 'eth1' [root@localhost ~]# tail -f /var/log/messages Jun 1 12:38:15 localhost gconfd (root-3001): Resolved address "xml:readonly:/etc/gconf/gconf.xml.mandatory" to a read-only configuration source at position 0 Jun 1 12:38:15 localhost gconfd (root-3001): Resolved address "xml:readwrite:/root/.gconf" to a writable configuration source at position 1 Jun 1 12:38:15 localhost gconfd (root-3001): Resolved address "xml:readonly:/etc/gconf/gconf.xml.defaults" to a read-only configuration source at position 2 Jun 1 12:38:16 localhost gconfd (root-3001): Resolved address "xml:readwrite:/root/.gconf" to a writable configuration source at position 0 Jun 1 12:38:17 localhost hcid[2327]: Default passkey agent (:1.10, /org/bluez/applet) registered Jun 1 12:38:18 localhost NetworkManager: <information> Updating allowed wireless network lists. Jun 1 12:38:18 localhost NetworkManager: <WARNING> nm_dbus_get_networks_cb (): error received: org.freedesktop.NetworkManagerInfo.NoNetworks - There are no wireless networks stored.. Jun 1 12:38:18 localhost pcscd: winscard.c:219:SCardConnect() Reader E-Gate 0 0 Not Found Jun 1 12:38:19 localhost last message repeated 4 times Jun 1 12:38:22 localhost setroubleshoot: 2008-06-01 12:38:22,232 [rpc.ERROR] attempt to open server connection failed: (2, 'No such file or directory')
[root@localhost ~]# ifup eth1
Determining IP information for eth1... failed; no link present. Check cable?
Your iwconfig output suggests that you do have a functional wireless card, however it looks like you've never configured it. Without configuring the card, ifup won't ever work. You need to use the iwconfig command to add your SSID and WEP key if you use WEP encryption. If you use WPA, then i think you'll have to use wpa_supplicant. I'm not real familiar with REHL, so there may be a gui tool to help you do this. At any rate, once you've got the card correctly configured, you should see the Access Point field in your iwconfig output change to the MAC address of your router. That shows the card is configured correctly and is associated with the AP.
Finally with your help the card found the access point after configuring though very poor signal but it works now. Why in linux configuring wireless is so much trouble!!
Finally with your help the card found the access point after configuring though very poor signal but it works now. Why in linux configuring wireless is so much trouble!!
Great! Glad you got it working. Actually, this isn't hard when the chipset vendor supports linux. I have both Broadcom and Intel based wireless cards and the Broadcom cards are infinitely more difficult to get running than the Intel ones. Heck, since the debut of the 2.6.24 kernel, most Intel cards will work straight off the install.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.