May 20, 2008 @ 12:40
Asus Eee PC uses Atheros wireless chip AR5007. Atheros as a company doesn’t support linux and doesn’t make linux drivers available, there are linux drivers but they are made by madwifi project crew. Atheros company doesn’t make any effort in making their wireless chips work on linux; they hide specifications of their wireless chips and don’t make them available to linux developers. It is amassing that a developers around madwifi project actually succeed in making these drivers considering all the obstacles. Madwifi drivers still needs Atheros binary HAL (Hardware Abstraction Layer).
This HAL is not binary firmware but a piece of code that needs to run in the Linux kernel. It consists of header files for which no permisison to modify is granted, and pre-compiled object files. The vendor’s position is that the Linux community simply needs to accept this sourceless HAL, since in principle the Atheros chip could be tuned to any frequency, and thus produce RF interference with systems operating in those frequencies. This binary HAL is unacceptable to the Linux kernel developers, and the madwifi driver in this state will never become part of the official kernel.
Some OpenBSD developers, facing the same issue, reverse-engineered the binary HAL and have produced an open source driver (ath5k), which has now been picked up by the madwifi team as the future direction. At the same time the madwifi driver has been labeled ‘legacy’ to reinforce this point.
So we have two drivers that support Atheros chip based wireless cards; madwifi and ath5k, but neither of them currently supports the chip that Asus choose for Eee PC – AR5007. That is now true, you say, my Eee PC runing Xandros linux has a working wireless!
If you weren’t aware Xandros uses NDISwrapper to load windows drivers (to learn more look at NDISwrapper article on Wikipedia). So Xandors is using windows and not linux wireless drivers.
UPDATE: I checked with lsmod and Xandros also uses madwifi (ath_pci) driver. They have also custom patched the driver to work.
athk5 driver is under heavy development and it is now known when it will support AR5007. Madwifi has a patch that adds support for AR5007, but unfortunately this patch cannot be committed to madwifi, since it breaks the ABI for all non-i386 HAL binaries.
In order to get your wireless working on Eee PC with madwifi you need to patch the driver manually so here is step by step walktrough:
Update: Im this tutorial I will show you how to download patched driver and compile it yourself.
Update 2: If you don’t wan’t to compile the driver manually then you need to configure Livna repository and then just issue yum command to install the driver.
As root do this:
rpm -i http://rpm.livna.org/livna-release-9.rpm
yum --enablerepo=livna-testing install kmod-madwifi
If you still want to do it manually and perrhaps learn how to do it then you need to install all necessary packages; as root do:
yum install make binutils gcc glibc-devel glibc-headers libgomp patch kernel-headers kernel-devel wget
Then blacklist the ath5k module; edit your blacklist file (as root) in \etc\modprobe.d\blacklists (I have to reverse slashes because mod_security on this blog that prevents writing \etc\ with regular slashes) and add the line with “blacklist ath5k”
echo "blacklist ath5k" >> \etc\modprobe.d\blacklist (reverse the slashes)
You should also edit your \etc\modprobe.conf to look like this:
## Start Atheros Stuff
alias wifi0 ath_pci
alias ath0 ath_pci
options ath_pci autocreate=sta
## End Atheros Stuff
Download patched madwifi driver:
Extract madwifi source code and compile it:
tar xvf madwifi-ng-r2756-20071018.tar.gz
That is it, after reboot you have a working wireless under Fedora 9.