ATHN(4)

πŸ“¦
version 11.0 Β· 2 versions
, in nixpkgs unstable

✨ athn(4) β€” the Atheros wifi driver that literally slays ✨

okay so bestie, this is the athn(4) page from the Kernel Interfaces Manual, and it's giving wireless network device realness. no cap, this driver is the main character for a whole bunch of Atheros chips, and we're gonna go through every single detail together. periodt. πŸ’…


NAME

athn β€” Atheros IEEE 802.11a/g/n wireless network device πŸ¦‹


SYNOPSIS

athn* at cardbus?
athn* at pci?
athn* at uhub? port ?

like, it attaches via CardBus, PCI, or USB, depending on the vibe of your hardware. slay. ✨


DESCRIPTION

The athn driver provides support for a wide variety of Atheros 802.11n devices, ranging from the AR5008 up to the AR9287. that's a glow-up from the old days, fr fr. πŸ”₯

The AR5008 (codenamed Owl) is the first generation of Atheros 802.11n solutions. It consists of two chips, a MAC/Baseband Processor and a Radio-on-a-Chip. The MAC/Baseband Processor can be an AR5416 (PCI and CardBus form factors) or an AR5418 (PCIe Mini Card form factor). The radio can be an AR2122, AR2133, AR5122 or an AR5133 chip.

  • The AR2122 chip operates in the 2GHz spectrum and supports up to 2 transmit paths and 2 receiver paths (2T2R).
  • The AR2133 chip operates in the 2GHz spectrum and supports up to 3 transmit paths and 3 receiver paths (3T3R).
  • The AR5122 chip operates in the 2GHz and 5GHz spectra and supports up to 2 transmit paths and 2 receiver paths (2T2R).
  • The AR5133 chip operates in the 2GHz and 5GHz spectra and supports up to 3 transmit paths and 3 receiver paths (3T3R).

The AR9001 (codenamed Sowl) is a Mini-PCI 802.11n solution. It consists of two chips, an AR9160 MAC/Baseband Processor and an AR9103 or AR9106 Radio-on-a-Chip.

  • The AR9103 chip operates in the 2GHz spectrum and supports up to 3 transmit paths and 3 receiver paths (3T3R).
  • The AR9106 chip operates in the 2GHz and 5GHz spectra and supports up to 3 transmit paths and 3 receiver paths (3T3R).

The AR9220, AR9223 and AR9280 (codenamed Merlin) are the first generation of Atheros single-chip 802.11n solutions. The AR9220 and AR9223 exist in PCI and Mini-PCI form factors. The AR9280 exists in PCIe Mini Card (XB92), half Mini Card (HB92) and USB 2.0 (AR9280+AR7010) form factors. The AR9220 and AR9280 operate in the 2GHz and 5GHz spectra and support 2 transmit paths and 2 receiver paths (2T2R). The AR9223 operates in the 2GHz spectrum and supports 2 transmit paths and 2 receiver paths (2T2R). iconic. πŸ’…

The AR9281 is a single-chip PCIe 802.11n solution. It exists in PCIe Mini Card (XB91) and half Mini Card (HB91) form factors. It operates in the 2GHz spectrum and supports 1 transmit path and 2 receiver paths (1T2R).

The AR9285 (codenamed Kite) is a single-chip PCIe 802.11n solution that targets the value PC market. It exists in PCIe half Mini Card (HB95) form factor only. It operates in the 2GHz spectrum and supports a single stream (1T1R). It can be combined with the AR3011 chip to form a combo WiFi/Bluetooth device (WB195). combo queen! πŸŽ€

The AR9271 is a single-chip USB 2.0 802.11n solution. It operates in the 2GHz spectrum and supports a single stream (1T1R).

The AR2427 is a single-chip PCIe 802.11b/g solution similar to the other AR9280 solutions but with 802.11n capabilities removed. It exists in PCIe Mini Card form factor only. It operates in the 2GHz spectrum.

