Ubuntu Wi-Fi Not Working: Fixes for 26.04 and 24.04 LTS

Quick fix

Check airplane mode and rfkill, restart NetworkManager, then see whether Ubuntu offers a driver:

rfkill unblock wifi
sudo systemctl restart NetworkManager
nmcli radio wifi on
nmcli device status
ubuntu-drivers list

If nmcli device status shows no wifi device, the card has no driver. On Ubuntu that usually means a Broadcom card (install bcmwl-kernel-source), missing firmware, or a card newer than the kernel. This page covers Ubuntu specifics; the general Linux Wi-Fi guide covers chipset-by-chipset driver details.

Identify your problem

What you seeGo to
"No Wi-Fi Adapter Found" in SettingsNo adapter
Wi-Fi toggle off and won't stay onAirplane mode and rfkill
Networks visible, connection fails or asks for password againCan't connect
Connected, but pages don't loadConnected but no internet
Drops every few minutes or after suspendDrops and slow Wi-Fi
Ubuntu Server, no desktopNetplan on Ubuntu Server

Step 1: Get some internet first

Most fixes need packages. If Wi-Fi is your only connection, use one of these temporarily:

  • USB tethering from a phone. Android: Settings → Network → Hotspot & tethering → USB tethering. iPhone: Personal Hotspot over USB. Ubuntu sees it as a wired connection with no driver needed.
  • Ethernet, even briefly, or a USB Ethernet adapter.
  • The Ubuntu installation USB as a package source: plug it in and enable "Installable from CD-ROM/DVD" under Software & Updates → Ubuntu Software. It contains the Broadcom driver and other common packages.

Step 2: "No Wi-Fi Adapter Found"

Find the card and see whether a driver is bound to it:

lspci -nnk | grep -A3 -i -E 'network|wireless'
lsusb
sudo dmesg | grep -i -E 'iwlwifi|rtw|ath1|mt79|brcm|b43|wl|firmware' | tail -n 20

Example output for a Broadcom card with no driver:

02:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4360 802.11ac Dual Band Wireless Network Adapter [14e4:43a0] (rev 03)
	Subsystem: Apple Inc. Device [106b:0117]
	Kernel modules: bcma, wl

No Kernel driver in use: line means nothing claimed the card. What to do depends on the vendor:

Broadcom: install bcmwl-kernel-source

Many Broadcom chips (BCM43xx in older Dell, HP and MacBook models) need Broadcom's proprietary wl driver. Ubuntu packages it:

sudo apt update
sudo apt install bcmwl-kernel-source
sudo modprobe wl

Or use Software & Updates → Additional Drivers, which lists it as "Broadcom 802.11 Linux STA wireless driver". The driver is built with DKMS, so with Secure Boot enabled you will be asked to set a password and enroll a key on the blue MOK screen at the next boot, the same process as for NVIDIA drivers on Ubuntu. Some Broadcom chips work with the open b43 driver instead (sudo apt install firmware-b43-installer); check which one your PCI ID needs on the general guide.

Offline: with the installation USB mounted, bcmwl-kernel-source and its dkms dependency install from it as described in Step 1.

Intel, Realtek, MediaTek, Qualcomm: firmware and kernel

These have in-kernel drivers (iwlwifi, rtw88/rtw89, mt7921e/mt7925e, ath11k/ath12k) but need firmware files. A message like failed to load iwlwifi-...ucode or Direct firmware load ... failed with error -2 means the firmware is missing or too old:

sudo apt install --reinstall linux-firmware
sudo reboot

If the card is newer than your Ubuntu release, the driver may not exist yet in your kernel. Ubuntu 26.04 ships Linux 7.0. On 24.04, the hardware enablement kernel brings newer drivers:

sudo apt install --install-recommends linux-generic-hwe-24.04
sudo reboot

Confirm the driver loaded

nmcli device status
iw dev

Example output when the fix worked:

DEVICE   TYPE      STATE         CONNECTION
wlp2s0   wifi      disconnected  --
enp3s0   ethernet  unavailable   --

A wifi device in disconnected state means the driver works and you can now pick a network. unavailable for Wi-Fi usually means it is still blocked by rfkill.

USB Wi-Fi dongles

Check lsusb for the chip ID. Dongles with Realtek RTL88x2BU/RTL8821CU and MediaTek MT7612U/MT7921AU chips are supported by recent kernels. Many cheap older Realtek dongles need out-of-tree DKMS drivers from third-party repositories, which break on kernel updates. If you can choose, buy a dongle with an in-kernel driver.

Airplane mode and rfkill

rfkill list

Soft blocked: yes means software disabled it: turn airplane mode off in the quick settings menu or run rfkill unblock wifi. Hard blocked: yes is a physical switch, an Fn key or a firmware setting. On some Lenovo and ASUS laptops, a vendor module reports a false hard block; if the block disappears after sudo modprobe -r ideapad_laptop (Lenovo) or asus_nb_wmi (ASUS), blacklist that module in /etc/modprobe.d/.

Networks visible but can't connect

Delete the saved profile and connect fresh, from a terminal so you see the real error:

nmcli connection show
nmcli connection delete "MyNetwork"
nmcli device wifi list
nmcli device wifi connect "MyNetwork" --ask

Example error and what it means:

Error: Connection activation failed: Secrets were required, but not provided.

