HowTo: Broadcom BCM43xx Wireless Card

Share your own howto's etc. Not for support questions!
Message
Author
beissemj
Posts: 38
Joined: 2006-07-19 13:53

HowTo: Broadcom BCM43xx Wireless Card

#1 Post by beissemj »

*Update: (3/03/07) This card is now well supported in newer Linux kernels, however you will still experience a slower connection rate.

Do I have this card?
Broadcom wireless cards are found in a lot of Dell, HP/Compaq, Acer, and Apple (using Airport Extreme) laptops. For a complete list of supported cards see here. (I have a Dell Latitude D600 with a Dell Wireless 1350 WLAN Mini-PCI Card, so I will use that as an example throughout the remainder of this Howto.)

To see if you have one of these cards do a:

Code: Select all

$ lspci
If you see something like:

Code: Select all

02:03.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 02)
then you are in business. (If lspci returns: command not found you need to

Code: Select all

# apt-get pciutils
Preparing the kernel
If you are using a stock kernel then chances are you already have everything you need in your kernel. If you need to compile your own kernel or are unsure how to check if the following options are enabled, see Kernel compile and install on Debian systems.

Code: Select all

Networking -->
     <*>   Generic IEEE 802.11 Networking Stack
     [*]     Enable full debugging output
     <M>     IEEE 802.11 WEP encryption (802.1x)
     <M>     IEEE 802.11i CCMP support
     <M>     IEEE 802.11i TKIP encryption
     <*>     Software MAC add-on to the IEEE 802.11 networking stack
     [*]       Enable full debugging output
Using the native linux driver (recommended)
As of kernel 2.6.17 support for Broadcom BCM43xx cards is available natively in linux (You should probably use a kernel >= 2.6.20 however). The addition of this driver stems from the addition of a Softmac layer in the wireless stack. Softmac is a software MAC (machine access control) layer that works with Linux's built-in 802.11 layer. This provides a great deal of WiFi protocol management features for chips that, unlike Intel Pro Wireless chip family, don't handle in hardware. (For more information see here.) The native linux driver, bcm43xx, works well and should probably be tried before Ndiswrapper. To try it out enable the following in addition to the options above:

Code: Select all

Device Drivers -> Network device support -> Wireless LAN (non-hamradio) -> Wireless LAN drivers (non-hamradio) 
     <M>   Broadcom BCM43xx wireless support 
     [*]     Broadcom BCM43xx debugging (RECOMMENDED)
     BCM43xx data transfer mode (DMA + PIO)  --->   
You will still need firmware in order to get the driver to work, so proceed to the next step.

Getting and extracting the firmware
As machiner has pointed out getting the firmware is now trivial because bcm43xx-fwcutter will get and extract it for you when you

Code: Select all

# apt-get install bcm43xx-fwcutter
the only thing you need to do is move the firmware to the proper location as it get installed in the wrong location (I believe)

Code: Select all

# mkdir -p /lib/hotplug/firmware; cp /lib/firmware/*.fw /lib/hotplug/firmware


Congratulations. You are now done, enjoy your wireless.

Using Ndiswrapper
If you wish to use Ndiswrapper or an alternate driver file you must first find a windows driver and you will obviously still need bcm43xx-fwcutter.

Getting the windows driver
Windows driver files are ridulously large and contain a lot of file which we don't care about. The files we are interested in are bcmwl5.inf and bcmwl5.sys. There are a couple different ways to get these files.

1. If you have the driver's installed on a windows machine do a search for bcmwl5.inf and open it up in notepad. Look for the line near the top that says something like:

Code: Select all

DriverVer=10/20/2004, 3.70.17.0
if the driver version is any of the following (updated Dec. 2007):

3.20.23.0
3.30.15.0
3.30.15.1
3.40.20.0
3.40.25.3
3.40.65.0
3.40.69.0
3.40.73.0
3.40.100.0
3.50.21.10
3.60.7.0
3.60.7.5
3.70.12.0
3.70.17.0
3.90.16.0
3.90.41.1
3.94.41.1
3.94.41.2
3.100.35.1
3.100.46.0
3.100.64.0
3.100.64.50
3.100.65.1
3.104.64.50
3.104.64.52
3.120.27.0
3.140.16.0
4.10.40.0
4.10.40.1

copy both bcmwl5.inf and bcmwl5.sys over to your linux box and proceed to "Installing Ndiswrapper".

2. Read the documentation! You will find a list of URL's in /usr/share/doc/bcm43xx-fwcutter-00x/README.

3. Get the driver from your laptop vendor*. (Mine happens to be here.

*If you use method three you will need to extract the files from the .exe file.

Extracting the files from a .exe
Since we have an executible file, we need to extract its contents. Their will be a lot of different files in the archive, but remember we only care about bcmwl5.inf and bcmwl5.sys, so you can delete the rest if you like.

Code: Select all

# apt-get install cabextract
# cabextract driver_file.exe 
Extracting cabinet: driver_file.exe
  extracting bcm43xx.cat
  extracting bcm43xxa.cat
  extracting bcmwl5.inf
  extracting bcmwl5.sys
  extracting bcmwl5a.inf
  extracting bcmwld2k.exe
  .....
All done, no errors.
Extracting the driver files
Now it's time to do something with that bcmwl5.sys file. This file contains the firmware that we need, but we need to extract it. If you haven't already install bcm43xx-fwcutter.

Code: Select all

# apt-get install bcm43xx-fwcutter
Then

Code: Select all

# bcm43xx-fwcutter path/to/bcmwl5.sys
 (don't worry if you get an error message like)
*****: Sorry, it's not possible to extract "bcm43xx_microcode11.fw".
*****: Extracting firmware from an old driver is bad. Choose a more recent one.
*****: Luckily bcm43xx driver doesn't include microcode11 uploads at the moment.
*****: But this can be added in the future...
# cp bcm43xx* /lib/firmware/
http://d600.elwiki.com
Last edited by beissemj on 2007-04-05 15:09, edited 11 times in total.

beissemj
Posts: 38
Joined: 2006-07-19 13:53

#2 Post by beissemj »

Installing Ndiswrapper
The first order of business is to remove any old instances of ndiswrapper.

Code: Select all

# apt-get remove --purge ndiswrapper-common ndiswrapper-source ndiswrapper-utils ndiswrapper-utils-1.1 ndiswrapper-utils-1.8
# rm -R /usr/src/modules/ndiswrapper
Now we want to install ndiswrapper. (For more complete instructions see Ndiswrapper on Debian.)

Code: Select all

 # apt-get install ndiswrapper-source ndiswrapper-utils module-assistant
# m-a a-i ndiswrapper
# ndiswrapper -i /path/to/bcmwl5.inf
# ndiswrapper -l
  Installed ndis driver:
  bcmwl5 driver present, hardware present
# modprobe ndiswrapper
If you get the error "FATAL: Module ndiswrapper not found" you need to delete all the files in /lib/modules/ and recompile your kernel. But this time __make sure__ you do a

Code: Select all

make-kpkg clean
.[/i]

Extracting the Firmware
Now it's time to do something with that bcmwl5.sys file. This file contains the firmware that we need, but we need to extract it. Luckily their is a tools designed to do this for us.

Code: Select all

# apt-get install bcm43xx-fwcutter
# bcm43xx-fwcutter path/to/bcmwl5.sys
 (don't worry if you get an error message like)
*****: Sorry, it's not possible to extract "bcm43xx_microcode11.fw".
*****: Extracting firmware from an old driver is bad. Choose a more recent one.
*****: Luckily bcm43xx driver doesn't include microcode11 uploads at the moment.
*****: But this can be added in the future...
# cp bcm43xx* /lib/firmware/
Setting up config files
Now in order to get the card to start at boot, edit /etc/network/interfaces and add the lines

Code: Select all

auto wlan0
iface wlan0 inet dhcp
then add ndiswrapper to /etc/modules.

Finally...
Now if everything went according to plan:

Code: Select all

# apt-get install wireless-tools
# ifup wlan0
AND ENJOY YOUR WIRELESS INTERNET CONNECTION!!!


http://www.d600.elwiki.com
Last edited by beissemj on 2006-09-22 02:20, edited 2 times in total.

beissemj
Posts: 38
Joined: 2006-07-19 13:53

#3 Post by beissemj »

Questions
My system locks up whenever I try to load ndiswrapper. What gives?
I have found two causes for this. Having more than 1 gigabyte of ram installed seems to really mess with the drivers. The other option is simply that you need to try a different version of the driver.

What are the advantages of using ndiswrapper instead of the native driver bcm43xx?
Currently the native drivers are limited to 'b' connections and ndiswrapper allows both 'b' and 'g' connections.

I installed Ndiswrapper, but Debian still loads the native driver. What do I do?
You need to add bcm43xx to /etc/modprobe.d/blacklist.

http://d600.elwiki.com
Last edited by beissemj on 2007-04-05 15:10, edited 6 times in total.

raghu
Posts: 1
Joined: 2006-10-03 18:53
Location: Navi Mumbai

Got the wireless LED up so far in Compaq Presario 2625

#4 Post by raghu »

First of all, thanks a lot for this nice article. I appreciate the detailed steps mentioned in it to configure the broadcom 43xx based wireless cards. The URL for Windows driver was really useful.

My laptop is Compaq Presario V2000 (model number 2625). Some sites mentioned that V2000 series uses Intel BG pro 2200 chipset. HP gave FreeDos to me :) as this laptop was of lower price range. So I was unable to get even the Windows drivers in the supplied media. I installed Ubuntu 5.10 on it and have been using it well except for the support for wlan, in-built modem and media card reader. I don't need the last two devices, but wlan is essential for me. In Ubuntu, the dmesg never shown anything about intel 2200 chipset. Neither lspci gave any hint. After upgrading to Ubuntu 6.06 I found the name Broadcom in the lspci output and knew that I was holding a wireless device with this chipset. So I decided to use this guide to configure it.

Using ndiswrapper and windows driver, I can now do ifconfig eth1 up and see the LED getting lit. So far I am unable to get it connected to the AP (Dlink 524 Air Plus G). It must be something to do with keys and authentication mechanisms. So at present digging further to fix this issue. Will post about the end result.

Thanks again.

K Raghu Prasad

bondoff
Posts: 1
Joined: 2006-10-18 10:54

#5 Post by bondoff »

Hallo raghu,

In order to authenticate to the WPA wireless network, you should install wpa_supplicant package.
For more details how to install and configure, please follow the present link

http://vollink.com/gary/deb_wifi.html

machiner
Posts: 95
Joined: 2004-12-19 13:46
Location: New England

#6 Post by machiner »

The bcm43xx driver in Etch seems to be working fine now. ndiswrapper is no longer necessary, but this thred came in handy nonetheless.

User avatar
meon
Posts: 164
Joined: 2006-09-11 08:45

#7 Post by meon »

Finally I got my wireless network working in Debian also. It was definitely a struggle. I do not know exactly what solved the problems and if it will work tomorrow but ndiswrapper and bcmwl5 were involved. The ifup wlan0 made my day!

User avatar
hellfire[bg]
Posts: 499
Joined: 2006-06-21 19:15
Location: Sliven, Bulgaria

#8 Post by hellfire[bg] »

I have a bcm431Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02) but it is recognised as interface eth1 (my ethernet card is eth0) instead of wlan0. Is this going to cause problems? I can`t try the howto now but i will try it soon. Also what are the advantages of using ndiswrapper instead of the native driver bcm43xx?
...to boldly go where no one has gone before...

machiner
Posts: 95
Joined: 2004-12-19 13:46
Location: New England

#9 Post by machiner »

Wireless for this card has changed a bit since this thread was first begun, in August of 2006. ndiswrapper is no longer necessary and the bcm43xx drivers are installed with Etch.

The only necessary step required to facilitate wireless on your Etch (maybe -- laptop) is the obtaining of the necessary firmware.

On Friday (19jan07) I nuked and reinstalled Etch on my Acer laptop. After I got my kernel and desktop installed I then installed bcm43xx-fwcutter. Getting the firmware is pie because when bcm43xx-fwcutter is being installed it will prompt you to get said firmware.

Couldn't be easier.

Only thing you have ot fo following this is to cp the firmware files that are set to your machine because they need to be in a different directory.

Code: Select all

# mkdir -p /lib/hotplug/firmware
. The files get extracted to /lib/firmware, so simply cp *.fw to /lib/hotplug/firmware

Done. Use desktop --> administrator --> networking to admin your cards and switch between eth0 and eth1 as your needs require.

As an aside...
Computing with Debian Etch is wonderful because the OS stays the hell out of your way and allows you to work or play as you will. I remain surprised that the whole of the home user demographic hasn't dumped Windows long ago in order to run Debian.

User avatar
hellfire[bg]
Posts: 499
Joined: 2006-06-21 19:15
Location: Sliven, Bulgaria

#10 Post by hellfire[bg] »

I`ll ask again are there any disadvanteges of using bcm43xx over ndiswrapper? I`ve read somewhere that bcm3xx supports only up to 5Mbps whili ndiswrapper supports up to 54Mbps.
...to boldly go where no one has gone before...

machiner
Posts: 95
Joined: 2004-12-19 13:46
Location: New England

#11 Post by machiner »

Hmmmm. I dunno. What I can report is that 2 or 3 months ago when I set up my wireless with ndiswrapper it was flaky and slow.

The other day when I reinstalled etch, by the way -- the above was also on an install not an upgrade -- and set up wireless this way, sans ndiswrapper, I noticed straight away that the connection was far more stable and speed was there.

I dunno if the 5GB and 54GB support differences are real or not. I'm gonna find out, though.

joeydemayo
Posts: 1
Joined: 2007-01-23 23:33

HP compaq nx6325

#12 Post by joeydemayo »

Hi all!
I have a laptop hp compaq nx6325 with sempron cpu.
I tryed to install wireless driver as it`s written in this how to but I couldn`t make it work.
I can`t list my wifi module with ifconfig or iwconfig.
I don`t know if it has something to do with the fact that the laptop has a buton for turning wifi on and off.
In windows this buton is available, in linux it seems to be deactivated.
Everyone, please if you have any ideea, please write me what should I do.

Thanks.

machiner
Posts: 95
Joined: 2004-12-19 13:46
Location: New England

#13 Post by machiner »

Push the button.


On my Acer there is a button on the front, middle edge of the laptop. I never had to touch this in Linux, but in Windows I had to push this button one-time to "activate" my card.

bomanizer
Posts: 4
Joined: 2007-02-19 15:55

what am I missing...?

#14 Post by bomanizer »

hi, I'm not-so-new, but still a bit linux-impared :)

so, the problem:

Code: Select all

- lspci shows this line:

06:05.0 Ethernet controller: Atheros Communications, Inc. AR5005G 802.11abg NIC (rev 01)

- ifconfig shows only the ethernet connection and lo

- iwconfig returns:

lo        no wireless extensions.

eth0      no wireless extensions.

sit0      no wireless extensions.

what am I missing :?:

I have ndiswrapper installed and configured like beissemj so kindly instructed.

thanks!!

bomanizer
Posts: 4
Joined: 2007-02-19 15:55

Re: what am I missing...?

#15 Post by bomanizer »

EDIT: Solved with madwifi http://forums.debian.net/viewtopic.php? ... ht=madwifi

:D

This is my first go with Debian and I have to say it rocks.

blackcat_73
Posts: 31
Joined: 2007-01-19 11:57

#16 Post by blackcat_73 »

I'm getting this weird problems concerning broadcom driver under etch.

My card is 54Mbs and under kwifimanager appears as 11Mbs, sometimes connection goes down and I'm getting a lot of messages under my console whenever I get there, starting with

Code: Select all

broadcom-43xx:
How can I disable broadcom and start using ndiswrapper?

User avatar
hellfire[bg]
Posts: 499
Joined: 2006-06-21 19:15
Location: Sliven, Bulgaria

#17 Post by hellfire[bg] »

You have add bcm43xx to /etc/modprobe.d/blacklist. After that install ndiswrapper in the way described in the debian wiki:
http://wiki.debian.org/NdisWrapper
...to boldly go where no one has gone before...

jml
Posts: 217
Joined: 2006-10-26 19:51
Location: Albert Lea, Minnesota

#18 Post by jml »

Thanks machiner. I have an hp nx6110 laptop with a Broadcom chipset. I'm running Etch and I followed your suggestions. In my case, simply installing bcm43xx-fwcutter was all I needed! In installed the headers when prompted and my wireless card came alive without cp to another directory. This set up works so well, I not only "see" my two wireless networks, but two others from my neighbors. One of which is not encrypted. :wink: But I'll be good. Any way, thanks again for the tip.

Joe
Never meddle in the affairs of dragons, for you are crunchy and good with catsup.

Necronus
Posts: 1
Joined: 2007-05-01 05:52

#19 Post by Necronus »

Wow! Thank you so much guys! Everything was very helpful. I can finally get rid of the Win partition :D

ricanlinux
Posts: 63
Joined: 2007-05-02 00:02

#20 Post by ricanlinux »

Hey I am running Debian on my PowerBook G4. Last night I was finally able to get the wireless card to see the wireless network; but it took forever to get connect, then the connection will only last for a short while. Surfing the internet took forever if at all. Can anyone give me a reason for this?

Post Reply