Broadcom 4318 Working Under Ubuntu Hardy Heron 8.04 (Ndiswrapper)

In my dad’s PC is a wireless card – a Linksys WRT54GS I think. Anyway it uses the Broadcom BCM 4318 chipset, as seen by a quick lspci:

richard@hades:~$ lspci | grep roadc
00:0a.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g]
802.11g Wireless LAN Controller (rev 02)

Unfortunately the new b43 / b43-fwcutter package (installed from / by ‘restricted drivers’) stopped this working. I’m not sure why exactly; it’s possibly because it was designed for a later chipset (I’ve heard 04 for one of the chipsets), but in any case this is moot. It doesn’t work at the moment. This affects PCI cards, some internal laptop wireless cards, and some removable wireless cards.

Now, the card worked under Gutsy using ndiswrapper. So, that’s what I tried to get this working. There is a post at the Ubuntu forums that details how to do this. I’m going to briefly reproduce the procedure here because quite a lot of people are interested in getting their card woking, but thanks to Mazza558 for the info.

1) Remove the b43-fwcutter package
sudo aptitude remove b43-fwcutter

2) Reinstall ndiswrapper

sudo apt-get install ndisgtk

b) Download and install wireless driver
WMP54GS Driver
tar -xzf wmp54gs.tgz
ndiswrapper -i wirelessdriver/WMP54GS.inf

3) Create bash script to fix wireless
sudo gedit /etc/init.d/
Into the file, put:

modprobe -r b44
modprobe -r b43
modprobe -r b43legacy
modprobe -r ssb
modprobe -r ndiswrapper
modprobe ndiswrapper
modprobe b44

Save it, then change the permissions to 755:
cd /etc/init.d/ && sudo chmod 755

And finally execute:
sudo update-rc.d defaults

And then you can reboot and have working wireless, or just (as root) execute the commands you put into the file.

NB: To get a root bash prompt in Ubuntu, execute:

sudo bash

Enjoy your wireless, on whatever card card you have!

Update: Ed points out quite rightly that can be somewhat hard to update using an internet connection if you don’t have a working wireless card. A situation not unlike what good is a phone call… if you’re unable to speak? In any case, you have a number of options, some of which may or may not be possible:

  1. Plug a cable into your ethernet port
  2. Use an old Ubuntu 7.10 Gutsy Gibbon CD to update from. This should Just Work, that is you put it in the CD drive and you will be asked if you want to use it as a repository source (or similar). If not, the
    command is your friend
  3. Download the .deb files manually elsewhere. Get both ndiswrapper-common and ndiswrapper-utils-1.9 (links to mirrors, not direct). Note that ndiswrapper-utils-1.9 has a couple dependencies like perl which you should have, but may not. Save them to a USB flash drive or whatever. Then use dpkg to install the deb files. Or:
    [insert USB drive and cd to it]

    [move USB drive to target machine, open a terminal and cd to the drive]
    dpkg -i ndiswrapper-common_1.50-1ubuntu1_all.deb
    dpkg -i ndiswrapper-utils-1.9_1.50-1ubuntu1_i386.deb

And you should be good to go, even if you are without an internet connection!

