WiFi Chipset Compatibility

Which WiFi chips work on Linux, which need help, and how to fix the ones that don't.

Does My WiFi Work?

Most WiFi chipsets work on Linux, but some need extra firmware or drivers. The quickest way to find out: boot a live USB and see if you can connect to a network. If you want to check before installing, identify your chipset:

# Find your WiFi chipset (PCI-based, most laptops)
lspci | grep -i net

# Example output:
# Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)

# Find USB WiFi adapters
lsusb

# Check if a wireless interface exists
ip link show

Once you know the chipset, check the table below.

Chipset Compatibility

Brand Status Driver Notes
Intel Works out of the box iwlwifi Firmware included in most distros. Best Linux WiFi experience. AX200/AX210/BE200 all supported.
Qualcomm / Atheros Works out of the box ath9k / ath10k / ath11k / ath12k Excellent open source drivers. ath9k is considered one of the best wireless drivers ever written. WiFi 7 support via ath12k.
Broadcom Needs firmware b43 / brcmfmac / wl (broadcom-wl) Often does not work out of the box. Requires non-free firmware packages. Common in older MacBooks and some HP/Dell laptops.
Realtek Mixed rtlwifi / rtw88 / rtw89 / rtl8xxxu Newer chips (rtw89-based like RTL8852BE) are getting mainline support. Older USB adapters often need out-of-tree drivers from GitHub. Hit or miss.
MediaTek Improving mt76 / mt7921 / mt7922 MT7921/MT7922 (WiFi 6/6E) work well in recent kernels. MediaTek has been actively upstreaming drivers. Older chips may need manual setup.
Tip: When buying a laptop for Linux, check that it uses Intel or Qualcomm WiFi. Many laptops let you swap the WiFi card (M.2 2230 slot) -- an Intel AX210 costs around $15 and solves WiFi problems permanently.

Installing WiFi Firmware

If your WiFi does not work out of the box, you likely need firmware. You will need a wired Ethernet connection or a working USB WiFi adapter to download packages.

Ubuntu / Linux Mint
# Install all common firmware packages
sudo apt update
sudo apt install linux-firmware

# For Broadcom specifically
sudo apt install bcmwl-kernel-source
# Or the open source option:
sudo apt install firmware-b43-installer

# Restart networking
sudo systemctl restart NetworkManager

Ubuntu's "Additional Drivers" tool in Software & Updates can detect and install WiFi drivers automatically.

Fedora
# Fedora ships most firmware by default, but Broadcom needs RPM Fusion
sudo dnf install \
  https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
  https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

# Install Broadcom firmware
sudo dnf install broadcom-wl kmod-wl

# Restart
sudo systemctl restart NetworkManager
Arch Linux
# Most firmware is in the linux-firmware package (usually pre-installed)
sudo pacman -S linux-firmware

# For Broadcom (choose one):
# Option 1: broadcom-wl (proprietary, works with most Broadcom chips)
sudo pacman -S broadcom-wl-dkms

# Option 2: b43-firmware from AUR (open source)
yay -S b43-firmware

# Reload modules
sudo modprobe -r b43 bcma wl
sudo modprobe wl   # or b43, depending on which you installed
Debian
# Enable non-free firmware repository
# In /etc/apt/sources.list, add "non-free-firmware" to your lines, e.g.:
# deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware

sudo apt update
sudo apt install firmware-linux-nonfree

# Broadcom
sudo apt install firmware-brcm80211
# Or for the wl driver:
sudo apt install broadcom-sta-dkms

sudo systemctl restart NetworkManager
Realtek out-of-tree drivers

Some Realtek USB WiFi adapters are not yet in the mainline kernel. You may need to build a driver from source:

# Common Realtek USB adapter drivers (example for RTL8812AU)
sudo apt install dkms git build-essential   # Ubuntu/Debian
git clone https://github.com/aircrack-ng/rtl8812au.git
cd rtl8812au
sudo make dkms_install

# For RTL8821CU, RTL8811CU
git clone https://github.com/morrownr/8821cu-20210916.git
cd 8821cu-20210916
sudo ./install-driver.sh
Warning: Out-of-tree drivers can break on kernel updates. DKMS helps by auto-recompiling, but these drivers may lag behind new kernel versions. Consider replacing the adapter with an Intel-based one for long-term reliability.

USB WiFi Adapters That Work Well

If your built-in WiFi is hopeless, a USB adapter with good Linux support is the easiest fix. Look for these chipsets:

Chipset Speed Driver Notes
MediaTek MT7612U AC1200 mt76 (in-kernel) Plug and play on most distros. Excellent choice.
Atheros AR9271 N150 ath9k_htc (in-kernel) Slower but rock-solid. Popular for network security work. Fully open source.
MediaTek MT7921AU AX1800 (WiFi 6) mt76 (in-kernel) WiFi 6 USB adapter with mainline support. Requires kernel 5.18+.
Realtek RTL8812BU AC1200 rtw88 (in-kernel, kernel 6.2+) Works in newer kernels. Older kernels need out-of-tree driver.
Tip: When shopping for USB WiFi adapters, search for the chipset, not the brand name. Many brands use different chipsets across hardware revisions. Verify the chipset before buying.

WiFi 6E and WiFi 7 Status

Support for the latest WiFi standards on Linux:

Setting your regulatory domain for 6 GHz
# Check current regulatory domain
iw reg get

# Set your country (required for 6 GHz access)
sudo iw reg set US   # Replace US with your country code

# Make it persistent - create /etc/modprobe.d/cfg80211.conf:
# options cfg80211 ieee80211_regdom=US

# Or install the CRDA package
sudo apt install crda   # Ubuntu/Debian
sudo pacman -S crda     # Arch