When Ubuntu “cannot find Wi-Fi,” first pin down what is actually absent. The wireless adapter may be invisible to the kernel, visible but blocked, unmanaged by NetworkManager, unable to scan, or working normally while one access point stays hidden. Each symptom points to a different layer.
Quick diagnosis map
No Wi-Fi device in `nmcli`: check PCI/USB detection, kernel driver binding and firmware.
Device is unavailable or radio is off: inspect NetworkManager radio state and
rfkill.Device exists but no networks appear: request a scan, then inspect kernel and NetworkManager logs.
Other networks appear but yours does not: investigate router band/channel, regulatory domain, hidden SSID and signal—not the whole adapter.
Connected but no internet: Wi-Fi detection works; troubleshoot addressing, route, DNS, captive portal, router or ISP instead.
Before opening a terminal
Turn off Airplane Mode and turn Wi-Fi off and on once in Ubuntu Settings.
Check the laptop’s physical radio switch or function-key indicator. A hardware block cannot be cleared by software.
Reseat an external USB adapter and try another known-good port without an unpowered hub.
If the failure began after suspend, toggle Wi-Fi once; Ubuntu documents resume-related driver power-state failures.
Check whether another phone or laptop can see the same access point. That separates a router outage from this Ubuntu host.
1. Identify the exact failure state
nmcli general status
nmcli radio all
nmcli device statusHow to read the result
A row with type
wifiproves NetworkManager knows about a wireless interface.connectedmeans adapter detection is not the problem; test the connection path instead.disconnectedmeans the interface exists but has no active connection.unavailablecommonly means radio blocking, missing firmware/driver capability, or an interface NetworkManager cannot use.No Wi-Fi row at all moves the investigation down to hardware discovery and kernel binding.
2. Check whether Linux detects the adapter
lspci -nnk | grep -A3 -i 'network controller'
lsusb
sudo lshw -class networkHardware evidence to capture
PCI IDs such as
[8086:xxxx]identify the chipset more reliably than the laptop model.Kernel driver in useconfirms a module is bound;Kernel modulesmerely lists a possible module.USB adapters appear in
lsusb, not necessarily in the PCI listing.If neither bus sees the device, inspect BIOS/UEFI wireless settings, physical connection or hardware failure before changing Ubuntu packages.
Share text output with support rather than screenshots, but redact serial numbers and MAC addresses when appropriate.
3. Separate a blocked radio from a driver failure
rfkill list allSoft block versus hard block
Soft blocked: yesis a software policy state and can normally be cleared.Hard blocked: yesis reported by hardware/platform firmware and cannot be overridden byrfkill unblock.A stuck hard block may require the chassis switch/function key, UEFI setting, a complete power-off, or vendor platform support.
The Linux kernel rfkill interface intentionally distinguishes writable software state from read-only hardware state.
sudo rfkill unblock wifi
nmcli radio wifi on
rfkill list allRisk level: caution. Review the command before running it.
What this changes
The first command clears a software block for Wi-Fi devices; it does not bypass a physical switch.
nmcli radio wifi onasks NetworkManager to enable its Wi-Fi radio policy.The final read-back matters: never assume a state-changing command worked.
If the block immediately returns, inspect airplane-mode keys, desktop policy and logs instead of looping the command.
4. Confirm interface, driver and firmware state
ip -brief link
iw dev
sudo dmesg --level=err,warn | grep -Ei 'wifi|wlan|80211|firmware|iwl|ath|brcm|rtw|mt7' | tail -n 80Read the first meaningful kernel error
iw devshows interfaces registered with the Linux wireless stack; an empty result despite detected hardware points toward driver/firmware binding.Firmware load failures usually name the missing file. Record the exact filename and adapter ID.
A driver probe error, PCIe/USB transport error and regulatory refusal are different root causes.
dmesgmay require root on Ubuntu. Avoid publishing full logs without checking identifiers.Do not infer an Intel
iwlwifisolution for a Realtek, Broadcom, MediaTek or Qualcomm chipset.
5. Check NetworkManager ownership and state
systemctl is-active NetworkManager
nmcli -f GENERAL.DEVICE,GENERAL.TYPE,GENERAL.STATE,GENERAL.REASON device showNetworkManager clues
Ubuntu Desktop normally uses NetworkManager, while server or custom systems may use another renderer.
unmanagedcan be intentional configuration; restarting the service does not change ownership policy.The numeric state reason narrows failures such as firmware missing, radio disabled or supplicant unavailable.
Do not run competing network managers against the same interface.
sudo systemctl restart NetworkManager
nmcli device statusRisk level: caution. Review the command before running it.
Use a restart as a controlled test
Restarting NetworkManager interrupts active network connections, VPNs and remote administration.
Do not run it over the only SSH path unless you have console access.
A successful restart may clear transient userspace state, but recurring failure still needs logs and a root cause.
If the service is disabled or absent by design, inspect the system’s Netplan renderer before enabling it.
6. Request and inspect a fresh scan
nmcli device wifi rescan
nmcli --fields IN-USE,SSID,BSSID,CHAN,FREQ,RATE,SIGNAL,SECURITY device wifi list --rescan yesScan interpretation
An empty scan with a healthy interface suggests radio, driver, firmware, regulatory or environmental problems.
If many networks appear, the adapter and scan path work; focus on the missing access point.
An empty SSID can be a hidden network; BSSID and channel may still appear.
Signal is a relative indicator, not throughput. Move near the router for a controlled test.
Repeated active scans can be rate-limited or temporarily unavailable while associating.
Only one Wi-Fi network is missing
Confirm the router actually broadcasts the SSID and is not using a schedule, client isolation rule or exhausted client limit.
Temporarily test conservative 2.4 GHz settings and a non-DFS 5 GHz channel. Older adapters may not support 6 GHz or every channel width.
Check country/regulatory configuration; unsupported channels may not be scanned or used.
For a hidden network, add it deliberately by exact case-sensitive SSID and security mode rather than treating it as adapter failure.
Update router firmware through the vendor’s authenticated interface and preserve a configuration backup.
7. Inspect NetworkManager and kernel logs
journalctl -b -u NetworkManager --no-pager | tail -n 120
journalctl -b -k --no-pager | grep -Ei 'wifi|wlan|80211|firmware|iwl|ath|brcm|rtw|mt7' | tail -n 120Log-reading habits that save time
-blimits the view to the current boot, avoiding unrelated historical errors.Match timestamps to the moment Wi-Fi was enabled or a scan was requested.
Find the earliest concrete firmware, probe, authentication or state-change failure; later messages may be consequences.
Logs can contain SSIDs, BSSIDs, hostnames and addresses. Redact before sharing publicly.
8. Update supported Ubuntu components
sudo apt update
sudo apt full-upgradeRisk level: caution. Review the command before running it.
Why updates can matter
Wireless support spans the kernel, firmware package, regulatory database, NetworkManager and wpa_supplicant.
Review the transaction before confirming and reboot when a new kernel/firmware requires it.
If
apt updatereports repository or signature errors, repair those rather than trusting a partial upgrade plan.For proprietary drivers, use Ubuntu’s supported Additional Drivers workflow when the exact hardware requires it.
Keep an older known-good kernel available until the updated system is validated.
When the problem started after a kernel update
Boot one previously installed Ubuntu kernel once from GRUB Advanced Options as a diagnostic comparison.
If only the new kernel fails, capture adapter ID, both kernel versions, firmware messages and logs for a bug report.
Do not permanently freeze security updates as the first response. Use the comparison to establish a regression and seek the supported fix.
Out-of-tree vendor drivers may need rebuilding for the new kernel; inspect DKMS status and package logs before reinstalling anything.
Avoid these high-risk “fixes”
Do not paste a module name from another laptop’s forum thread.
Do not download unsigned kernel modules or firmware from random file-sharing sites.
Do not blacklist the current driver until the adapter ID and replacement driver are proven.
Do not delete all saved connections when the adapter itself is absent.
Do not disable Secure Boot blindly; first determine whether a third-party module is unsigned and whether it is actually required.
Do not modify regulatory settings to transmit on channels illegal in your location.
Do not reload a Wi-Fi module on a remote machine without an alternate management path.
A clean escalation bundle
printf '%s\n' '--- release/kernel ---'
lsb_release -ds
uname -r
printf '%s\n' '--- NetworkManager/radio ---'
nmcli device status
nmcli radio all
rfkill list allShare evidence without oversharing
Add the PCI/USB adapter ID and
Kernel driver in usefrom the earlier hardware step.Describe whether the failure affects every network, one SSID, resume, one kernel or every boot.
State the last known-good kernel/Ubuntu version and what changed.
Redact SSIDs, MAC addresses, serials, public IPs and enterprise identities where necessary.
Do not collect or publish saved Wi-Fi secrets.
Primary references
Ubuntu’s wireless network troubleshooter provides the official symptom-first diagnostic sequence.
Ubuntu’s initial wireless checks use Wi-Fi settings and
nmcli deviceto establish state.Ubuntu documents wireless failure after resume and recommends a radio toggle before broader changes.
The Linux kernel rfkill documentation defines hard and soft radio blocks.
Linux Wireless maintains the official 802.11 subsystem documentation.
Comments and corrections