i've recently been having problems with my WiFi connection after my laptop comes out of sleep mode. After resuming, the NetworkManager looks like the connection is OK, but nothing on the network is accessible. I did a little searching and found out there are some known problems with some WiFi drivers not dealing with the resume properly. If you unload the kernel module before suspending and load it again after resuming, everything works fine.
lspci to find out the name of the WiFi adapter:
Intel Corporation Centrino Advanced-N 6205 (Taylor Peak - rev 96)
Then I used
lsmod | grep wifi to figure out which module controls
the WiFi adapter. It ended up being
iwldvm for my Lenovo Thnkpad Carbon X1 Gen 1.
You can see all the related modules below:
mark@localhost:~$ lsmod | grep iwldvm iwldvm 274432 0 iwlwifi 323584 1 iwldvm mac80211 974848 1 iwldvm cfg80211 835584 3 iwldvm,iwlwifi,mac80211
To automate the unload/load of the kernel module, create a file named
Add the following to the file:
#!/bin/sh # /lib/systemd/system-sleep/iwldvm.sh # Unloads and loads wifi driver before and after sleep. # This prevents the problem where the network is not # available after resume. case $1 in pre) modprobe -r iwldvm ;; post) modprobe iwldvm ;; esac
sudo chmod 755 /lib/systemd/system-sleep/iwldvm.sh
This was on Fedora 31 with kernel 5.3.16.