Broadcom BCM4312 Wireless Issues on Ubuntu

Today I was installing Ubuntu Lucid Lynx on my friend’s notebook, a Compaq Presario CQ20. Installation process ran smooth. After reaching desktop, with wireless already switched on, the stupid computer can’t find any wireless network.

It’s been a long time I never had a ubuntu fresh install with devices that doesn’t work. Since Ubuntu Karmic, usually all my installations is “just works”, all devices works just like that.

Okay, enough with the chit chat, let’s get this done fast. Simple googling for the notebook’s spec gives me information about which wireless chipset used by the notebook. It’s a Broadcom BCM4312. Another simple googling with keyword “broadcom bcm4312 ubuntu” leads me to another tutorial about resolving broadcom wireless issue.

The official solution is provided by the vendor here, which is great. But sadly they only provide the source code tarball, no pre-compiled package listed there. Lazily I extract the tarball, then *sigh*, read the manual. Quick read-skip-read takes me to part about steps to install from pre-compiled package, hurray.. Here’s how:

First of all, you have to make sure you have the right device to troubleshoot, by using this command:
$ lspci -vnn | grep 14e4

If you have the right wireless device, then command above should give output more or less like this:
02:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g [14e4:4315] (rev 01)
Subsystem: Broadcom Corporation Device [14e4:04b5]

Afterwards, download these packages from other ubuntu system by using apt-get --download-only install PACKAGENAME:

  • patch
  • dkms
  • bcmwl-kernel-source

If you don’t have other ubuntu system which connected to repository server, you can browse for that packages on repository server. But because I don’t have much thing to do, let me do the browsing:

patch for 32bit ubuntu
dkms for all ubuntu
bcmwl for 32bit ubuntu

Click on the link above to download.

Then transfer those files to the target notebook using flash drive or anything.

Last step is calling the mighty dpkg:

$ sudo dpkg -i patch_2.6-2ubuntu1_i386.deb
$ sudo dpkg -i dkms_2.1.1.2-3fakesync1_all.deb
$ sudo dpkg -i bcmwl-modaliases_5.60.48.36+bdcom-0ubuntu3_i386.deb

The process is a bit lengthy, especially when installing bcmwl-kernel-source package, so be patient and keep hoping you don’t crash your notebook.

When the installation finished, reboot, and stay hopeful that you don’t crash your notebook. If reboot success, check wireless access points with network manager applet on upper right of the desktop. If there’s wireless network detected, then voila, you are done.