Configuring Wi-Fi with a Broadcom BCM4312 on Debian
The module we’ll use to get our Wi-Fi card working is wl. In addition to the BCM 4312, this module supports the following devices: BCM4311, BCM4313, BCM4321, BCM4322, BCM43224, BCM43225, BCM43227, BCM43228.
Installing and configuring the module
First, authenticate as root:
su root
If you haven’t already added the contrib and non-free packages to your mirrors, do it now! In my case, I use Debian sid, so my /etc/apt/sources.list looks like this:
#
deb http://ftp.br.debian.org/debian/ sid main contrib non-free
Now update the package list:
apt-get update
Install module-assistant and wireless-tools:
apt-get install -y module-assistant wireless-tools
Compile and install one of the broadcom-sta-modules packages for your system using the module assistant (module-assistant):
m-a a-i broadcom-sta
It should automatically blacklist the modules that could conflict and prevent your Wi-Fi card from working correctly. But if it doesn’t, go to your /etc/modprobe.d/broadcom-sta-common.conf file and paste all the lines below:
# wl module from Broadcom conflicts with ssb
# We must blacklist the following modules:
blacklist b43
blacklist b43legacy
blacklist b44
blacklist bcma
blacklist brcm80211
blacklist brcmsmac
blacklist ssb
install wl /sbin/modprobe --ignore-install wl $CMDLINE_OPTS
This way, whenever your operating system boots, it will force-load the wl module and block the other conflicting modules if they’ve been loaded.
Now let’s update the ramdisk so that the modified files are refreshed:
update-initramfs -u -k $(uname -r)
Kill the modules that will cause conflicts and may currently be loaded:
modprobe -r b43 b43legacy b44 bcma brcm80211 brcmsmac ssb
Start the wl module:
modprobe wl
Configuring the network interfaces
This is a step that should not be skipped. You need to open the /etc/network/interfaces file and configure it to enable your network connection. If you don’t know which interface it is, type ip addr show — the Wi-Fi network card always starts with wlan (e.g., wlan1, wlan2, wlan3…).
In my case, my /etc/network/interfaces file looks like this:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
After you finish configuring your file, save it and reload:
/etc/init.d/networking restart
Or:
service networking restart
If you don’t perform either of these procedures, your Wi-Fi card might connect to a network through connection managers in X, but it probably won’t load any websites in the browser.
For more information on how to configure your Wi-Fi network through the /etc/network/interfaces file, visit WiFi/HowToUse.