Go back –> Main ath9k driver page
ath9k and ath9k_htc debugging
This page documents the debugging facilities available for ath9k and ath9k_htc
Contents
Enabling debug
If you have issues with ath9k or ath9k_htc you can enable debug. You will first need to enable the Kconfig option (CONFIG_ATH_DEBUG):
Device Drivers ---> [*] Network device support ---> Wireless LAN ---> <M> Atheros Wireless Cards ---> [*] Atheros wireless debugging
Then you can use the module parameter debug. We cover below the different available debug levels you can use.
enum ATH_DEBUG { ATH_DBG_RESET = 0x00000001, ATH_DBG_QUEUE = 0x00000002, ATH_DBG_EEPROM = 0x00000004, ATH_DBG_CALIBRATE = 0x00000008, ATH_DBG_INTERRUPT = 0x00000010, ATH_DBG_REGULATORY = 0x00000020, ATH_DBG_ANI = 0x00000040, ATH_DBG_XMIT = 0x00000080, ATH_DBG_BEACON = 0x00000100, ATH_DBG_CONFIG = 0x00000200, ATH_DBG_FATAL = 0x00000400, ATH_DBG_PS = 0x00000800, ATH_DBG_HWTIMER = 0x00001000, ATH_DBG_BTCOEX = 0x00002000, ATH_DBG_WMI = 0x00004000, ATH_DBG_ANY = 0xffffffff };
If you want to debug calibration (0x00000008) and resets (0x00000001) for example you would use (0x00000008 | 0x00000001) = 0x00000009. To debug everything just use 0xffffffff. Below is an example of how to enable debug for just configuration changes:
modprobe ath9k debug=0x00000200 (or) modprobe ath9k_htc debug=0x00000200
You can also use modprobe.d configuration files, for example to enable ATH_DBG_CONFIG (0x00000200) and ATH_DBG_PS (0x00000800) you would have a file /etc/modprobe.d/atheros.conf with this:
options ath9k debug=0xa00 (or) options ath9k_htc debug=0xa00
Debugfs files for ath9k
ath9k has several debugfs files which you can query for information and some which allow you to insert data. This can be enabled as:
Device Drivers ---> [*] Network device support ---> Wireless LAN ---> <M> Atheros Wireless Cards ---> [M] Atheros 802.11n wireless cards support [*] Atheros ath9k debugging
To get debugfs you will need to mount it first. You can do so as follows:
mount -t debugfs debugfs /sys/kernel/debug/
Below we document each debugfs file entry specific to ath9k.
debug
/sys/kernel/debug/ath9k/phy#/debug
This lets you change the current driver debug level which you would normally initialize during driver probe using the debug module parameter.
dma
/sys/kernel/debug/ieee80211/ath9k/phy#/dma
interrupt
/sys/kernel/debug/ieee80211/ath9k/phy#/interrupt
Interrupt statistics. To monitor interrupts you can also use the irq-watch script provided in the ath-utils.git tree.
rcstat
/sys/kernel/debug/ieee80211/ath9k/phy#/rcstat
Displays statistics about rates used, PER, retries and excessive retries.
wiphy
/sys/kernel/debug/ieee80211/ath9k/phy#/wiphy
xmit
/sys/kernel/debug/ath9k/ieee80211/phy#/xmit
TX frame statistics.
recv
/sys/kernel/debug/ieee80211/ath9k/phy#/recv
RX Error statistics.
RSSI per chain
The RSSI as received per chain is exposed through the recv file.
- RSSI-CTL0: maps to AR_RxRSSIAnt00
- RSSI-CTL1: maps to AR_RxRSSIAnt01
- RSSI-CTL2: maps to AR_RxRSSIAnt02
tx_chainmask
You can modify the TX chainmask on ath9k manually by using:
/sys/kernel/debug/ieee80211/ath9k/phy#/tx_chainmask
rx_chainmask
You can modify the RX chainmask on ath9k manually by using:
/sys/kernel/debug/ieee8011/ath9k/phy#/rx_chainmask
Debugfs files for ath9k_htc
ath9k_htc has a few debugfs files which show driver statistics. Enable it as:
Device Drivers ---> [*] Network device support ---> Wireless LAN ---> <M> Atheros Wireless Cards ---> [M] Atheros 802.11n wireless cards support [*] Atheros ath9k_htc debugging
tgt_tx_stats
/sys/kernel/debug/ieee8011/ath9k_htc/phy#/tgt_tx_stats
Target TX statistics.
tgt_rx_stats
/sys/kernel/debug/ieee8011/ath9k_htc/phy#/tgt_rx_stats
Target RX statistics.
tgt_int_stats
/sys/kernel/debug/ieee8011/ath9k_htc/phy#/tgt_int_stats
Target Interrupt statistics.
xmit
/sys/kernel/debug/ieee8011/ath9k_htc/phy#/xmit
Host TX statistics.
recv
/sys/kernel/debug/ieee80211/ath9k_htc/phy#/recv
Host RX statistics.
slot
/sys/kernel/debug/ieee80211/ath9k_htc/phy#/slot
Host slot management statistics.
queue
/sys/kernel/debug/ieee80211/ath9k_htc/phy#/queue
Host queue statistics.
debug
/sys/kernel/debug/ieee80211/ath9k_htc/phy#/debug
The current debug mask, which can also be changed.