Fix: Wi-Fi Not Working After Arch Linux Installation (2025 Guide)
Fresh Arch install, first boot, no Wi-Fi. Before you touch any service, find out what silicon you are actually dealing with — because on Arch the fix is almost never "reinstall", it is "load the right driver for this exact card." This flow starts at the hardware and works upward, and it works on any laptop once you know the card's name.
Step one: name the hardware
lspci -k | grep -A 3 -i network
lsusb # if it is a USB dongle
The -k flag is the whole trick: it shows which kernel driver, if any, is bound to the card. On a healthy Intel AX211 you will see Kernel driver in use: iwlwifi. No driver line means the module is not loaded at all, which tells you exactly where to go next. No lspci output at all? Check the BIOS for a disabled wireless device, and look for a physical radio switch or an Fn-key combo.
Match firmware to the chipset
Most cards come alive once linux-firmware is installed and the module is pulled in:
sudo pacman -S linux-firmware
sudo modprobe iwlwifi
Vendor notes, learned the hard way:
- Intel AX/BE series:
iwlwifiis in-kernel and takes its firmware fromlinux-firmware. If dmesg showsfailed to load iwlwifi-*.ucode, the firmware package is missing or stale. - Broadcom on older MacBooks and some Dell or HP machines: the in-tree driver rarely wins — use
broadcom-wl-dkms, installbase-develandlinux-headersso DKMS can build it, thenmodprobe wl. - Realtek RTL8821CE and cousins: AUR territory —
yay -S rtl8821ce-dkms-git, orrtl88xxau-aircrack-dkms-gitfor the USB sticks. - MediaTek MT7921/MT7922: driver is in-kernel; if the card vanishes after a warm reboot, do a full power-off cold boot — a known quirk on some Lenovo models.
Confirm the module took:
sudo dmesg | grep -iE 'iwlwifi|mt79|brcm|firmware'
Clear the radio block
A detected card with a loaded driver can still be muted. rfkill list shows soft and hard blocks; clear the soft one and never think about it again:
rfkill unblock wifi
Bring the link up with iwd
Before any desktop service gets involved, prove the chain works with the leanest possible daemon — iwd, which speaks 802.11 directly:
sudo systemctl enable --now iwd
iwctl
[iwd]# station wlan0 scan
[iwd]# station wlan0 get-networks
[iwd]# station wlan0 connect "YourSSID"
If that connects, the hardware story is finished; the original problem was missing drivers or firmware, not your networking stack.
Then let NetworkManager run it day to day
For a desktop, install networkmanager, enable it, and connect once — from now on it remembers:
sudo systemctl enable --now NetworkManager
nmcli dev wifi connect "YourSSID" password "yourpassword"
nmcli connection modify "YourSSID" connection.autoconnect yes
One caution: iwd and NetworkManager can both try to own the Wi-Fi; on a simple machine, run one, not both. And if networks are visible but 5 GHz is missing, set your regulatory domain with sudo iw reg set PK.
Getting one interface online is a small engineering win, and it is worth remembering what a connection can mean elsewhere: in Gaza, a working line is how families learn who is still alive, and they keep repairing theirs with far less than an Arch wiki to help. May their signal hold.
And when you want to be offline on purpose, that is our department too: at HTG Travels we know the guesthouses in Kumrat and Utror where the only bars are chocolate and the chai arrives faster than the 4G. Tell us the dates; we will handle everything that needs a signal before you leave.




