In order to celebrate New Year in a bit geeky way I decided to rid på IBM Thinkpad x60s of yet another blob that have been irritating me for a long time, the blob provided by ipw3945d. Instead I installed the completely open iwlwifi driver (note:only needing the binary ucode as some have pointed out). For future reference here is a short writeup of what I did.
First rid your system of the binary blobs:
emerge -Cv ipw3945d ipw3945-ucode
Get ready to install iwlwifi by reconfiguring your kernel and ensure the following options are enabled:
CONFIG_MAC80211=m
And then recompile your kernel. Note that you need a pretty recent kernel to have the new mac80211 stack .
As iwlwifi is still masked we have to unmask it by editing /etc/portage/package.unmask:
net-wireless/iwlwifi
net-wireless/iwl3945-ucode
Also they are still not stable so we also have to edit /etc/portage/package.keywords:
net-wireless/iwlwifi ~x86
net-wireless/iwl3945-ucode ~x86
At last I only have a 3945ABG card, lspci output shows:
Network controller: Intel Corporation PRO/Wireless 3945ABG Network Connection (rev 02)
So I enabled ipw3945 and disabled ipw4945 by editing /etc/portage/package.use:
net-wireless/iwlwifi ipw3945 -ipw4965
Now we're ready to emerge iwlwifi:
emerge -va iwlwifi
Now for somw reason udev rename the master interface to eth2 as shown in by dmesg output:
udev: renamed network interface wmaster0 to eth2
As long as you don't reconfigure udev your real interface will be named wlan0_rename. I worked around that problem by commenting out the following line in /etc/udev/rules.d/70-persistent-net.rules:
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:18:de:73:9b:c5", NAME="eth2"
Then your real interface will be named wlan0. This appears currently undocumented on the Gentoo Wiki HARDWARE ipw3945.
For network setup and wpa_supplicant you just have to substitue wlan0 for eth2:
sed -i -e "s/eth2/wlan0/g" /etc/conf.d/net
Ensure that the iwl3945 module is loaded at bootup:
echo iwl3945 >> /etc/modules.autoload.d/kernel-2.6
Then update init scripts and you're ready to reboot:
rc-update del default ipw3945d
rc-update del default net.eth2
cd /etc/init.d
rm net.eth2
ln -s net.lo net.wlan0
rc-udpate add default net.wlan0
reboot
Enjoy networking with one blob less and Happy New Year!
| Mon | Tue | Wed | Thu | Fri | Sat | Sun |
|---|---|---|---|---|---|---|
| << < | > >> | |||||
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | |