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 ;)

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

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.

oL said...

Thanks Tangram. I love the principle of linux/mint etc (free computing!), and I have managed thanks to a comment here: http://goo.gl/zttVs. Your instructions got the correct driver down, but access through the start menu (if I can call it that) did the trick. Are most Linux users coders/command line users? The windows 'norm' of clicking icons needs to be addressed before Linux will dominate (if that's the goal). Is this Pie-in-the-Sky? I have no idea!

Anonymous said...

Anonymous Newbie from above: I just used your instructions on new install of Linux Mint 15. Worked Perfectly. Just had to be "SU" like the last time (on Mint 14). Thanks !

Reddy.pariwar said...

hi,
i installed linux mint olivia on my system when the internet cable is connecting system it showing that connected, but i can't get browsing it showing no internet pls fix my problem.

tangram said...

Hey Reddy.pariwar,

Thanks for posting.

I'm sorry to put it this way but this blog isn't a support forum.

If your problem were strictly related to the how-to I might help but it seems unrelated (it doesn't help that you've provided no details on the problem except from saying it doesn't work).

Also do notice that this specific post was executed on Mint 12... you are using Mint 15.

I'd suggested going to Mint's forum _clearly_ stating your problem (posting system information such as lspci -vv, lspci -k and lsmod would help) and ask for help there.

Best of luck.

Regards,
Ricardo Jesus.

Juan Alejandro said...

Muchas gracias, en Linux Mint 15 MATE, esta es una completa soluciĆ³n :)


Thank you so much, in Linux Mint 15 MATE, this is fully solution :)

Anonymous said...

Awesome! Dell Inspiron 1300 on Mint 15, I also got the permission denied...and right at the last step!!! But, yeah, just type su and hit enter, give it your password and re-try the command. Reboot...not sure if I needed to, but I'm used to windows, so couldn't hurt. Unplug my Ethernet and BOOM! Wireless networks available!

Thanks so much!

Anonymous said...

Thanks , you are the greatest : )
I tried and searched to get an old hp 4000 working and your advice worked fine , i am a linux newbie so thank you very much : )

P Das said...

You made my day!!

Anonymous said...

thank you very much. u saved me.

Anonymous said...

Ok, so seriously I've gone through SEVERAL distros and versions, with my BCM4318 card. Only one Gentoo strain called Sabayon actually fired up my card from the start. But then I ran into many other issues with Gentoo.

Anyway this fix worked great on my Gateway 6440 (amd 64 chipset). This worked in Linux Mint 16. Now I have hope again to learn some other stuff about Linux. Thanks everyone

John Bartholomew said...

I had an old Dell Latitude D510 with Linux Mint 16. Spent 3 weeks trying to get my WIFI to work. Stumbled on to your blog and BOOM!
My WIFI now works. THANK YOU, THANK YOU, THANK YOU.

Freddy H. said...

Hi,

Just like the previous poster, John B., I also spent a lot of time on an old Dell Latitude D510, trying to get WiFi to work in several distro's ...
Until I stumbled upon Mint 16 and this post ...

Yeeeehah & a little dance ... ;)

Thank you very much for your excellent contribution to the world (of Linux) !!!

Freddy

tangram said...

Thanks for the feedback, I appreciate it.

Though I must say this is quite weird.. I mean this was a problem with Mint 12 which is now quite a few years old, it's a pity people still are having a problem 4 releases down the road.

Best regards.

Mike Lathrop said...

After hours and hours of searching, this is what worked for me. Thank you, thank you, THANK YOU for posting this.

For the benefit of Google, I'd like to include this phrase in this comment: Enable wireless for an HP DV8000 dv1225ca Broadcom 4318.

I did need to edit /etc/modules as you recommended above. Thanks for that tidbit, too!

Anonymous said...

It really works! Thank you, Thank you, Thank you! I was tearing my hair out over this problem! Thanks again!

Anonymous said...

I have also V5000 compaq laptop. My problem is ethernet connection is broken. That's why I would like my wifi connection to work. All solutions proposed needs to hava connection. By the way, I don(t have yet. How to solve my problem.

Thanks for help

tangram said...

Download the files from a computer with working network connection. Don't forget the dependencies.

Anonymous said...

