UPDATE: Broadcom 4313 on 12.04 Precise Beta 1
I like thorough documentation and am not afraid to post to myself so here it goes:
Just installed 12.04 beta 1 on its own partition (bye-bye Mint) and had to tackle the wireless again but this time it was easier. Perhaps the driver works better out of the box or perhaps I know a bit more about the blasted BCM4313 so didn't flail around too much. Anyway, upon a clean install running
givesCode:lspci -k
The open-source brcmsmac, alas, still does not work with 4313. I wish it did, I'd like nothing better than not having proprietary drivers on my hp laptop but I also do need the wirelessCode:kernel driver in use: brcmsmac kernel modules: bcma, brcmsmac
Anyway, going to Additional Drivers in System Info and activating the STA drivers adds the wl (WL) driver to kernel modules. To make it work immediately:
to remove all drivers and avoid conflicts. ThenCode:sudo rmmod bcma sudo rmmod brcmsmac sudo rmmod wl
to load just the wl driver. To make the changes permanent open the blacklist file in a text editor (in this case gedit) with root privileges by runningCode:sudo modprobe wl
and add the linesCode:gksudo gedit /etc/modprobe.d/blacklist.conf
somewhere handy. Proofread, save and close. EnjoyCode:blacklist bcma blacklist brcmsmac
I am still hoping that brcmsmac will start working at some point and intend to check again when I install 12.04 proper in April but until then wl will have to do.
Last edited by ts3; March 10th, 2012 at 02:01 AM. Reason: style
Hello, and thank you! I now have full bars on my second floor when my router is 2 floors below!
My only problem is that even after getting it working and completing your instructions, I still have to do:
sudo modprobe lib80211
sudo modprobe cfg80211
sudo insmod wl.ko
after every restart. For some reason, which I can't figure out, the driver isn't loading after restart. any suggestions?
Thanks again!
You're welcome, glad the wireless is working
As to loading at boot time, I've pasted below straight from the Broadcom readme.txt and have added my comments in square brackets and underlined:
"3: Setup to always load at boot time.
The procedure to make a module load at boot time varies from distro to distro. Consult the docs for your specific distro to see how. The following seems to work for my setup on Fedora and Ubuntu. Check your docs to see the procedure for your distro.
Follow these steps to have the driver load as part of the boot process:
# load driver as described above [My comment: these are the steps that you are doing up to insmod wl.ko]
# cp wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless [My comment: need to add sudo at the beginning; check the kernel version by running uname -r in terminal and substitute above for `uname -r`; I think the way the command is written, with slanted quotes, probably pulls the kernel version automatically but I wasn't sure and didn't want to experiment so I just typed the kernel manually; also, you need to change directory to hybrid_wl and run the copy command from there; you're basically copying the wl.ko file to the /lib directory; you can use the file manager to go to /lib/modules/3.0.0-16/kernel/drivers/net/wireless and check that the file is there]
# depmod -a [My comment: again, add sudo here, this is for the module dependencies]
# echo modeprobe wl >> /etc/rc.local (Fedora/SUSE) [My comment: I didn't do that, I don't remember why but I checked at the time and I don't think you need for Ubuntu]
Ubuntu ships a version of wl.ko, so those need to be disabled. On my system the were several versions, so I searched and renamed the .ko's like this:
# sh: for i in `find /lib /var -name wl\.ko`; do mv $i ${i}.orig; done [My comment: I did not run this either but I did search for other wl.ko files in /lib/ and didn't find any]" End of quote from Broadcom readme.txt
Building the driver from scratch is probably the most difficult way to get a working wireless, I only did it once to make sure that I could build it if I had absolutely no access to wired internet.
The easier way would be to remove and blacklist all conflicting drivers and then download the wl driver from Ubuntu Software Centre (search for "bcmwl" there and download all three) using wired internet.
P.S. I just looked through my printout of the readme file and my notes: it's probably a good idea to generate a new initramfs if you haven't done so (check the broadcom file on how to do that: back up the current one initrd.img, run update-initramfs -u to replace with new and then reboot)
P.P.S. Please please double-check how your system is set-up before running any of those commands as I don't know nearly enough to give advice. At the time before running any of those I'd browse to the relevant directory to make sure it existed before copying files there
thank you, sir, for the quick response!
I've looked over your post and the readme multiple times, and I've tried everything and can't get it to load on startup.
I guess I don't know enough about the kernel.
When I do lsmod after startup it doesn't list anything that I need loaded.
So after every startup, I have to do a "sudo modprobe wl" and then everything works, and in lsmod I see:
lib80211_crypt_tkip 8676 0
wl 2590926 0
cfg80211 148725 1 wl
lib80211 6151 2 lib80211_crypt_tkip,wl
depmod -a should be loading these on startup, right? for some reason it isn't.
Any help is greatly appreciated!
UPDATE:::
I got it working by inserting the line "wl" into /etc/modules
I don't know why I had to do this, I'm confused how/why others were able to follow this guide and not have to edit /etc/modules.
Can someone who got this working give a printout of their /etc/modules to see what's there?
Last edited by irishetalon007; March 12th, 2012 at 11:17 PM.
Sorry, took me a while to get to the actual laptop and look at the file you were asking about. Here's my /etc/modules, it's the same in 11.10 and in 12.04 beta 1:
For what it's worth I haven't made any changes to the file. LP seems to be for a parallel port printer that I have no use for so I am considering commenting it out; RTC seems to stand for Real Time Clock so I am definitely leaving that one in.Code:# /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. lp rtc
Ultimately, you have a working wireless so I wouldn't worry too much about having to add a module to load at boot. Perhaps take a look at /etc/modprobe.d, particularly at the blacklist.conf but also at the other files to make sure wl is not blacklisted somewhere.
Cheers
Thanks for all your help!!!
I just upgraded to 12.04 beta 2, and my BCM4313 has, once more, crapped out. I tried the solution above, but when I tried to enable the STA driver in Additional Drivers, I got an error. In /var/logs/jockey.log, it gives me:
lspci -k yieldsPHP Code:
2012-04-21 16:58:42,474 DEBUG: BroadcomWLHandler enabled(): kmod disabled, bcm43xx: blacklisted, b43: blacklisted, b43legacy: blacklisted
2012-04-21 16:58:43,597 DEBUG: BroadcomWLHandler enabled(): kmod disabled, bcm43xx: blacklisted, b43: blacklisted, b43legacy: blacklisted
2012-04-21 16:58:48,256 WARNING: modinfo for module wl failed: ERROR: modinfo: could not find module wl
2012-04-21 16:58:48,258 WARNING: /sys/module/wl/drivers does not exist, cannot rebind wl driver
2012-04-21 16:58:48,360 DEBUG: BroadcomWLHandler enabled(): kmod disabled, bcm43xx: blacklisted, b43: blacklisted, b43legacy: blacklisted
PHP Code:
03:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)
Subsystem: Hewlett-Packard Company Device 1795
Kernel modules: bcma, brcmsmac
Hi pmheideman, please do:
Code:echo "blacklist bcma" | sudo tee -a /etc/modprobe.d/blacklist.confThen rebootCode:echo "blacklist brcmsmac" | sudo tee -a /etc/modprobe.d/blacklist.conf
Thanks
I googled the /var/log error and found a couple of posts that might help:
http://ubuntuforums.org/showthread.php?t=1390979 where the poster in post #9 had to install linux-headers for the new kernel after an upgrade (it seems the problem affected people who had built the wl driver manually).
I was going to suggest on general principles first to install all updates (obviously you need wired internet for this), then to take a look at /etc/modprobe.d/blacklist.conf to make sure wl is not blacklisted there and also to check the other blacklist files in that directory (I remember finding wl blacklisted in a file called blacklist-local.conf).
You can try to install the driver through the software centre, type wl in the search field and install bcmwl-source and the two sta something or other packages that come up, or through the command line with apt-get install.
If you have wired internet and can try any of those suggestion then great. If worse comes to worse you may need to build the driver from the broadcom website but you'll need linux-headers and other tools for that as well. It's not fun but it's doable.
Also, check this thread, in particular post #44 and post #84, great info and some suggestions on how to troubleshoot BCM4313 using the scorched earth approach (once the wireless gets messed up uninstall and re-install everything and reboot a few times for good measure; this is what worked for me the first time around too). Also, people who have the acer-wmi module need to blacklist that apparently.
If anyone has other suggestions or experience please jump in Reckon there'll be a lot of broadcom posts with the 12.04 upgrade getting closer and closer.
EDITED TO ADD: Please ignore the above and listen to wildemanne39, he knows what he's doing when it comes to troubleshooting wireless
Last edited by ts3; April 22nd, 2012 at 12:47 AM. Reason: add
Bookmarks