Sunday, March 18, 2012

HowTo: Enabling Broadcom BCM4318 wireless on Linux Mint

After a HDD failure my wife asked for a Linux distribution (!) for her old HP dv5000 laptop. I picked Linux Mint due to its multimedia friendliness and restricted firmware support.

Funny enough it didn't attach a driver to the wireless chipset nor offered one through the restricted firmware pop-up.

lspci allowed me to identify the chipset, a Broadcom BCM4318 wireless device:

$ sudo lspci
00:00.0 Host bridge: ATI Technologies Inc RS480 Host Bridge (rev 01)
00:01.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge
00:05.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge
00:13.0 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller
00:13.1 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller
00:13.2 USB Controller: ATI Technologies Inc IXP SB400 USB2 Host Controller
00:14.0 SMBus: ATI Technologies Inc IXP SB400 SMBus Controller (rev 11)
00:14.1 IDE interface: ATI Technologies Inc IXP SB400 IDE Controller
00:14.3 ISA bridge: ATI Technologies Inc IXP SB400 PCI-ISA Bridge
00:14.4 PCI bridge: ATI Technologies Inc IXP SB400 PCI-PCI Bridge
00:14.5 Multimedia audio controller: ATI Technologies Inc IXP SB400 AC'97 Audio Controller (rev 02)
00:14.6 Modem: ATI Technologies Inc SB400 AC'97 Modem Controller (rev 02)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:05.0 VGA compatible controller: ATI Technologies Inc Radeon XPRESS 200M 5955 (PCIE)
06:02.0 Network controller: Broadcom Corporation BCM4318 [AirForce 54g] 802.11a/b/g PCI Express Transceiver (rev 02)
06:04.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller
06:04.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller
06:04.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
06:04.4 SD Host controller: Texas Instruments PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller
06:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

To fix the problem run the following commands:
$ sudo apt-get install b43-fwcutter
$ wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
$ tar xf broadcom-wl-4.150.10.5.tar.bz2
$ cd broadcom-wl-4.150.10.5/driver/
$ sudo b43-fwcutter -w /lib/firmware/ wl_apsta_mimo.o
$ sudo modprobe b43
$ sudo echo "b43" >> /etc/modules

With this we've installed the proper driver and added it at boot time.

Bottom line: there's so much a pretty GUI can do ;)

27 comments:

CCurtis said...

Thanks for the incredibly helpful blog!! I put Mint 12 on an elderly Toshiba Satellite 1905 (don't ask) with a similarly aged Linksys PCMCIA network card, and Mint didn't pick it up. This absolutely solved my problem! PS: I encountered unanswered questions along this line all over the place in the process of researching, and I'm pointing others to your post!!

tangram said...

Hi Curtis,

Glad to help out and thanks for the feedback.

Best regards.

Unknown said...

Dude you really saved my bacon. Been around a while in the computer biz, but never really messed with linux. I was knocking myself in the head trying to get this to work on an old inspiron 8500 I had laying around the workshop.

tangram said...

Welcome to the Unix-like world :)

Thanks for the feedback.

Anonymous said...

Easy to follow tip! Thanks a lot. You definitely saved me a lot of time and anguish.

jagripton said...

For a Linux newbie installing Mint on an old Inspiron 1300, this is great...but when I get to the last command, I get this...

$ sudo echo "b43" >> /etc/modules
bash: /etc/modules: Permission denied

Help?

tangram said...

@ jagripton

Then simply edit /etc/modules as root and add b43 to it.

alexbottoni said...

Linux Mint 14 MATE on HP Pavilion DV 5000 with Broadcom BCM4318 : did not work.

All fine during installation/configuration but netcard still not visible to the operating system and still not usable. Giving up (it stopped working with Linux Mint 12, one year ago, so...).

tangram said...

Hi Alex,

This HowTo was executed on Mint 12 was it worked perfectly fine for that release.

I haven't used Mint ever since so can't provide any help.

Best regards.

Anonymous said...

