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

Go back –> Atheros Linux wireless drivers

ath9k_htc

ath9k_htc provides hardware support for Atheros AR9001 and AR9002 family hardware.

Get the driver

The driver is part of wireless-testing. See this guide to use the wireless-testing tree directly. Or you can use compat-wireless to get the driver.

Chipsets supported

  • AR9271
  • AR7010

Supported Devices

See the ath9k_htc device list.

Mailing list

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

Configuring your kernel

Enable these options in your kernel config.

CONFIG_ATH_COMMON=m
CONFIG_ATH9K_HW=m
CONFIG_ATH9K_COMMON=m
CONFIG_ATH9K_HTC=m

Firmware

This driver requires firmware, you can get the approriate firmware from the firmware tree.

Firmware map:

AR9271 - ar9271.fw
AR7010 - ar7010.fw or ar7010_1_1.fw

For AR7010 based cards, place both ar7010.fw and ar7010_1_1.fw in /lib/firmware. The driver would load the required firmware.

The firmware has to be placed in the correct location, usually /lib/firmware. This could vary among distributions, so check your distro's policies if loading of the firmware fails.

Make sure that you have the latest driver from compat_wireless and the latest firmware. The endpoint configuration of the USB device has changed recently, requiring updates both in the host driver and the firmware. If you have problems with the driver that comes along with your distribution, the first troubleshooting step would be to install the latest compat_wireless package and firmware.

If the kernel log shows messages looping over and over again, like the sample shown below, an old firmware is present. Update the firmware.

ath9k_htc: Transferred FW: ar9271.fw, size: 51280
reset high speed USB device using ehci_hcd and address 9
device firmware changed
ath9k_hif_usb: probe of 2-2:1.0 failed with error -22
USB disconnect, address 9
...
ath9k_htc: Transferred FW: ar9271.fw, size: 51280
reset high speed USB device using ehci_hcd and address 10
device firmware changed
ath9k_hif_usb: probe of 2-2:1.0 failed with error -22
USB disconnect, address 10
...
ath9k_htc: Transferred FW: ar9271.fw, size: 51280
reset high speed USB device using ehci_hcd and address 11

Supported Features

  • Station Mode
  • Monitor Mode
  • IBSS Mode
  • Legacy (11g) operation
  • HT support
  • TX/RX 11n AMPDU aggregation
  • HW Encryption
  • LED
  • Powersave
  • Suspend/Resume

Modeswitching for AR7010

AR7010 based cards operate by default in USB Mass storage mode and have to be 'switched' to wireless mode on plugging in. If you have an old usb_modeswitch package, you can do this to load ath9k_htc automatically.

Add this line to /lib/udev/rules.d/40-usb_modeswitch.rules.

# Atheros Wireless
ATTRS{idVendor}=="0cf3", ATTRS{idProduct}=="20ff", RUN+="usb_modeswitch '%b/%k'"

Add a file "0cf3:20ff" in /etc/usb_modeswitch.d/ and add these lines to it.

########################################################
# Atheros Wireless

DefaultVendor= 0x0CF3
DefaultProduct=0x20FF

TargetVendor=  0x0CF3
TargetProduct= 0x7010

CheckSuccess=10
NoDriverLoading=1 

MessageContent="5553424329000000000000000000061b000000020000000000000000000000"

Now, when the device is plugged in, ath9k_htc should load normally. If not, report to ath9k_devel.

Debugging

See here.


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