NOTE: this page is for archival only, see the note at the end of the page.


ath5k is a completely FOSS wireless driver for Atheros WLAN based chipsets. It is now part of John's wireless-2.6 git repository.

Hacking ath5k

ath5k is currently available through the 'everything' and 'ath5k' branches of wireless-2.6 git repository as well as the mm tree. The git repository has the latest and greatest so you should try that if you want the latest. If you don't want to work with git then try the mm tree but that will be a bit outdated. For now please use the everything branch as that has the new configure_filter API changes to mac80211.

Here is a quick primer on git you can use to start hacking on ath5k.

To get ath5k:

git-clone git://
cd wireless-2.6
# Create a local "branch" called 'ath5k' based on John's remote 'origin/everything'
# We are going to add --track so we can git-pull from the branch
git-checkout --track -b everything origin/everything

To get the latest updates:


To get latest updates you can do if you did not add '–track':

# Go back to the local master branch
git-checkout master
git-checkout everything
git-rebase origin/everything

To review the changes last registered:


To review the changes made to ath5k, with a diff:

git-log -p drivers/net/wireless/ath5k/

To hack on stuff, you can create your own branch by doing:

git-checkout -b ath5k-fix-foo origin/everything
# hack hack hack
# To get a diff of your work:
git-diff > my_changes.diff
# Or if you just want to read them:
# To revert to the original state of the branch:
git-checkout -f
# If instead you want to commit
git-commit -a
# To view local branches
git-branch -l
# To view all remote branches
git-branch -r

Other cool git stuff:

# get the SHA of two commits
# Then get the diff of them, by showing the logs in between
git-log -p d8a285c8f83f728be2d056e6d4b0909972789d51..9202ec15da36ca060722c363575e0e390d85fb71
# Since SHAs are pretty unique you can just give it a short version
# and it will try to match what is right:
git-log -p d8a28..9202e

Now say I have two local branches, and I want to merge them. If I'm on local branch ath5k-my-latest and I want to merge with local branch ath5k-fix-foo, I do:

git-pull . ath5k-fix-foo

Enabling ath5k

To enable ath5k, you must first enable mac80211:

Networking  --->
  Wireless  ---> 
    <M> Improved wireless configuration API 
    <M> Generic IEEE 802.11 Networking Stack (mac80211)

Please note that there is another 802.11 networking stack:

    <M> Generic IEEE 802.11 Networking Stack

You do not need this. This option enables the old SoftMAC stack we hope to kill one of these days. You can still safely enable this though.

You can then enable ath5k in the kernel configuration under

Device Drivers  --->
  [*] Network device support  --->
        Wireless LAN  --->
          <M>   Atheros 5xxx wireless cards support


This driver is VERY new and under HEAVY development. Some users have reported success, some others have haven't had luck

supported chips

ath5k is designed with support in mind for any AR5210, AR5211 and AR5212 devices.

AR5210 - 802.11a
AR5211 - 802.11ab
AR5212 - 802.11abg

To do basic-testing of the driver you can do this:

modprobe ath5k
sudo ip link set wlan%d up
sudo iwconfig wlan%d essid any
# Make sure you get auth'd and then assoc'd
# Then either set an IP manually or get it via DHCP
ping gw

You'll probably see an immediate rate drop to 1M, this is because of how we currently handle rate control. You should be able to keep at least at 11M but for now set this manually:

iwconfig wlan%d rate 11M

Currently supported PCI ID list with respective status report on basic-testing as defined above.

Vendor:device  Type     Basic-testing
168c:0207      AR5210   ?
168c:0007      AR5210   ?

168c:0011      AR5211   ?
168c:0012      AR5211   OK

168c:0013      AR5212   OK
a727:0013      AR5212   ?
10b7:0013      AR5212   ?
168c:0014      AR5212   ?
168c:0015      AR5212   ?
168c:0016      AR5212   ?
168c:0017      AR5212   ?
168c:0018      AR5212   ?
168c:0019      AR5212   ?
168c:001a      AR5212   ?
168c:001b      AR5212   ?
168c:001c      AR5212   Loads, but no rx

Notes on supported devices

Please note that 001c is an 802.11bg device. As you can see from above the current driver design is for 802.11a, 802.11ab, or 802.11abg. We'll probably need a new device type in the driver for this device to pass only bg initial register writes and baseband gain settings.

available devices

Please visit for a complete list of supported devices


Supports 802.11abg, depending on the chipset, and some vendor extensions such as Atheros XR and Turbo. This driver requires no firmware!


  • Station Mode

not working yet

  • Access Point mode

  • Turbo

  • XR

Get driver

This driver is currently only in the everything branch of wireless-2.6.git.

Project Home Page

This is a static dump of the old wiki, taken after locking it in January 2015. The new wiki is at
versions of this page: last, v88, v87, v86, v85, v84, v83, v82, v81, v80, v79, v78, v77, v76, v75, v74, v73, v72, v71, v70, v69, v68, v67, v66, v65, v64, v63, v62, v61, v60, v59, v58, v57, v56, v55, v54, v53, v52, v51, v50, v49, v48, v47, v46, v45, v44, v43, v42, v41, v40, v39, v38, v37, v36, v35, v34, v33, v32, v31, v30, v29, v28, v27, v26, v25, v24, v23, v22, v21, v20, v19, v18, v17, v16, v15, v14, v13, v12, v11, v10, v9, v8, v7, v6, v5, v4, v3, v2, v1