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

ath9k

ath9k is a completely FOSS wireless driver for Atheros IEEE 802.11n WLAN based chipsets.

Subscribe to this page!

You should subscribe to this page so you can get e-mail updates on changes and news for ath9k automatically. You'll get an e-mail as soon as this page gets updated.

Mailing list

Our mailing list for this driver is:

https://lists.ath9k.org/mailman/listinfo/ath9k-devel

Get the latest ath9k driver

Any distribution shipping a kernel >= 2.6.27 will have ath9k present. Below is a list of the minimal distribution requirements to either use ath9k from 2.6.27 or from compat-wireless.

  • Ubuntu Intrepid (8.10)
  • Fedora Core 10
  • openSUSE 11.1
  • Mandriva Linux 2009.0 (formally known as Mandrake Linux)
  • ARCH Linux
  • Gentoo Linux
  • Red Flag Linux 7.0 (based on Fedora 10)

If you want to get the latest ath9k driver you can get it by using the wireless-testing git tree. Read our git-guide for that. Alternatively you can simply upgrade only your Linux wireless subsystem by using compat-wireless.

Enabling ath9k

To enable ath9k, you must first enable mac80211:

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

You can then enable ath9k in the kernel configuration under

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

Debugging ath9k

This is covered under the ath9k debugging section.

Enabling bluetooth coexistance

You can enable bluetooth coexistance on ath9k by using the btcoex_enable module parameter. This is not enable by default as some devices have had issues with it.

modprobe ath9k btcoex_enable=1

Products with ath9k cards

You can find all products int the market with ath9k cards on the ath9k products page.

supported chipsets

  • AR5418+AR5133
  • AR5416+AR5133
  • AR5416+AR2133
  • AR9160
  • AR9280
  • AR9281
  • AR9285 (>= 2.6.29)

  • AR9102 (AHB) (>= 2.6.30)

  • AR9103 (AHB) (>= 2.6.30)

Working

Modes of operation

  • Station Mode

  • AP Mode

  • IBSS Mode

Features

  • 802.11abg
  • 802.11n
    • HT20
    • HT40
    • AMPDU
    • Short GI (40 MHz only)
  • 802.11i
    • WEP 64 / 127
    • WPA1 / WPA2
  • 802.11d
  • 802.11h
  • 802.11w/D7.0
  • WPS client side (use wpa_gui-qt4 from wpa_supplicant for now)
  • WMM
  • LED
  • RFKILL
  • BT co-existence (with a module parameter)
  • 64-bit support / big endian, small endian
  • AHB and PCI bus

TODO

Things on our TODO list.

Being worked on

  • Multiple Interface support.

Immediate Love

  • Performance tuning, on MIPS routers currently CPU usage (softirq) is much higher than older MadWifi driver.

Cleanup

* Design a descriptor layer

  • Must probably encompass struct ath_rx_status and struct ath_tx_status, making struct ar5416_desc a HW type. Again, a clean layer for accessing descriptors.

* Rate Control cleanup

  • RC should be easily swappable with other algorithms, minstrel, for example. An easy hack would be to have an index conversion routine between MCS and internal. But the proper solution would be to fix ath9k's RC to use MCS indices internally.

* Cleanup HW capabilities

  • Still too convoluted.

* Cleanup ChannelFlags

  • Still a bit ugly.

* Naming Convention

  • Decide on a consistent and uniform prefix - do we want ath9k_ or ath_ everywhere ?

After the above mentioned points are taken care of, ath9k.h would be small enough to be merged with core.h. Any help is greatly appreciated (hint, hint).

In the long run

  • MIMO Power save
  • UAPSD
  • WDS - Already part of mac80211, probably can be added after AP
  • STBC
  • WOW
  • RIFS

Will not be supported

  • WEP 152 - there are no plans to support this in mac80211

A little history on ath9k

When it went in

ath9k was announced to have been merged into Linux-2.6.27-rc3 by Linus on Tue, 12 Aug 2008 19:33:16 -0700 (PDT), and consisted of 58.8% of the entire rc3 patch.

Early distributions which picked it up

OpenWrt became the first distribution to pick up ath9k and contribute to it.

ath9k bugs

This is covered under the ath9k bugs section.


This is a static dump of the old wiki, taken after locking it in January 2015. The new wiki is at https://wireless.wiki.kernel.org/.
versions of this page: last, v185, v184, v183, v182, v181, v180, v179, v178, v177, v176, v175, v174, v173, v172, v171, v170, v169, v168, v167, v166, v165, v164, v163, v162, v161, v160, v159, v158, v157, v156, v155, v154, v153, v152, v151, v150, v149, v148, v147, v146, v145, v144, v143, v142, v141, v140, v139, v138, v137, v136, v135, v134, v133, v132, v131, v130, v129, v128, v127, v126, v125, v124, v123, v122, v121, v120, v119, v118, v117, v116, v115, v114, v113, v112, v111, v110, v109, v108, v107, v106, v105, v104, v103, v102, v101, v100, v99, v98, v97, v96, v95, v94, v93, v92, v91, v90, v89, 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