Thanks Tangram, but I'm not so good with linux, reason why I choosed linux mint, wich install everything by itself. I use it on my desktop, it's a real pleasure without a terminal to open. That's why also I'd like to install it on my old laptop.
Now, what you tell me is a big challenge for me. What to download, where, wich dependencies, and I guess that after downloading, there's a special way to install it. You've got a starter who ask for learning.
So, if you have time and if your keyboard isn't occupied... you are welcome !

tangram said...

What you're asking is well outside the scope of this howto.

I don't have a working Mint installation to give you copy & paste step. All I can do you is to point you in the right direction which I did.

Some additional pointers:
- make sure your wireless card does in fact a Broadcom BCM4318 or some other supported by the b43 kernel module (you don't want to all this work for nothing);
- check apt-get man page for the option to download a package and its dependencies;
- from a computer (or vm) running Mint use said apt-get command to download b43-fwcutter and the required dependencies;
- download with wget broadcom-wl-4.150.10.5.tar.bz2;
- transfer the files to the target laptop;
- run the post's remaining steps

Not its up to you to get in there and get your hands dirty ;)

Anonymous said...

Thanks a lot. Your installation guide works on linux mint 16 too, but I have to add "b43" manually to /etc/modules. Probably it is neccessary to edit /etc/modprobe.d/blacklist-bmc43.conf because "b43" and "bcm43xx" are blacklisted. I have deactivated those entrees days before I found your helpfull hints.

Anonymous said...

Thanks for post.Very new to Linux.Your guide worked perfectly for broadcom card on old Toshiba laptop that I am using to try out a Linux distribution installed to hard disk.

Anonymous said...

THANK U SOOOOO Much

Rolf van den Berg said...

This is a GREAT post, thank you so much for sharing.
I am a fresh newbie trying to use Linux Mint16 and running that from a CD. At the moment I am running XP, like it but as we all know we have to upgrade. As a stubborn old fart I choose to go to Linux, looks good to me so far and it will serve my purposes. But I can not connect to the Internet (yet).
I am working on it for over a week now (I am retired) and I finally found this blog and was very thrilled that when I give in the lspci command my machine (HP DV8000,dv8225nr)comes up with exactly the same parameters as tangram is showing. So out of XP and starting Linux again and give in the commands as mentioned at the top.
I could install the b-43 fwcutter, no problem.
The next command line wget etc...does not work with me. It says failed: name or server not known, unable to resolve host address "mirror2.openwrt.org"
What do I do wrong???

tangram said...

Thanks for the feedback.

Are you sure that wget doesn't resolve? Basically what wget does is retrieve the file from the given URL.

I've just tried to retrieve the file and it's working perfectly.

Either way you can always Google for broadcom-wl-4.150.10.5.tar.bz2 and I'm sure you'll find other sources.

Best regards,
tangram.

tangram said...

Rolf,

I've downloaded the file and made it public by sharing via Copy.com at https://copy.com/CFc3R9RHpsWl.

Hope it helps.

Anonymous said...

This was the only solution tip that i ever could use and it worked! God bless you tangram ! I admire your knowledge. I tried 3 days and all the tips and tricks on every site and nothing helped except your solution tip. L. Finch

Rolf van den Berg said...

Tangram,

Thanks for the fast reaction!!
I looked at the copy.com with your code but There is nothing.
I downloaded the broadcom etc,etc and put it in the Home place on Linux, but I do not know how to access it in the linux terminal.I understand now that the http// address did not work because I am not on line. How can I get the file from my Home in Linux with wget?
Remember I am still a newbie (and extremely stubborn).

tangram said...

Well.. the link us working. I just pointed the web browser and it downloaded just fine.

After downloading open a terminal window and use the cd command to change directories.

If you're uncomfortable with this you can always use a graphical file manager and extract the archive with graphical archive manager according to your desktop environment.

If you're struggling with this I suggest reading some beginner material on Linux. This however is beyond the scope of this how-to.

Best of luck.

Rolf van den Berg said...

Thanks so much tangram,

I am making dinner but I will look at it later tonight. Where do you get the energy to tell these ignorant users what to do??. But you saved my day I did get some (very little insight how it works).

Rolf van den Berg said...

