I am the happy owner of an
ASUS X59SL-AP275C laptop which normally runs Ubuntu 8.10 (Intrepid Ibex) without a hitch.
Well, at least until I upgrade to a newer Linux kernel, for example today to
2.6.27-14-generic. When that happens, my wireless connection dies and I have to rebuild and reinstall the MadWifi Linux kernel driver for Wireless LAN devices with Atheros chipsets.
So in case anyone out there has the same problem and has pulling one's hair in frustration, I hope that this explanation will help.
First of all, make sure that this ethernet controller is installed:
$ lspci|grep Atheros
You should see something like this:
02:00.0 Ethernet controller: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01)
The next step is very important: make sure that your Wifi switch is turned on. Mine is located on the left side of the laptop and switched towards me.
Now go to
System > Administration > Hardware Drivers and make sure that support for
5xxx series of Atheros 802.11 wireless LAN cards is disabled. It should look something like this:
If it is not, then disable and reboot:
$ sudo reboot
Make sure that the relevant drivers are automatically loaded at boot by editing the
/etc/modules system file:
$ sudo gedit /etc/modules
and ensure that the following lines are present:
Now make sure that these same drivers are NOT blacklisted, e.g. not present or commented out in the
blacklist system file:
$ sudo gedit /etc/modprobe.d/blacklist
wifi0 just in case:
$ sudo ifconfig ath0 down
$ sudo ifconfig wifi0 down
The rest is down hill from here. If you don't already have it, grab the
madwifi-hal-0.10.5.6 from the MadWifi repository:
$ svn checkout https://svn.madwifi-project.org/madwifi/branches/madwifi-hal-0.10.5.6 madwifi
If you are more daring, you can also grab the latest version from the trunk:
$ svn checkput https://svn.madwifi-project.org/madwifi/trunk madwifi
There are a couple of utility scripts to unload the drivers and clean up the environment just in case:
$ cd madwifi/scripts
$ sudo ./madwifi-unload
$ sudo ./find-madwifi-modules.sh $(uname -r)
$ cd ..
Now it's time to build and install the driver the usual way:
$ sudo make unload
$ sudo make clean
$ sudo make
$ sudo make install
Load the module into the Linux kernel and enable:
$ sudo modprobe ath_pci
$ sudo ifconfig ath0 up
Display the wireless configuration:
You should see something similar to this:
lo no wireless extensions.
eth0 no wireless extensions.
wifi0 no wireless extensions.
ath0 IEEE 802.11g ESSID:"XXXXXXXXXXXXX" Nickname:""
Mode:Managed Frequency:2.437 GHz Access Point: 00:14:7F:8A:74:E3
Bit Rate:6 Mb/s Tx-Power:17 dBm Sensitivity=1/1
Retry:off RTS thr:off Fragment thr:off
Link Quality=21/70 Signal level=-74 dBm Noise level=-95 dBm
Rx invalid nwid:848 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
pan0 no wireless extensions.
Next enable scanning:
$ sudo modprobe wlan_scan_sta
And then display list of available wireless stations:
$ wlanconfig ath0 list scan
Which should provide a list similar to this:
SSID BSSID CHAN RATE S:N INT CAPS
XXXXXXXXXXX... 00:14:7f:8a:74:e3 6 54M 24:0 100 EP WME
Nummer 5 00:12:17:60:50:c5 11 54M 9:0 100 EPs
Sitecom 00:0c:f6:3e:ea:1f 11 54M 13:0 100 Es WME
Biesploos 00:11:50:8b:83:76 11 54M 4:0 100 EPs
If however the previous command results in an empty list, or something hasn't been working as expected, then simply reboot your laptop (and cross your fingers):
$ sudo reboot
If the Wifi is still not working then as a last resort you might want to try the following:
- Make sure that the WiFi switch on the side of the laptop is turned on! In my case, the switch is on the left side and should be slid towards the front. Wait about ten seconds.
- Hit the Fn-F2 combination key and wait a few seconds.
Hopefully now everything should be working just fine. If not then I'm sorry and wish you good luck searching further.