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
- 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
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
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 fileswget 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
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 the module
make -C /lib/modules/`uname -r`/build M=`pwd`
# copy it to modules location and load the module
# 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 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
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
sudo service NetworkManager restart
and voila! wifi worked perfectly at last!
This tutorial will probably work for all devices using Broadcom BCM4322.
This tutorial will probably work for all devices using Broadcom BCM4322.