Thanks so much Tangram,
I am coming there i was able to give all the suggested commands in and it went pretty good.
Only the last command line (echo "n43 etc gives me an access denied, when I try to go to root (by giving the su (and enter) command it asks for a password?? Which I never use and hardly ever make.
But that's another topic which doesn't belong here.I will find out.
One again many THANKS!!

tangram said...

Hi,

It seems to be a problem that others posters came across. Just edit /etc/modules as root and add b43 as covered in previous posts.

Do take notice that this Howto was created a years ago on Mint 12 so there might be steps that need change.

Best of luck,
tangram.

Linda said...

I've just installed Linux Mint 16 Mate, and can't seem to get the networking to work. lspci says my network controller is Intel PRO/wireless 2200BG [Calexico2] Network Connection (rev 05). Does this Broadcom thing work, for me? Do I have to get online to get online? Thanks!

tangram said...

Hi Linda,

That's a completely different chipset from a different manufacturer. As such this tutorial won't work for your situation.

Being an Intel chipset from circa 2002 I'm sure it's pretty well supported in Linux kernel.

Best of luck,
tangram

Minorworlder said...

I managed to get this working on an Ubuntu 14.04 live USB (I wanted to see if it would work before installing) and it did. However, now that I have Ubuntu 14.04 installed, When I type in the "sudo modprobe b43" line, it just sits there doing nothing. Please help.

tangram said...

Hi,

Are you are the previous steps worked well? Use lsmod | grep b43 to check if the kernel module loaded successfully.

It is possible the Ubuntu repositories have the kernel module and you wouldn't need to use this how-to. Search the repositories and Ubuntu's wiki.

Best of luck,
tangram.

Minorworlder said...

Tried what you suggested, the command returned nothing. Decided to try it in Mint 16 in LiveUSB mode. I get this error when installing b43-fwcutter:
lzma: (stdout): Write error: No space left on device
dpkg: error processing initramfs-tools (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)
And I still have 2.4GB of space left on the USB drive. Any suggestions?

tangram said...

Hi,

According to others here even though the HowTo was created with Mint 12 in mind it still works for Mint 16.

Messing with LiveUSB and associated filesystems is well beyond the scope of this HowTo.

Good luck.

Gopher Baroque said...

Thanks, your detailed instructions worked fine for HP Pavilion DV8110 laptop running Mint 17.

John L said...

Such helpful advice! Have just got anti mx-14.1.1 June 18th build running on an Inspirion 1300 laptop with wireless now functioning! Keep up the great work!!

Anonymous said...

Wow, holy crap. SSOOOO glad I found this. Installed Mint 16 on my Dell D610 laptop, which had Windows 7 Ultimate up until a few days ago. Win started bugging out on me (too much in the way of malware for some reason...hhmmm...) so I figured it was finally time to try Linux! Took a little bit to get the wireless figured out, and this was definitely a learning experience! I've dabbled some in the file structure of my Android phones, and now I see how similar the basic architecture is with Linux.

Again, thank you Tangram for the walkthrough. I can now leave the bedroom. ;)

Anonymous said...

Houmed

thank you, this helped me alot.... am on Mint 17 and so far so good :D

Anonymous said...

Thank You! very helpful worked a treat.

Zeersplat said...

Brilliant, I have been trying to get mint 17 wireless working for weeks. This cracked it for me on an old Acer5101.
Many thanks

Anonymous said...

I am soooooooo grateful!! I've given up before on Broadcom chips, but this time found your blog. Google is our friend. Mint 17 Cinnamon 32 bit on an old Acer Aspire 5100. Broadcom model # BCM94318MPG [14E4:4318].
Thanks again!

Dave said...

Thank you so much for your instruction on how to enable my wireless network card and get drivers for my DEll and Gateway laptop, it has tremendously help me with less effort with my Mint 17. TKS!

tangram said...

Thanks for the feedback Dave.

Mike McWane said...

Hello Tangram,
When I give the command sudo echo "b43" >> /etc/modules, I get "Permission denied." When I type "su" I am prompted for my password, which I give.
Then, I get "#"
I'm a newbie and just cannot make this out.

tangram said...

Hey,

You should read the comments in this post as the question isn't new...

If the prompt changed from $ to # you've most likely changed to root. You can confirm that by running the whoami command.

After changing to root simply edit /etc/modules and add b43 to it. In alternative use echo "b43" >> /etc/modules to add b43 to the end of the /etc/modules file.

This is basic Linux/Unix stuff... honestly you should read some online resources on concept and basic of Unix-like systems before copy&pasting commands that you know what they do.

Regards.

Mike McWane said...

Tangram, thank you so much for your patience and professionalism. You solved my problem. I merely had to open my eyes and see.