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


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

Mailing list

Our mailing list for this driver is:

Get the code

ath9k is part of wireless-testing now.

To build wireless-testing, use the instructions in this page:

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

supported chips

  • AR5418+AR5133
  • AR5416+AR5133
  • AR5416+AR2133
  • AR9160
  • AR9280
  • AR9281

Products in the retail market containing Atheros AR5008-based solutions


  • N1 Wireless Notebook Card

  • DWA-642 RangeBooster N Notebook Adapter

  • DWA-645 RangeBooster N650 Notebook Adapter

  • DWA-542 RangeBooster N Desktop Adapter

  • DWA-547 RangeBooster N650 Desktop Adapter

  • DWA-652 XtremeN Notebook Adapter
  • DWA-552 XtremeN Desktop Adapter
  • DWA-643 Xtreme N ExpressCard Notebook Adapter

  • DWA-556 Xtreme N PCIe Desktop Adapter


  • WPC300Nv2
  • WMP300Nv2
  • WPC100N
  • WMP110N


  • WL300NC


  • WNHDE111 Video Bridge
  • WN711, Wireless-N eXpresscard adapter


  • Station Mode


Things on our TODO list.

Being worked on

  • IBSS/Mesh - IBSS should work, needs testing with WPA (any user
    • interested in help testing?)
  • AP - This is being worked on, expect to see a lot of changes in
    • beacon.c
  • Give regulatory a good scrubbing, specially once CRDA goes in.
    • Pending additions for CRDA are moving the call to CRDA to use udev uevent helpers and to allow drivers to pass their own built regulatory domain structure.
  • Cleanup ath_hal and ath_hal_5416.
  • RX Filter - has to be completely revamped. (remove ath_scan_end, ath_scan_start)
  • Virtual Interfaces ( embed ath_vap in the private area of ieee80211_vif )


  • Merge ath_tx_status, ath_rx_status, ath_desc with ar5416_desc.
  • HW capabilities is still too convoluted.
  • ChannelFlags are still a bit ugly.

  • Node usage ( usage of sta_info was suggested )
  • Move aggregation away from rc.c


  • Identify macros that can be moved to mac80211 ( look at ath9k.h )
  • Use Bitfields wherever appropriate
  • Review inline usage.
  • Kerneldoc usage.
  • Everything else that were pointed out by Johannes.

In the long run

  • WDS - Already part of mac80211, probably can be added after AP
  • Merge struct ath_hal and struct ath_softc (probably best for 2.6.28)
  • LED
  • Power management – needs work and integration on mac80211/cfg80211,
    • see Johanne's e-mails

Distributions picking this up

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

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, 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