The AR9227 and AR9287 are single-chip 802.11n solutions that target mid-tier PCs. The AR9227 exists in PCI and Mini-PCI form factors. The AR9287 exists in PCIe half Mini Card (HB97) and USB 2.0 (AR9287+AR7010) form factors. They operate in the 2GHz spectrum and support 2 transmit paths and 2 receiver paths (2T2R).


the glow-up table (but make it a list, bestie)

The following table summarizes the supported chips and their capabilities. i turned it into a bullet list because tables are not the vibe, but every single spec is still here. 🫢

  • <AR5008-2NG (AR5416+AR2122)> β€” 2GHz β€” 2x2:2 β€” PCI/CardBus
  • <AR5008-3NG (AR5416+AR2133)> β€” 2GHz β€” 3x3:2 β€” PCI/CardBus
  • <AR5008-2NX (AR5416+AR5122)> β€” 2GHz/5GHz β€” 2x2:2 β€” PCI/CardBus
  • <AR5008-3NX (AR5416+AR5133)> β€” 2GHz/5GHz β€” 3x3:2 β€” PCI/CardBus
  • <AR5008E-2NG (AR5418+AR2122)> β€” 2GHz β€” 2x2:2 β€” PCIe
  • <AR5008E-3NG (AR5418+AR2133)> β€” 2GHz β€” 3x3:2 β€” PCIe
  • <AR5008E-2NX (AR5418+AR5122)> β€” 2GHz/5GHz β€” 2x2:2 β€” PCIe
  • <AR5008E-3NX (AR5418+AR5133)> β€” 2GHz/5GHz β€” 3x3:2 β€” PCIe
  • <AR9001-2NG (AR9160+AR9103)> β€” 2GHz β€” 2x2:2 β€” PCI
  • <AR9001-3NG (AR9160+AR9103)> β€” 2GHz β€” 3x3:2 β€” PCI
  • <AR9001-3NX2 (AR9160+AR9106)> β€” 2GHz/5GHz β€” 3x3:2 β€” PCI
  • <AR9220> β€” 2GHz/5GHz β€” 2x2:2 β€” PCI
  • <AR9223> β€” 2GHz β€” 2x2:2 β€” PCI
  • <AR9280> β€” 2GHz/5GHz β€” 2x2:2 β€” PCIe
  • <AR9280+AR7010> β€” 2GHz/5GHz β€” 2x2:2 β€” USB 2.0
  • <AR9281> β€” 2GHz β€” 1x2:2 β€” PCIe
  • <AR9285> β€” 2GHz β€” 1x1:1 β€” PCIe
  • <AR9271> β€” 2GHz β€” 1x1:1 β€” USB 2.0
  • <AR2427> β€” 2GHz β€” 1x1:1 β€” PCIe
  • <AR9227> β€” 2GHz β€” 2x2:2 β€” PCI
  • <AR9287> β€” 2GHz β€” 2x2:2 β€” PCIe
  • <AR9287+AR7010> β€” 2GHz β€” 2x2:2 β€” USB 2.0

iykyk β€” that's a whole lotta chips, and every one of them is valid. πŸ’–


