Get Atheros 5007eg working under GNU/Linux

The Wi-Fi card in my new ASUS laptop is an Atheros 5007EG, and unlike Intel’s Wi-Fi cards, it doesn’t seem to work “out of the box” with any Linux distros 😦 You’d think MadWifi tools would fix it, right? That’s what I assumed too, until I tried it. I found tons of success stories online about MadWifi working with Atheros 5006 cards, but the 5007EG is pretty new and doesn’t seem to play nice with MadWifi yet.
After typing sudo iwconfig in the Terminal, here’s what I got…

lo no wireless extensions.

eth0 no wireless extensions.

So, I decided to try another route; using the Windows driver with “ndiswrapper.” After a few hours of tinkering ;), I got the Wi-Fi up and running 😀 The first thing that hit me was, “I’ve got to blog this so no one else wastes time figuring out how to get Atheros 5007 working on Linux!” 🙂

Here’s how I got the Atheros 5007EG working on Ubuntu. I’m also planning to write up a post for Slackware once I get some free time to test it out 😀 Alright, here’s what I did.

First, go to System >> Administration >> Restricted Drivers Manager, disable HAL, and then reboot.

Next, install ndiswrapper from Synaptic. You’ll need these three packages:
ndisgtk
ndiswrapper-common
ndiswrapper-utils-1.9

Once ndiswrapper is installed, you’ll need the Windows driver for your Wi-Fi card. I had the Atheros 5007EG driver on a DVD that came with my laptop, but if you don’t have it, you can grab the right one from the Atheros website at http://www.atheros.cz/.

Open the Terminal, navigate to the folder with your Windows driver (the .inf file) for your Atheros card, and type:
ndiswrapper -i xxx.inf (replace “xxx” with the name of your .inf file).

Now, blacklist ath_pci. Type gksu gedit /etc/modprobe.d/blacklist in the Terminal.

Add this line to the end of the file:

blacklist ath_pci

Then type ndiswrapper -l to list the installed drivers. If it’s working, you should see something like this:

net5211 : driver installed
device (168C:001C) present (alternate driver: ath_pci)

Run these commands in the Terminal, one after the other:

sudo depmod -a

sudo modprobe ndiswrapper

sudo ndiswrapper -m

Then type gksudo gedit /etc/modules, add ndiswrapper to the end of the file, and save it.

That’s it, folks! 😀 Reboot your machine, and you can check if the Wi-Fi’s working (spoiler: it is!) by typing sudo iwconfig in the Terminal. Here’s what I got after the process:

lo no wireless extensions.

eth0 no wireless extensions.

ath0 IEEE 802.11g ESSID:off/any
Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
Bit Rate:54 Mb/s
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

Alright, have fun! Feel free to let me know if you run into any issues or if anything in this post isn’t clear.
~SeeJay