41 Replies to “Broadcom 4318 Working Under Ubuntu Hardy Heron 8.04 (Ndiswrapper)”

  1. Same problem here after upgrading from 7.10 to 8.04 (Dell Latitude)
    I blacklisted the b43 and applied your solution.
    It works perfect for me πŸ™‚

    Thanks for sharing the procedure !!

  2. Dude, I’m impressed you were able to come up with a solution less than a week after the official Hardy release. One thing that was a show stopper for me was the ndiswrapper packages weren’t installed and also were unavailable from the install CD. Luckily, I had my good ol’ 7.10 CD available to bail me out. After adding the Gutsy CD to the repository, I was able to install the ndiswrapper packages (ndiswrapper-common and ndiswrapper-utils-1.9). You might be wondering why I didn’t just apt-get them (I love it when they do this in official docs). Well, in case you hadn’t noticed, my internet connection isn’t available. Duh!

  3. Peter: Glad it worked πŸ™‚

    Ed: It wasn’t me that came up with the solution – I might have gotten there eventually, but it was Mazza558 that posted it to the Ubuntu forums. It was on the bug tracker ( I first saw a similar solution, and it lead me to do some looking and (eventually) get the soltution.

    Good point with regards to the CD though, I forget that for some wireless is their sole means of connection!


  4. Everything was plain sailing until I pressed
    cd /etc/init.d/ && sudo chmod 755
    sudo update-rc.d defaults

    In the terminal nothing happened! Why? any help?

  5. It works ! After 3-weeks of trying numerous web ‘how-to’s”, your procedure finally worked !
    Like Ed, a wireless ‘apt-get install’ doesn’t work without a wired web connection to start with.
    I’ve been using ndiswrapper since Edgy, but Hardy’s application was the toughest to-date.
    I’ve seen this procedure in 2-other posts, but yours was the cleanest, clearest & simplest.
    Good Show, and Thank You for sharing to the ( open-source ) community…

  6. I can’t thank you enough for posting this. I spent weeks trying to get this to work, and your directions provided the solution I needed. Thank you.

  7. this actually worked… ive been searching since hardy’s release and this ACTUALLY worked first time.., thank you so much i have a dual booting laptop and it was KILLING me to boot windows for the internet!!!!

  8. @ Daniel

    Which command did it fail on? Did sudo not prompt you for your password?

    @ Bob

    Glad it worked out for you. I think things are a lot easier to get through when they are laid out clearly, that’s why I wrote it. It’s good that people find it useful, thanks πŸ™‚

    @ Steve + clayton

    Glad to be of help πŸ™‚

  9. Robert-
    I had this work for me once, but I’ve reinstalled Ubuntu and have to do it again and it won’t seem to work. When I run ndiswrapper -i wirelessdriver/WMP54GS.inf I get the following:
    couldn’t open wirelessdriver/WMP54GS.inf: No such file or directory at /usr/sbin/ndiswrapper-1.9 line 219.

    Any suggestions?

  10. Ryan:

    Do you have ndiswrapper-utils-1.9 installed? Also, did you redownload the wireless drivers? It seems like it cant find the .inf file. If you know where it is, just do:

    sudo ndiswrapper -i /path/to/drivers/WMP45G.inf

    Replacing /path/to/drivers with /home/ryan/wirelessdriver/ or whatever. Hopefully that’ll do it!

  11. I’ve tried to get this to work for the past 2 years, and after having used your guide, it still seemed as if it wouldn’t and I was as frustrated as always. However, then I remembered that I had a driver specific for my card and I tried it and now it works!! It’s actually quite incredible… I’m not sure if it’s your guide or the driver I’ve found, but thanks anyway. I have a HP nx8220 with broadcom 4318, and the driver I used can be found here:

    Extract the exe file in windows, wine didn’t want to do for me, and use bcmwl5.inf. It was released in november 2007 so it’s quite recent.

  12. In Feisty Ubuntu I had wifi working with ndiswrapper because fwcutter worked with a weak signal. I have an HP Pavillion with Broadcom.

    I upgraded to Gutsy Ubuntu and the upgrade put fwcutter via restricted drivers. It worked but not good enough at a location which was working OK before. This was due to a weaker signal of fwcutter, in comparison to nddiswrapper.

    So I followed the instructions in this site and I now have a much stronger signal, and faster connection. Thanks!

    By the way, the windows drivers to use for ndiswrapper are available from HP, in my case. Trying to install them as per this webpage got me a message that THEY WERE already installed, and as such the rest worked OK.

  13. Hey thanks for your guide so far. My wireless card picks up surrounding networks in gnome but I cannot connect. When I run the modprobe script I receive.

    not found.le b44
    not found.le b43
    not found.le b43legacy
    not found.le ssb
    not found.le ndiswrapper
    not found.le ndiswrapper

    Any help?

  14. Thanks,but it didnt work unfortunately .I aplied all the commands but i couldnt connect my modem via wpa although i saw the possibble wireless modems in enviroment.I thougt that i broke my chains by putting windows away.But i was wrong i should set a virtual box with windows :(((

  15. BIG UP!!!

    Bertie, your awesome man. Thanks for posting this on the internets!

    I also followed the guide here:

    One thing your missing in the script is:
    **modprobe ndiswrapper**
    My adapter was unable to load without this line.

    I have the Broadcome4319 rev2 as well. I used these drivers:
    I am going to do some speed tests to see which one is better.

    Thanks again!

  16. I have a similar problem to Basak. This fixed marked progress over trying to use b43/bcm43xx/b43legacy/ssb modules because I could readily scan the surrounding wireless networks with “sudo iwlist scanning.” And the output of iwconfig made perfect sense, right essid, access point, frequency, etc… The problem is I couldn’t ‘connect’ to anything on the network. ping results in host unreachable. I’m not sure where to go from here other than try a different driver or a revert to Ubuntu 7.10. My kernel version is 2.6.24-19-generic. And I have a broadcom 4306 rev 03. I’m using WPA-PSK. Advice?

  17. I had wifi working at first in the Ubuntu 7.xx version. Then I got greedy and upgraded to the Ubuntu 8.xx only to find wifi to be a problem. I finally got it working, but every time I log on I have to jump through hoops to reset the connection to WPA2 which is required for me to use my work laptop from home. The new box I am learning Ubuntu on is an HP Pavilion xt919 that was given to me as a “we don’t need it anymore” type thing. My wifi card is a WMP54GS version 1.1 for what it is work. Be gentle as I am an old DOS geek with years of Oracle, SQL Server, PeopleSoft, and recently SAP experience.

  18. Woo, this worked for me with 8.04 after several days of trying solutions from elsewhere. I’m using a US Robotics Wireless MAXg PCI card with a Broadcom 4318 Rev 2 chipset. I downloaded the (huge) XP driver package from them and used the USRMAXG.inf from there with ndiswrapper instead of the WMP54GS.inf file in the example. Your script made the difference for me, thank you for laying it out like this!

  19. Thanks a million!

    I had my wireless setup but it used to work only sometimes… usually after a reboot it wouldn’t detect the wireless networks. this was after using Ubuntu’s jockey and then a guide from linuxwireless. So far this setup seems to work great… even after reboots.


  20. Sorry for lack of comments from me, I wasn’t getting notified of new comments. Kent57, Frustrated and NUBUNTU, I’d suggest doing a fresh install of 8.10 (if you can, otherwise upgrade). Wireless drivers are constantly being updated. If you’re still having problems, come back and I’ll try and help you out.

    bman,, Andy and shane: glad it worked!

    It would be nice if it solved everyone’s problems, but subtle chipset differences can make for big headaches.

  21. Hello,

    I am desperate !
    Note that my OS is in french, so the different title I give is the translation that comes to me; it might not be the right word.
    I have installed ubuntu Hardy, then upgrade to Ubuntu 8.10, and I have never managed to make my WiFi works !
    The laptop is a Aspire 5100 bought with windows installed. After having a virus that was slowing down so far the laptop I could not do anything, I decided to install ubuntu instead. But since then the WiFi has never worked !
    I must admit I know nothing about network configuration/driver.
    A strange thing :
    1) when I use the applet NetworkManager 0.7.0, to check my WiFi connection, I can modify the parameters
    2) if I use the tool “wireless windows driver” in system/Administration menu, I can see the driver wmp54gs checked as installed, but if I click on this window on “configure network” I have the same interface as the NetworkManager but all is grey and I can not do anything. Plus, each time, it displayed “wifi connection / mode roaming activated” instead of my configured WiFi connection.

    Can somebody help ?

    I have tried several options found on internet with no success. neither the procedure given here, nor the following one tried before:
    sudo aptitude update
    sudo aptitude install build-essential linux-headers-$(uname -r)
    tar xjf b43-fwcutter-011.tar.bz2
    cd b43-fwcutter-011
    cd ..
    export FIRMWARE_INSTALL_DIR=”/lib/firmware”
    tar xjf broadcom-wl-
    cd broadcom-wl-
    sudo ../../b43-fwcutter-011/b43-fwcutter -w “$FIRMWARE_INSTALL_DIR” wl_apsta.o
    sudo modprobe -r ssb
    sudo modprobe -r b43
    echo -e ‘auto lo\niface lo inet loopback\n’ | sudo tee /etc/network/interfaces
    sudo modprobe ssb
    sudo modprobe b43

    The result of the command “sudo lshw -C network” is the following:
    description: Ethernet interface
    product: RTL-8139/8139C/8139C+
    vendor: Realtek Semiconductor Co., Ltd.
    physical id: 1
    bus info: pci@0000:06:01.0
    logical name: eth0
    version: 10
    serial: 00:16:d4:1a:82:7b
    size: 100MB/s
    capacity: 100MB/s
    width: 32 bits
    clock: 33MHz
    capabilities: pm bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
    configuration: autonegotiation=on broadcast=yes driver=8139too driverversion=0.9.28 duplex=full ip= latency=64 link=yes maxlatency=64 mingnt=32 module=8139too multicast=yes port=MII speed=100MB/s
    description: Wireless interface
    product: BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller
    vendor: Broadcom Corporation
    physical id: 2
    bus info: pci@0000:06:02.0
    logical name: wlan0
    version: 02
    serial: 00:16:cf:5a:cf:27
    width: 32 bits
    clock: 33MHz
    capabilities: bus_master ethernet physical wireless
    configuration: broadcast=yes driver=ndiswrapper+wmp54gs driverversion=1.53+Linksys,12/22/2004, 3.100.4 latency=64 link=no module=ndiswrapper multicast=yes wireless=IEEE 802.11g
    *-network DISABLED
    description: Ethernet interface
    physical id: 2
    logical name: pan0
    serial: c6:22:a3:67:ac:15
    capabilities: ethernet physical
    configuration: broadcast=yes driver=bridge driverversion=2.3 firmware=N/A link=yes multicast=yes

  22. Robert:

    As others are saying, THANKS a million for these great instructions! I likewise have a Broadcom BCM4318 on my friend’s Dell Latitude D810 that I ambitiously installed Linux Mint 7 onto last night. For me it seems that driver issues are the bane of using Linux, but these instructions got the WiFi working right away! (And instructions to do anything Linux-related *rarely* seem to work!) My friend and I will drink a beer in your honor tonight!!

  23. Liegard & David Rivers:

    I’m very glad it worked! This was posted like 15 months ago and continues to help people. It makes me happy. David in particular – I hope it helps another person use Linux successfully!

  24. Hello. Thank you very much for the help. BUT:

    it seems this fix is not sufficient for my Karmic Koala – when I execute it, it writes:
    WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/blacklist, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/psmouse.modprobe, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/blacklist, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/psmouse.modprobe, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/blacklist, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/psmouse.modprobe, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/blacklist, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/psmouse.modprobe, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/blacklist, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/psmouse.modprobe, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/blacklist, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/psmouse.modprobe, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/ndiswrapper, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/blacklist, it will be ignored in a future release.
    WARNING: All config files need .conf: /etc/modprobe.d/psmouse.modprobe, it will be ignored in a future release.

    Can you please tell me what am I doing wrong?

  25. Dear Robert,

    I have ubuntu 9.04 set on Presario CQ35-243tx I neither have wireless and sound card recognized by the OS, I’ve also followed your instruction but it didn’t work, Any Suggestion is appreciated in advance???

    Thank you,

  26. I would like to thank you in providing this fix for others to read. I myself have a Compaq Presario 2100 with the Broadcom chip BCM4306/2 that is suppose to use the B43legacy driver. After following multiple outdated and up to date instructions for possible fixes, this one actually worked. Before i would be able to see my wireless networks, but it would never connect using either wicd or network manager. even though my chip is never mentioned i downloaded the drivers and it works like a charm. Im still suprised that the release candidate 10.04 still hasn’t resolved the issue. Much less do i understand exactly what the problem was.

Tell us what's on your mind