HowTo: Broadcom BCM43xx Wireless Card

Share your own howto's etc. Not for support questions!

HowTo: Broadcom BCM43xx Wireless Card

Postby beissemj » 2006-08-01 21:12

*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

Postby beissemj » 2006-08-01 21:19

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
.


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

Postby beissemj » 2006-09-22 02:18

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.
beissemj
 
Posts: 38
Joined: 2006-07-19 13:53

Got the wireless LED up so far in Compaq Presario 2625

Postby raghu » 2006-10-03 19:24

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
raghu
 
Posts: 1
Joined: 2006-10-03 18:53
Location: Navi Mumbai

Postby bondoff » 2006-10-18 11:03

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
bondoff
 
Posts: 1
Joined: 2006-10-18 10:54

Postby machiner » 2006-12-15 20:46

The bcm43xx driver in Etch seems to be working fine now. ndiswrapper is no longer necessary, but this thred came in handy nonetheless.
machiner
 
Posts: 95
Joined: 2004-12-19 13:46
Location: New England

Postby meon » 2006-12-16 18:21

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
meon
 
Posts: 164
Joined: 2006-09-11 08:45

Postby hellfire[bg] » 2006-12-28 08:51

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...
User avatar
hellfire[bg]
 
Posts: 499
Joined: 2006-06-21 19:15
Location: Sliven, Bulgaria

Postby machiner » 2007-01-21 13:52

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.
machiner
 
Posts: 95
Joined: 2004-12-19 13:46
Location: New England

Postby hellfire[bg] » 2007-01-21 14:40

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...
User avatar
hellfire[bg]
 
Posts: 499
Joined: 2006-06-21 19:15
Location: Sliven, Bulgaria

Postby machiner » 2007-01-22 14:00

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.
machiner
 
Posts: 95
Joined: 2004-12-19 13:46
Location: New England

HP compaq nx6325

Postby joeydemayo » 2007-01-23 23:44

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.
joeydemayo
 
Posts: 1
Joined: 2007-01-23 23:33

Postby machiner » 2007-01-28 14:37

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.
machiner
 
Posts: 95
Joined: 2004-12-19 13:46
Location: New England

what am I missing...?

Postby bomanizer » 2007-02-19 16:09

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...?

Postby bomanizer » 2007-02-20 14:11

EDIT: Solved with madwifi http://forums.debian.net/viewtopic.php?t=12408&highlight=madwifi

:D

This is my first go with Debian and I have to say it rocks.
bomanizer
 
Posts: 4
Joined: 2007-02-19 15:55

Next

Return to Docs, Howtos, Tips & Tricks

Who is online

Users browsing this forum: YaCy [Bot] and 4 guests

fashionable