After 10 Years, Trying Fedora Again; Wireless Fails and Fixes

I started using Linux back in 1997 when a buddy and I put Slackware, floppy by floppy, onto a Pentium 133.  I didn’t start using it full time until a couple years later, when Microsoft started requiring online registration with product keys.  Since then, I’ve used Red Hat, Gentoo, Debian, Arch and Ubuntu.  I abandoned Red Hat because of “dependency hell”, which the other distributions avoided entirely.  So, it’s been about 10 years, and as I’ve tracked Red Hat’s dismissal, and subsequent rewarming to, the desktop market, I have noticed that Red Hat, Fedora Core, and finally Fedora have learned from Ubuntu and made a better experience for the casual user.

So I installed the just-released Constantine to see how it measured up to my beloved Debian-derivatives I’ve been using the past few years.  I installed it on a netbook that I love: the Asus EEE 1002HA.  The verdict?  Yeah, it just works.  It has a smooth boot up, detected screen resolution well, has good sound support, allowed me to customize tap-to-click and scrolling on the touchpad, and allowed me to set up dvorak and rebind caps-lock to control simply and easily.  What didn’t work so well?  The Atheros AR928x chipset, which is why I’m posting this.

Short version: the Atheros AR928x is supported by the open-source code contributed by Atheros to MadWifi under the driver name “ath9k”, which is the kernel module Fedora 12 loads to support this hardware.  Unfortunately, the version included is a bit behind the times, and causes odd intermittent connectivity issues when associating with access points, which effectively makes the wireless on the machine next to useless.  The good news is that it is easy to fix.  Here we go:

  1. Update.  Get root on the command line and type ‘yum update‘.
  2. Install your development tools so you can compile things.  As root: ‘yum groupinstall “Development Tools” “Legacy Software Development”‘.
  3. Head over to the download site for compat-wireless and download the latest version of the ath9k driver.  Uncompress it.  Navigate to the directory it is in on the command line.
  4. Select the ath9k driver: ‘./scripts/driver-select ath9k‘
  5. Build: ‘make‘
  6. Install: ‘make install‘
  7. Unload your current ath9k driver: ‘make unload‘
  8. Load the new driver: ‘modprobe ath9k‘ (or simply reboot)

There were lots of discussions across the web about various hacks and methods to get ath9k to play nicely with the AR928x chipset, but this seemed to be the most straightforward approach to me, and it seemed to work really well, so I thought I’d post it here in hopes it would be useful to someone.  Happy hacking!