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. |
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
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. |
WiFi 6E and WiFi 7 Status
Support for the latest WiFi standards on Linux:
- WiFi 6 (802.11ax) -- Fully supported. Intel AX200/AX201/AX210, MediaTek MT7921, and Qualcomm WCN685x all work well.
- WiFi 6E (6 GHz band) -- Supported with Intel AX210/AX211 and MediaTek MT7922 on kernel 5.18+. Regulatory domain must be set correctly for 6 GHz access.
- WiFi 7 (802.11be) -- Early support landing. Intel BE200 has initial support in kernel 6.5+. Qualcomm WCN7850 supported via ath12k. Full WiFi 7 features (MLO, 320 MHz channels) are still being upstreamed.
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