So with Ubuntu 9.04 (and possibly earlier) the Broadcom Wireless NIC in your Netbook (mine happens to be a Lenovo Ideapad S10) should just work. But obviously this will not happen with Debian 5.0. Because very little in Debian just works.
So the first thing to know is to ignore an articles such as these that tell you to mess with firmware. Also ignore whatever is on the Debian.
You do NOT have to use the fwcutter tools. Do it this way.
First, install your kernel headers (I use an OpenVZ kernel)
# apt-get install linux-headers-`uname -r`
Download the module source for the Linux STA driver from Broadcom.
Create a directory and uncompress the tarball (mine was hybrid-portsrc-x86_32-v5_10_91_9.tar.gz)
built-in.o Makefile src wl.mod.o
hybrid-portsrc-x86_32-v5_10_91_9.tar.gz modules.order wl.ko wl.o
lib Module.symvers wl.mod.c
The above is what you should see when you after you compile the module using the step below. Execute the command below from wihtin the directory that has the Makefile
# make -C /lib/modules/`uname -r`/build/ M=`pwd`
The resulting module you care about is wl.ko (assuming you have the ieee80211 module installed you will be able to insmod this and see the following in dmesg)
[ 922.523743] ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 18 (level, low) -> IRQ 18and with a lshw
[ 922.523997] PCI: Setting latency timer of device 0000:05:00.0 to 64
[ 922.622849] ieee80211_crypt: registered algorithm 'TKIP'
[ 922.623123] eth1: Broadcom BCM4315 802.11 Wireless Controller 18.104.22.168
description: Wireless interface
product: BCM4312 802.11b/g
vendor: Broadcom Corporation
physical id: 0
bus info: pci@0000:05:00.0
logical name: eth1
width: 64 bits
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=wl0 driverversion=22.214.171.124 ip=192.168.1.24 latency=0 module=wl multicast=yes wireless=IEEE 802.11bg
so I modified /etc/modules so that it looks like
# /etc/modules: kernel modules to load at boot time.
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
So that ieee80211 gets loaded and then added the following line to my rc.local file (before the exit 0, obviously)
insmod /usr/local/lib/modules/`uname -r`/wl.ko
After copying the module there and creating the directory (remember mkdir -p is your friend)
Now NetworkManager should work just fine. And WPA2 worked just fine with my crappy Westell AP.
I tried putting in somewhere in lib/modules/`uname -r` with no luck, but this works for me...
* * *
NOTE: Don't click on the image PCI Express Card image. It contains Chinese Ghostnet Malware that will turn your Mac (and only your Mac) into a Zombie botnet enabling a complete blackout or extortion of the power grid.
Additional keywords: NERC, FERC. SCADA. Project Grey Goose. Cyberwar. ISN. TASE.2