Pop!_OS WiFi Stops Showing Networks After Closing and Reopening Laptop

Issue

On Pop!_OS, WiFi works normally after a restart, but after closing and reopening the laptop it stops showing nearby wireless networks. Restarting the system brings WiFi back, but only until the problem happens again.

Probable Cause

This usually happens when the wireless driver does not resume cleanly after suspend or a lid-close event, even though the adapter is still detected by the system. The exact driver depends on the hardware, so the fix starts by identifying the adapter and reloading the correct kernel module.

Solution

Check which wireless adapter and driver your system is using:

lspci | grep -i network
lspci -k | grep -A 3 -i network
lsusb | grep -i wireless

Check whether the WiFi interface still exists and whether it is blocked:

ip link show
nmcli device status
rfkill list all

If the adapter is present but no networks appear, reload the WiFi driver. Replace YOUR_DRIVER with the kernel driver shown in the previous command:

 
sudo modprobe -r YOUR_DRIVER && sudo modprobe YOUR_DRIVER
 

If WiFi comes back after that, disable WiFi power saving:

echo -e "[connection]\nwifi.powersave = 2" | sudo tee /etc/NetworkManager/conf.d/wifi-powersave-off.conf
sudo systemctl restart NetworkManager
If the reload works every time, create a small systemd service to run it automatically at boot:
sudo nano /etc/systemd/system/fix-wifi-driver.service

Paste this:

[Unit]
Description=Reload WiFi driver on boot
After=network.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'modprobe -r YOUR_DRIVER && modprobe YOUR_DRIVER'
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Enable it:

sudo systemctl daemon-reload
sudo systemctl enable fix-wifi-driver.service
sudo systemctl start fix-wifi-driver.service

Example

In my case, the adapter was a MediaTek MT7922 and the driver was mt7921e. Reloading it with the command below immediately restored WiFi, which confirmed the problem was with the driver state after reopening the laptop.

sudo modprobe -r mt7921e && sudo modprobe mt7921e