How to know Wi-Fi adapter driver installed in Raspberry Pi 5 or not?

Here’s a reliable way to tell whether a Wi-Fi adapter has a driver installed and loaded on a Raspberry Pi 5 (works for both the built-in Wi-Fi and USB Wi-Fi dongles). You’re basically checking 4 things: device detected → driver bound → firmware loaded → wlan interface exists.
1) Do you see a Wi-Fi interface?
ip link
Look for wlan0 (or wlan1).
If you see it: the driver is almost certainly working.
More detailed:
iw dev
If it lists an interface, the wireless stack + driver is active.
2) Is the adapter detected by the system?
If it’s a USB Wi-Fi dongle
lsusb
You should see something like “Wireless Adapter”, Realtek/MediaTek, etc.
If it’s internal (or PCIe-based)
lspci 2>/dev/null | grep -i -E "network|wireless"
(Not all Pi OS images include pciutils by default; if command missing:)
sudo apt update && sudo apt install -y pciutils
3) Is a driver actually loaded?
List loaded kernel modules related to Wi-Fi:
lsmod | grep -E "brcm|rtl|mt7|mt76|ath|cfg80211|mac80211"
Common meanings:
cfg80211/mac80211= Linux Wi-Fi framework is present (good sign)brcmfmac= Broadcom/Cypress-style Wi-Fi driver (often for onboard Wi-Fi)rtl8xxxu,8821cu,88XXau= common Realtek USB Wi-Fi driversmt76*= MediaTek Wi-Fi driversath9k_htcetc. = Atheros USB Wi-Fi drivers
4) Did firmware load successfully? (This is the #1 failure cause)
Check kernel logs:
dmesg | grep -i -E "wlan|wifi|firmware|brcm|rtl|mt76|ath"
What you want to see:
- messages like “firmware loaded”, “registered new interface”, etc.
Red flags:
failed to load firmwareDirect firmware load for ... failed with error -2
If you see firmware load errors, try:
sudo apt update
sudo apt install --reinstall -y firmware-brcm80211
sudo reboot
(That package is the common fix for Broadcom-type firmware on Debian/Raspberry Pi OS.)
5) Check whether the driver is bound to the device (USB dongle)
Watch live plug-in logs:
sudo dmesg -w
Unplug and replug the USB Wi-Fi dongle. You should see the chipset detected and a driver attached.
6) Quick “one-shot” summary command
echo "=== interfaces ==="; iw dev || true
echo "=== usb ==="; lsusb | grep -i -E "wireless|wifi|802\.11|realtek|mediatek|ralink|atheros|broadcom" || true
echo "=== modules ==="; lsmod | grep -E "brcm|rtl|mt76|ath|cfg80211|mac80211" || true
echo "=== dmesg ==="; dmesg | tail -n 80 | grep -i -E "wlan|wifi|firmware|brcm|rtl|mt76|ath" || true
If it still doesn’t show up
- Make sure Wi-Fi isn’t blocked:
rfkill list
sudo rfkill unblock all
Confirm you’re not in airplane-mode / disabled in config.
Some Realtek dongles require out-of-tree drivers (you’ll see a device in
lsusbbut nowlan0and no matching module inlsmod).
If you paste the output of these two commands, I can tell you exactly what’s missing and which driver/firmware you need:
lsusb
dmesg | tail -n 120



