wifi still sleeping when resume

When I put my desktop in hybernate and then put it back on the wifi is gone. It is simular to the problem described here. But to fix it you have to run a command sudo nmcli nm sleep false. But the nm thing is not working anymore. It has been removed from nmcli (Describe here). So what could you do to fix it?

I am using ubuntu gnome 4.2

Here is Solutions:

We have many solutions to this problem, But we recommend you to use the first solution because it is tested & true solution that will 100% work for you.

Solution 1

Please open a terminal and do:

gksudo gedit  /etc/systemd/system/wifi-resume.service

Use nano or kate or leafpad if you don’t have the text editor gedit. A new empty file will open. Add the following:

[Unit]
Description=Local system resume actions
After=suspend.target

[Service]
Type=oneshot
ExecStart=/bin/systemctl restart network-manager.service

[Install]
WantedBy=suspend.target

Proofread carefully twice, save and close the text editor.

Now do:

sudo chmod +x  /etc/systemd/system/wifi-resume.service

And next:

sudo systemctl enable wifi-resume.service

I suggest you reboot. Test and let us hear your report.

Solution 2

Another solution similar to the nmcli one Tristan T referenced in the question (without nm, which is no longer an option as Tristan mentioned):

nmcli radio wifi on

I used Owais Lone‘s answer to a similar question to enable automatic resume of wifi after suspension for my laptop (a Dell Precision) on 16.04 LTS.

I created /etc/pm/sleep.d/10_resume_wifi

#!/bin/sh

case "${1}" in
    resume|thaw)
      nmcli radio wifi off && nmcli radio wifi on;;
esac

followed by a sudo chmod +x /etc/pm/sleep.d/10_resume_wifi to make the file executable.

In case you’re wondering about the double semicolons or the solitary close parenthesis like I was, see http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_03.html — that’s just how the case syntax works.

Solution 3

For me worked

#!/bin/sh

case $1 in
    resume|thaw)
      nmcli radio wifi off && nmcli radio wifi on;;
esac

followed by a sudo chmod +x /etc/pm/sleep.d/10_resume_wifi

Also user can try if the first fails.

#!/bin/sh

case $1 in
    post|resume|thaw)
      nmcli radio wifi off && nmcli radio wifi on;;
esac 

Solution 4

The accepted answer in this thread did not work for me, not did any of the alternate solutions. I had to add the following service file as /etc/systemd/system/wifi-resume.service

[Unit]
Description=Restart Network Manager at resume (after suspend)
After=suspend.target
After=hibernate.target
After=hybrid-sleep.target
[Service]
Type=oneshot
# note: the following also unloads iwlwifi
ExecStart=/usr/sbin/modprobe -r iwldvm
# note: the following also loads iwldvm
ExecStart=/usr/sbin/modprobe iwlwifi
[Install]
WantedBy=suspend.target
WantedBy=hibernate.target
WantedBy=hybrid-sleep.target

and then enable with sudo systemctl enable wifi-resume.service

As a backup while testing the above, I created a bash script with the following

#!/bin/bash
echo {MY_PASSWORD} | sudo -S modprobe -r iwldvm
echo {MY_PASSWORD} | sudo -S modprobe iwlwifi
echo {MY_PASSWORD} | sudo -S service network-manager restart
notify-send "Wifi: reloaded."
exit

And tied it to a custom keyboard shortcut.

Note: Use and implement solution 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply