Hire a senior Perl / Python programmer today; download my up-to-date resume (PDF)
John Bokma MexIT
freelance Perl programmer

Removing the old version of madwifi

Saturday, December 29, 2007 | 2 comments

When I installed Ubuntu 7.10 (Gutsy Gibbon) on my Acer Aspire 4320, madwifi also got installed (via Linux restricted modules). Since I was sure that having both madwifi and ndiswrapper on my notebook was not going to work, I removed the outdated version of madwifi.

That the outdated version of madwifi didn't work with the wireless network hardware - Atheros AR5006EG (rev 01) - in my Acer as is clear from the following output:

john@throy:~$ dmesg | egrep -i '(ath|wifi)'
[   16.004000] ath_hal: module license 'Proprietary' taints kernel.
[   16.004000] ath_hal: 0.9.18.0 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
[   17.020000] ath_pci: 0.9.4.5 (0.9.3.2)
[   17.068000] wifi%d: unable to attach hardware: 'Hardware revision not supported' (HAL status 13)

The output of dmesg was filtered, using egrep, in such a way that all lines with ath and/or wifi - case insensitive - are shown.

The following ath related modules were loaded:

john@throy:~$ lsmod | grep ath
ath_pci                98336  0 
wlan                  206660  1 ath_pci
ath_hal               192720  1 ath_pci

At first I thought I could simply remove those modules with:

sudo modprobe -r ath_pci

Since afterwards another lsmod | grep ath showed no modules. But it was a bit more complicated than that, as a reboot made clear.

Because the madwifi driver is part of the Linux restricted modules, I also had to disable the module by editing a file:

sudo gedit /etc/default/linux-restricted-modules-common 

and had to change:

DISABLED_MODULES=""

into:

DISABLED_MODULES="ath_hal"

which at least prevented the modules from being loaded, because after I rebooted the Acer notebook a filtered lsmod showed no modules:

john@throy:~$ lsmod | grep ath
john@throy:~$

However, still all was not right, as the following filtered output from dmesg shows:

john@throy:~$ dmesg | egrep -i '(ath|wifi)'
[   17.136000] ath_pci: Unknown symbol _ath_hal_attach
[   17.136000] ath_pci: Unknown symbol ath_hal_process_noisefloor
[   17.136000] ath_pci: Unknown symbol ath_hal_computetxtime
[   17.136000] ath_pci: Unknown symbol ath_hal_mhz2ieee
[   17.136000] ath_pci: Unknown symbol ath_hal_detach
[   17.136000] ath_pci: Unknown symbol ath_hal_probe
[   17.136000] ath_pci: Unknown symbol ath_hal_init_channels
[   17.136000] ath_pci: Unknown symbol ath_hal_getwirelessmodes

Blacklisting ath_pci did result in the above "Unknow symbol" lines no longer appearing in the output of dmesg. I opened the file /etc/modprobe.d/blacklist

sudo gedit /etc/modprobe.d/blacklist

and added the following line to the end of the file:

blacklist ath_pci

to have ath_pci blacklisted.

I saved the file, and rebooted the Acer Aspire 4320. When I checked the dmesg file again for any occurences of ath I got zero lines:

john@throy:~$ dmesg | grep -i ath
john@throy:~$

which was the output I was hoping for, so I moved on to the next step: Compiling and installing NDISwrapper on the Acer Aspire 4320.

Also today

Please post a comment | read 2 comments, latest by John Bokma | RSS feed