That is a wrong password or a security mismatch. Other causes:

  • WPA3-only networks fail with some older cards and drivers. Set the router to WPA2/WPA3 mixed mode to test.
  • Enterprise networks (eduroam, office 802.1X) need the CA certificate and the right EAP method in the connection's Security tab; the network's IT pages list the settings.
  • MAC address filtering on the router: NetworkManager uses a random MAC while scanning, but your real MAC to connect by default. If you enabled per-connection randomization, the router may reject the new address.
  • Wrong regulatory domain: channels 12-13 (2.4 GHz) or some 5 GHz channels are invisible if the country is set wrong. Check with iw reg get and set it with sudo iw reg set DE (your two-letter country code).

Connected, but no internet

ip route
ping -c3 1.1.1.1
ping -c3 ubuntu.com
resolvectl status

If ping 1.1.1.1 works but ping ubuntu.com fails with Temporary failure in name resolution, DNS is broken, not Wi-Fi; see Temporary failure in name resolution. If there is no default via line in ip route, DHCP didn't complete; reconnect and check the router. The Linux networking guide explains these tools in detail.

Wi-Fi drops, disconnects or is slow

Disable Wi-Fi power saving

Ubuntu enables Wi-Fi power saving by default. On some Intel and Realtek cards it causes drops and high latency. Turn it off:

sudo tee /etc/NetworkManager/conf.d/wifi-powersave-off.conf <<'EOF'
[connection]
wifi.powersave = 2
EOF
sudo systemctl restart NetworkManager

Value 2 disables power saving, 3 enables it. Check the result with iw dev wlan0 get power_save (use your interface name from nmcli device).

Driver options for common chips

  • Intel (iwlwifi): if drops happen under load, try options iwlwifi power_save=0 in /etc/modprobe.d/iwlwifi.conf.
  • Realtek (rtw88/rtw89): ASPM power states cause many drops; options rtw89_pci disable_aspm_l1=y disable_aspm_l1ss=y (for rtw88 cards: options rtw88_pci disable_aspm=y) in /etc/modprobe.d/rtw.conf often helps.

Reboot after adding module options, and remove them again if they don't help.

Wi-Fi gone after suspend

sudo systemctl restart NetworkManager
# if the device is missing entirely, reload its driver, e.g. for Intel
sudo modprobe -r iwlmvm iwlwifi && sudo modprobe iwlwifi

If this happens every time, update the kernel first; resume bugs are frequently fixed in newer kernels and firmware. If Bluetooth on the same card also disappears, see the Ubuntu Bluetooth fix.

Wi-Fi works but is slow

Check the link rate and signal with iw dev wlp2s0 link (use your interface name). A signal weaker than about -70 dBm or a low tx bitrate points to range or interference rather than Linux. If the card connects on 2.4 GHz while a 5 GHz network is available, give the bands different names on the router, or lock the connection to a band: nmcli connection modify "MyNetwork" 802-11-wireless.band a (bg for 2.4 GHz).

Ubuntu Server: Wi-Fi with Netplan

Ubuntu Server configures networking with Netplan and systemd-networkd, not NetworkManager. Wi-Fi needs wpasupplicant installed (it is on the server ISO). Create or edit a file in /etc/netplan/:

sudo nano /etc/netplan/60-wifi.yaml
network:
  version: 2
  wifis:
    wlan0:
      dhcp4: true
      access-points:
        "MyNetwork":
          password: "my-wifi-password"
sudo chmod 600 /etc/netplan/60-wifi.yaml
sudo netplan try
sudo netplan apply

netplan try rolls back automatically after 120 seconds if you lose access, which is useful over SSH. Use your interface name from ip link instead of wlan0. The file must be readable only by root because it contains the password. If you want NetworkManager on a server (for nmcli), add renderer: NetworkManager under network: and install network-manager.

Still not working?

  1. Boot a live USB of the newest Ubuntu release. If Wi-Fi works there, a newer kernel (HWE on 24.04, or upgrading to 26.04) fixes your installed system.
  2. Check journalctl -b -u NetworkManager and sudo dmesg right after a failed connection attempt.
  3. Report the issue with ubuntu-bug linux (driver) or ubuntu-bug network-manager (connection handling).

Ubuntu's own reference is help.ubuntu.com: wireless networking. For non-network Ubuntu problems, use the Ubuntu troubleshooting hub.

Frequently asked questions

Why does Ubuntu say No Wi-Fi Adapter Found?

The kernel has no working driver for your wireless card. Usually the card needs proprietary drivers (Broadcom), missing firmware, or a newer kernel than the one installed.

How do I install Wi-Fi drivers on Ubuntu without internet?

Connect by USB tethering from a phone or Ethernet, or use the installation USB as a package source. Software & Updates → Additional Drivers can then install the driver.

Why does Ubuntu Wi-Fi keep disconnecting?

Common causes are Wi-Fi power saving, a weak 2.4/5 GHz roaming setup, or driver bugs. Disable power saving in NetworkManager and update the kernel and linux-firmware.

How do I connect to Wi-Fi from the terminal on Ubuntu?

On desktops, run nmcli device wifi list and nmcli device wifi connect SSID --ask. On Ubuntu Server, configure the network in /etc/netplan/ and run sudo netplan apply.

Spotted a mistake or a command that no longer works? Send a correction — pages are re-checked when reports come in.