Recently I bought an
HP mini 2140 netbook and decided to install Ubuntu on it. As I browsing around for known issues on this machine I get into that with default 2.6.28.14 Kernel the Dual Core option from BIOS wouldn't work and installation crashed. After some readings I found that the latest Kernel (currently 2.6.30.4) fixed the problem so I proceed installation with Dual Core option disabled.
After that everything works like charm except wifi. I look around again in Ubuntu forums, blogs etc and come with this solution from
Jocelyn's Blog. Let's see it step by step:
-
Download and
compile latest Kernel, or use my ready made
2.6.30.4
to install these files just run
dpkg -i packagename.deb
- preparing the installation of STA Broadcom drivers
sudo apt-get install module-assistant
sudo module-assistant prepare
- download the Broadcom STA driver from
https://launchpad.net/debian/sid/+source/broadcom-sta/5.10.91.9-1
- the 32-bit driver:
https://launchpad.net/debian/sid/+source/broadcom-sta/5.10.91.9-1/+files/broadcom-sta_5.10.91.9.orig.tar.gz
- download also debian patches for this STA drivers version from:
http://patch-tracking.debian.net/package/broadcom-sta
mkdir wifi;cd wifi
# download all needed files
wget http://patch-tracking.debian.net/patch/series/dl/broadcom-sta/5.10.91.9-1/01-hidden-essid.patch
wget http://patch-tracking.debian.net/patch/series/dl/broadcom-sta/5.10.91.9-1/02-license.patch
wget http://patch-tracking.debian.net/patch/series/dl/broadcom-sta/5.10.91.9-1/03-2.6.29.patch
wget http://patch-tracking.debian.net/patch/series/dl/broadcom-sta/5.10.91.9-1/04-2.6.30.patch
mkdir hybrid;cd hybrid
# unpack the driver
tar zxf ../broadcom-sta_5.10.91.9.orig.tar.gz
cd broadcom-sta/
# patch the driver
patch -p1 < ../../01-hidden-essid.patch patch -p1 < ../../02-license.patch patch -p1 < ../../03-2.6.29.patch patch -p1 < ../../04-2.6.30.patch cd i386/
# make the module
make -C /lib/modules/`uname -r`/build M=`pwd`
# copy it to modules location and load the module
sudo cp wl.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/
sudo depmod -a
sudo modprobe wl
- in order to make sure the wl module is loaded after the reboot I’ve added wl to /etc/modules
sudo echo wl >> /etc/modules
Everything went well but wifi remained unavailable. I tried
lspci -v and realize that Kernel driver was in use wasn't the
wl but
ssb (
b43-pci-bridge). Then I read about
KernelModuleBlacklisting from Debian Wiki and come up with the following solution:
sudo echo blacklist b43 >> /etc/modprobe.d/b43.conf
sudo echo blacklist ssb >> /etc/modprobe.d/ssb.conf
sudo modprobe -r b43
sudo modprobe -r ssb
sudo modprobe -r wl
sudo modprobe wl
sudo depmod -ae
- recreate initrd and restart Network Manager
update-initramfs -u
sudo service NetworkManager restart
and voila! wifi worked perfectly at last!
This tutorial will probably work for all devices using Broadcom BCM4322.