This is a constantly evolving post and discussion dedicated to guiding Linux/BSD users to the best FOSS solutions for their wireless hardware needs.
This is not intended to be an exhaustive list of every option but a good summary of the highest quality options that are best supported, easily available and preferably from FOSS orientated companies. Also these devices won’t necessarily work right out of the box (thank you Popey) as firmware may need to be installed, more often than not from your distro’s repo with one command.
Options are divided into chipsets as they share the same capabilities and firmware:
What are my options?
Interface
Chipset maker & model ← FOSS firmware ← chipset features
- Retail option - additional features
USB
Atheros AR7010+AR9287 ← ath9k_htc ← 802.11b/g/n, 2.4GHz
- Technoethical TET-N300HGA - Fixed antennae
- Technoethical TET-N300
Atheros AR7010+AR9280 ← ath9k_htc ← 802.11a/b/g/n, 2.4GHz
- Sony UWA-BR100 - wireless+LAN
Atheros AR9271 ← ath9k_htc ← 802.11b/g/n, 2.4Ghz
- ThinkPenguin TPE-N150USB
- Technoethical TET-N150HGA - RP-SMA antennae
- Technoethical TET-N150
- ALFA Network AWUS036NHA - RP-SMA antennae
- TP-LINK TL-WN722N - RP-SMA antennae
- TP-LINK TL-WN721N
- TP-Link TL-WN422G v2 - RP-SMA antennae
- TP-Link TL-WN322G v3
PCIe
Atheros AR9280 ← ath9k_htc ← a/b/g/n, 2.4 & 5Ghz, Wireless N Dual-Band
- ThinkPenguin TPE-N300PCIED4 (full & low profile brackets)
- ThinkPenguin TPE-N300PCIED3 (full profile)
- ThinkPenguin TPE-N300PCIED2 (low profile)
NGFF M.2
Atheros AR9462 ← ath9k_htc ← 802.11a/b/g/n, 2.4 & 5Ghz, Wireless N Dual Band + Bluetooth 4.0
- ThinkPenguin TPE-M2NCRD E-Key
Atheros QCA9565 ← ath9k_htc ← 802.11b/g/n, 2.4Ghz
- ThinkPenguin TPE-M2NCRD2 A & E-Key
Mini PCIe x1
Atheros AR9382 ← ath9k_htc ← a/b/g/n, Dual-band 2.4 & 5Ghz
Atheros AR9380 ← ath9k_htc ← 802.11a/b/g/n, 2.4 & 5Ghz
Atheros AR9281 ← ath9k_htc ← b/g/n-draft, 2.4Ghz
Atheros AR9280 ← ath9k_htc ← a/b/g/n, Dual-band 2.4 & 5Ghz
Mini PCI
Atheros AR9223 ← ath9k_htc ← 802.11N
Atheros AR2413 ← ath9k_htc ← 802.11G, 2.4Ghz
Scratch notes on finding hardware:
There’s a lot of open source wireless drivers and chipsets known to be compatible but the tricky part is finding the best mix of performance, support, availability and discoverability (which devices are using it).
Using wikipedia’s page to cross-reference the best of the known chipsets against the best known driver capabilities and requiring the driver exist on both tables, the best FOSS chipsets within that comparison appear to be using the:
ath9k
- Protocol(s): a,b,g,n
- Interface(s): PCI, Mini PCI, Mini PCIe, AHB
- Chipset(s): Qualcomm Atheros chips with IEEE 802.11n support
ath9k_htc
- Protocol(s): a,b,g,n
- Interface(s): USB
- Chipset(s): Qualcomm Atheros AR9271, AR7010 (USB-PCIe bridge with AR928x chips)
ath10k
- Protocol(s): ac
- Interface(s): PCI, Mini PCI, AHB, Mini PCIe
- Chipset(s): Qualcomm Atheros chips with IEEE 802.11ac support
This seems to ring true as the list of products above all using ath9k and ath9k_htc chipsets except one which uses the AR2413 chipset.
Realtek RTL8812AU
The status of Realtek’s driver for this product is unclear, but it seems likely that it is not actively maintained. The Aircrack-ng project has created a working driver based on Realtek’s driver for this product. As of spring 2021 this project appears to be actively maintained. On Guix, the Aircrack-ng driver is available as the package rtl8812au-aircrack-ng-linux-module. The source code may be found here: GitHub - aircrack-ng/rtl8812au: RTL8812AU/21AU and RTL8814AU driver with monitor mode and frame injection
Resources
Community list of FOSS hardware sites: Community list of FOSS friendly hardware store pages and references
Mini-list of some FOSS wifi devices: wifi - h-node.org
Wikipedia wireless compatibility by chipset: Comparison of open-source wireless drivers - Wikipedia
Ubuntu wireless hardware support list: WifiDocs/WirelessCardsSupported - Community Help Wiki
Wireless driver support lists:
kernel.org: en:users:drivers [Linux Wireless]
Wikidevi: Category:Linux driver/802dot11 - DeviWiki (ex WikiDevi)
kernel.org ath9k_htc devices: https://wireless.wiki.kernel.org/en/users/drivers/ath9k_htc/devices
kernel.org ath9k devices: en:users:drivers:ath9k:devices [Linux Wireless]
Wikidevi ath9k devices: ath9k - WikiDevi
Wikidevi ath9k_htc devices: ath9k htc - WikiDevi
Wikidevi ath10k devices: ath10k - WikiDevi
WikiDevi matching firmware to chipsets: Wireless adapters/Chipset table - DeviWiki (ex WikiDevi)
ALFA Network, Linux support by chipset & ALFA model: Linux support for MT7610U based products - ALFA Network Docs
linux-hardware telemetry list of wireless hardware in use: Net/wireless devices
Linux Wireless LAN Howto (deep dive into chipsets and history): https://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/