ath9k

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

Mailing list

Our mailing list for this driver is:

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

Get the code

ath9k is part of wireless-testing now.

To build wireless-testing, use the instructions in this page: http://wireless.kernel.org/en/users/Download

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

Belkin

  • 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

Linksys

  • WPC300Nv2
  • WMP300Nv2
  • WPC100N
  • WMP110N

NEC

  • WL300NC

Netgear

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

working

  • Station Mode

TODO

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 )

Cleanup

  • 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

Minor

  • Enhance link quality reporting (also use noise floor calculation
    • from hardware, instead of a static value of ATH_DEFAULT_NOISE_FLOOR, which is -95)
  • 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
  • RKILL
  • Power management – needs work and integration on mac80211/cfg80211,
    • see Johanne's e-mails
  • Periodic noise floor calibration and ANI (Adaptive Noise Immunity)
    • for better performance.

Distributions picking this up

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