modes, bestie β€” the athn driver can operate in these

  • BSS mode β€” Also known as infrastructure mode, this is used when associating with an access point, through which all traffic passes. This mode is the default. (the default, so it's basically the main character energy of modes) πŸ‘‘
  • Host AP β€” In this mode the driver acts as an access point (base station) for other cards. you're the AP now, bestie! 🌈
  • monitor mode β€” In this mode the driver is able to receive packets without associating with an access point. This disables the internal receive filter and enables the card to capture packets from networks which it wouldn't normally have access to, or to scan for access points. (sneaky sneaky, but make it legal) 🧚

encryption β€” the tea β˜•

The athn driver can be configured to use Wired Equivalent Privacy (WEP) or Wi-Fi Protected Access (WPA-PSK and WPA2-PSK). WPA is the de facto encryption standard for wireless networks. It is strongly recommended that WEP not be used as the sole mechanism to secure wireless communication, due to serious weaknesses in it. 🚨 like, seriously bestie, don't do it. WEP is a red flag. 🚩 The athn driver relies on the software 802.11 stack for both encryption and decryption of data frames.


transmit speed

The transmit speed is user-selectable or can be adapted automatically by the driver depending on the number of hardware transmission retries. so you can control it, or just let the driver do its thing. either way, it ate. πŸ’…


FILES

For USB devices, the driver needs at least version 1.1 of the following firmware files, which are loaded when an interface is attached:

/libdata/firmware/athn-ar7010
/libdata/firmware/athn-ar7010-11
/libdata/firmware/athn-ar9271
pro tip from your girl: if these files are missing or corrupted, the driver will be sad and you'll get a diagnostic message. don't leave your USB wifi hanging. 😭

EXAMPLES

example 1 β€” join whatever network is available on boot, with WEP

The following ifconfig.if(5) example configures athn0 to join whatever network is available on boot, using WEP key β€œ0x1deadbeef1”, channel 11, obtaining an IP address using DHCP:

dhcp NONE NONE NONE nwkey 0x1deadbeef1 chan 11

yes, that's the actual WEP key from the manpage. don't @ me. 🫢

example 2 β€” host-based access point on boot

The following ifconfig.if(5) example creates a host-based access point on boot:

inet 192.168.1.1 255.255.255.0 NONE media autoselect \
        mediaopt hostap nwid my_net chan 11

you're the access point now. slay. πŸ‘‘

example 3 β€” join an existing BSS network, β€œmy_net”

Join an existing BSS network, β€œmy_net”:

# ifconfig athn0 192.168.1.1 netmask 0xffffff00 nwid my_net

look at you, joining networks like a boss. πŸ’…


DIAGNOSTICS

  • athn%d: device timeout β€” A frame dispatched to the hardware for transmission did not complete in time. The driver will reset the hardware. This should not happen. (if it does, it's giving "uh oh" energy) 😭
  • athn%d: radio is disabled by hardware switch β€” The radio transmitter is off and thus no packet can go out. The driver will reset the hardware. Make sure the laptop radio switch is on. like, check the switch bestie, it's probably just that. πŸ™ˆ
  • athn%d: radio switch turned off β€” The radio switch has been turned off while the interface was up and running. The driver will turn the interface down. (rude, but ok) πŸ’€
  • athn%d: error %d, could not read firmware %s β€” For some reason, the driver was unable to read the firmware file from the filesystem. The file might be missing or corrupted. (check your files, bestie!) πŸ“

SEE ALSO

arp(4), cardbus(4), ifmedia(4), intro(4), netintro(4), pci(4), usb(4), ifconfig.if(5), ifconfig(8)

go read those too, they're all part of the fam. 🫢


HISTORY

The athn driver first appeared in OpenBSD 4.7. Support for USB 2.0 devices first appeared in OpenBSD 4.9. It was later ported to NetBSD 7.0. a whole journey, honestly. ✨


AUTHORS

The athn driver was written by Damien Bergamini <damien@openbsd.org> based on source code licensed under the ISC released in 2008 by Atheros Communications for Linux. we stan a legend. πŸ‘‘


CAVEATS

⚠️ IMPORTANT TEA ⚠️ The athn driver does not support any of the 802.11n capabilities offered by the adapters. Additional work is required in ieee80211(9) before those features can be supported. so like, it's 802.11n hardware but not 802.11n features yet. the potential is there, bestie. it's giving "under construction" energy. 🚧

✨ and that's the whole athn(4) manpage, bestie! ✨ this page is from Debian, dated July 31, 2013, and it's section 4 of the manual. now go forth and slay your wireless config. πŸ’–πŸ¦‹πŸ’…

πŸ“¦ where this page comes from