Wi‑Fi Firmware and Drivers on Ubuntu
This article focuses on common Wi‑Fi chipsets and their firmware on Ubuntu. It guides detection, installing firmware packages, modprobe usage, and practical troubleshooting commands.
1 Detect wireless hardware
Section titled “1 Detect wireless hardware”lspci -nnk | grep -i network -A3lsusbiw devLook for Intel Corporation Wireless or Broadcom strings.
2 Intel (iwlwifi) firmware
Section titled “2 Intel (iwlwifi) firmware”Install the Intel firmware package and reload the module:
sudo apt updatesudo apt install -y linux-firmware-iwlwifisudo modprobe -r iwlwifi && sudo modprobe iwlwifiCheck kernel logs for firmware loading messages:
dmesg | grep -i iwljournalctl -k | tail -n 50If the firmware file is missing, dmesg shows the exact file name (e.g., iwlwifi-ty-a0-gf-a0-59.ucode), and you can obtain it from the linux-firmware package or vendor sources.
3 Broadcom
Section titled “3 Broadcom”Broadcom chips require different drivers depending on model. Common packages:
bcmwl-kernel-source— Broadcom STA (proprietary) for many chipsfirmware-brcm80211or inlinux-firmware— for some brcm chips
Install STA driver (if recommended):
sudo apt updatesudo apt install -y bcmwl-kernel-sourcesudo modprobe -r b43 bcma wl && sudo modprobe wlCheck dmesg for firmware messages if the interface fails to appear.
4 Enabling and connecting
Section titled “4 Enabling and connecting”With NetworkManager:
nmcli device statusnmcli device wifi listnmcli device wifi connect "SSID" password "yourpass"With wpa_supplicant (manual): create /etc/wpa_supplicant/wpa_supplicant.conf then:
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.confsudo dhclient wlan05 Troubleshooting checklist
Section titled “5 Troubleshooting checklist”- Check rfkill:
rfkill list all— unblock withsudo rfkill unblock all. - Kernel messages:
dmesg | grep -i firmware. - Interface state:
ip link,iw dev,nmcli device status. - Capture logs:
journalctl -u NetworkManager -n 200. - Try a live kernel (booted from live USB) to exclude current installation issues.
- If module mismatch after kernel update, ensure
linux-headers-$(uname -r)is installed and re-run DKMS builds.