Just tried this on a Dell Latitude D410 running Ubuntu 12.04 - worked a treat, thanks! I've tried multiple times to get WiFi working on this lappy over the past 6 months, this is the first advice that actually worked, thanks!

Anonymous said...

This worked perfect...You Sir are a GodSend...


Linux Mint 14 Cinnamon - on a HP DV8000 Laptop - lspci showed wireless broadcom BCM4318 -

Install didnt see the chipset. This worked perfectly. Gave me an error /etc/modules : permission denied... I did su and repasted it in. Ifconfig saw wlan0 with no ip. From su typed reboot and when it came it had an IP and works fine.

Really nice when someone that knows takes a few mins to save the rest of us tons of time. Thanks again

Anonymous said...

Thank you :-)

Mike Overholt said...

I can't begin to thank you enough. It is very nice to have those that have share with those of us that don't.

Anonymous said...

Much thanks - this worked like a charm to get a 2Wire card working on an old HP ze4200 with Linux Mint 14.

btw, as a previous commenter pointed out, if you get "permission denied," just type "su" at the command line, enter your pwd, then try the command again.

blue900 said...

Thanks for all the posts, worked great on a Dell 2200 Inspiron with Bodhi 2.2.0

Mat said...

Thank you so much :) !!

chipppy said...

Hi same issue same fix with same fix plus the su and reboot. Custom build i7 quad core. tangram is my hero

Cheers
chipppy

Roman Sadowy Jr. said...

rsadowy:
This was really great but I had the same problem with the last command as jagripton:

$ sudo echo "b43" >> /etc/modules
bash: /etc/modules: Permission denied

I was working on a Dell Inspiron 1300 running Linux Mint 14.1 with the Cinnamon desktop.

The fix by tangram:
"Then simply edit /etc/modules as root and add b43 to it." seems simple.
But being a newbie I don;t understand what he is saying. Help please - on how to do this & also what are we trying to do here?

Ps: Feeling frustrated, I just rebooted & the wireless worked fine but I'd like to execute the whole procedure!!

tangram said...

Use su to change to root and re-enter the command.

Roman Sadowy Jr. said...

rsadowy:

Did the following-

$ su [username]
password: [password]
$ cd /
$ /sudo echo "b43" >> /etc/modules
bash: /etc/modules: Permission denied

Did I do the right thing (super newbie)?

tangram said...
This comment has been removed by the author.
tangram said...

Straight from su man page: "su - change user ID or become superuser. The su command is used to become another user during a login session."

If you type su yourusername then you've change to yourusername. You want to issue su with no argument so that it changes you to the superuser.

Don't blindly copy & paste command, research them to understand what they do and can be used.

Roman Sadowy Jr. said...

4013Thank you tangram. I will take your advice to heart & end blind copying. Also, completed procedure with no errors.

Nightmare said...

Thanks a lot!

You saved my day :)

Anonymous said...

Being a newbie: I followed your instructions carefully. Worked perfectly on 1st computer. On 2nd computer, I had issues: By the time I got to the final command, I received "Permission Denied." OK, so I typed su and entered my password. All went well this time around, except the computer still wouldn't see the internal wifi card. Rebooted and nothing happened. I remembered having removed the CMOS battery previously. This caused the wifi card to be disabled in the system bios. After enabling the wifi card through the system bios of old compaq laptop (f10 key), I followed your instructions --but this time as a "su" from the beginning. I clicked on the connections button on the tool bar, enabled wifi, and behold, the blue wifi light on the keyboard began to shine. I believe that version 11 of the Ubuntu flavors was the last that would detect this chipset on this computer. Trying to install bcm4318 on Lubuntu 13 will cause the sytem to crash. Thank you so much for your help.

oL said...

Hello, when I get to the last line ($ sudo echo "b43" >> /etc/modules) I get bash: /etc/modules Is a directory.

Any suggestions please?

tangram said...

Most likely because this HowTo applies to Mint 12 and you're applying it to recent release.