Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I just installed Ubuntu 12.04 to dual boot with OS X Lion on my MacBook 4,1 (early 2008). Wireless doesn't work. Ubuntu knows--get the Broadcom driver, right? Sure, but the problem is I'm tethered to an iPhone and thus have no access to a wired connection to download it in Ubuntu! So my question is how do I download the driver on OS X and install it in Ubuntu?

UPDATE 1: I followed the instructions here, had problems the first time I tried it (gave me a big screen full of text and had to restart), and now get the text "Invalid ROM contents" before the Ubuntu desktop loads. Wireless still does not work.

Any solutions?

UPDATE 2: I just tried following instructions here and here. Didn't work! For some reason it can't get anything from the install media. It seems like certain files are missing or don't work and certain options are just unavailable. With Broadcom's own instructions, I get "Operation not permitted" on the Terminal commands under step 2 of the instructions for a fresh installation.

There has to be an answer!

UPDATE 3: I am able to connect to the internet briefly with Ubuntu using Bluetooth to tether. The connection is intermittent, only staying on for a few seconds before disconnecting and connecting again. I can visit web pages but I can't say it would work on package downloads. I tried installing the Broadcom drivers through "Additional Hardware" but got the same error message I got before about not being able to install it.

UPDATE 4: The output of lspci -nn | grep -i network is

02:00.0 Network controller [0280]: Broadcom Corporation BCM4321 802.11a/b/g/n [14e4:4328] (rev 03)

and of uname -r,


sudo modprobe b43 doesn't seem to do anything. I do still have the /lib/firmware/b43 folder and contents as explained in UPDATE 1--it gave me some trouble.

share|improve this question
Well, if you're already connected using the internet using tethering, then you can install packages the usual way. Please do some basic troubleshooting first: My WiFi adapter is not working at all. Where to start troubleshooting? – gertvdijk Oct 13 '13 at 22:46
No, I'm connected under OS X via WiFi tethering. I have no means of connecting under Ubuntu. – Wes Oct 14 '13 at 15:53
I'd look at the link in @gertvdijk's answer, Wes, that has some basic troubleshooting. Also, attach the output of lspci | grep Network here so we can identify your wifi card. Put the output into a text file and copy it over to OSX if you want, but the output will be a bit more important than you'd think in helping fix this. – Thomas Ward Oct 14 '13 at 16:09
Again, please do some basic troubleshooting first and report your steps here. Your question now jumps directly to Broadcom 4311 "solutions", but if you indeed have a Broadcom 4311, it's usually more complicated than that. So, include the exact output of the sections Identifying the exact hardware. and I had no luck with all options. What should I provide in a new question? from the linked Q&A in my first comment. – gertvdijk Oct 14 '13 at 19:02
The output of lspci -nn | grep -i network is 02:00.0 Network controller [0280]: Broadcom Corporation BCM4321 802.11a/b/g/n [14e4:4328] (rev 03) and of uname -r, 3.8.0-29-generic. – Wes Oct 15 '13 at 11:51

I'm proud to report that wireless is now, for the most part, working!

I went back over Broadcom's instructions (see the second link under UPDATE 2), but used the sudo command before everything to solve the permissions issue. The make command (no clean) worked, automatically using the cfg80211 API. On step 1 of the instructions for a fresh installation, I had to issue rmmod ssb_hcd before rmmod ssb as the former was using the latter, and I blacklisted both modules. On step 2, modprobe lib80211 and modprobe cfg80211 worked. On step 3, in addition to the cp and depmod commands, I used echo wl >> /etc/modules instead of the command suggested for Fedora/SUSE (thanks to gertvdijk for the link to that). I had to go back and follow the instructions for "Common issues" under step 2 to prevent ssb from loading at boot, even though it was blacklisted.

Everything worked until I ran a software update. The kernel was updated, so I did exactly what I did before and it now works again. So unfortunately it looks like this method must be repeated every time the kernel is changed.

Only problem now is it often seems to take a while before I actually get an internet connection. It recognizes the network and all, but I find I have to keep retrying to load web pages for a while. Sometimes disconnecting and reconnecting helps. The patchiness of my provider's data network through iPhone tethering over WiFi makes it difficult to identify exactly where the issue is. I sometimes have trouble with it in OS X and even on other computers in the house, and frequently have to reset the personal hotspot option (and sometimes the cellular data network connection) on the phone. So I'm not thinking it's a problem with Ubuntu. It just seems worse with it, but I'm probably just nitpicking. It is weird, though, that I only see two "bars" of signal strength. Then again, OS X only shows the tethering icon, with no indication of signal strength, so who knows.

UPDATE: Perhaps I spoke too soon! It's getting really annoying having to either wait or play around with network settings to get a good internet connection. I just tried OS X and Ubuntu right next to each other and there's definitely something funky going on with the way Ubuntu is getting wireless. Strange that it wasn't like this the other day when I first got it working.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.