Saturday, June 15, 2013

BCM4313 wifi driver on Ubuntu 13.04

Broadcom support for Ubuntu sucks. bcmwl-kernel-support or "wl" is your only hope if the built in brcmsmac driver doesn't work. And you'll have to blacklist all this stuff in /etc/modprobe.d/blacklist.conf
blacklist bcm43xx
blacklist bcma
blacklist ssb
blacklist b43
blacklist brcmsmac

If that doesn't work then go here.

Download the relevant tar.gz and follow the steps in the readme file. But even this might not work as advertized. If you get the error "/wl_linux.c:43:24: fatal error: asm/system.h: No such file or directory" then you need to do the following:

1) get the source files from broadcom -- 64-bit 32-bit

2) make a new directory and extract the source files
# mkdir hybrid-wl
# cd hydrid-wl
# tar -xvzf ../hybrid-portsrc_x86_64-v5_100_82_112.tar.gz

3) change to the problematic file directory
# cd src/wl/sys

4) fix the source file wl_linux.c (of course use your favourite editor):
# vi wl_linux.c
around line 43, remove the line
#include <asm/system.h>

search for the string
.ndo_set_multicast_list
and replace it with
.ndo_set_rx_mode

save the file, and try to compile

5) # cd ../../..
# make

If you are lucky things should work, and you'll have a file called "wl.ko" in the current directory. (I got these patches from the internet, not my own work.)

I then did

# mkdir -p /lib/modules/3.4.0-1.fc17.x86_64/extra/wl
# cp wl.ko /lib/modules/3.4.0-1.fc17.x86_64/extra/wl
# depmod -a
# modprobe wl

and I had to reconfigure the interface, inserting the network password again, but after that it's working.

Remember to do "modprobe lib80211" (and/or cfg80211) right before modprobe or insmod of wl or wl.ko. Also throw in a depmod at the end if the connections don't appear.

I got this info from: Fedora Forums