WiFi все еще спит, когда возобновить
Когда я ставлю свой рабочий стол в Hybernate, а затем положить его обратно на Wi-Fi ушел. Это похоже на проблему, описанную здесь. Но чтобы это исправить, нужно запустить команду sudo nmcli nm sleep false
, Но nm
вещь больше не работает. Он был удален из nmcli (опишите здесь). Так что вы могли бы сделать, чтобы это исправить?
Я использую Ubuntu GNOME 4.2
4 ответа
Пожалуйста, откройте терминал и сделайте:
gksudo gedit /etc/systemd/system/wifi-resume.service
Используйте nano, kate или leafpad, если у вас нет текстового редактора gedit. Новый пустой файл откроется. Добавьте следующее:
[Unit]
Description=Local system resume actions
After=suspend.target
[Service]
Type=oneshot
ExecStart=/bin/systemctl restart network-manager.service
[Install]
WantedBy=suspend.target
Дважды внимательно прочитайте, сохраните и закройте текстовый редактор.
Теперь сделайте:
sudo chmod +x /etc/systemd/system/wifi-resume.service
И следующее:
sudo systemctl enable wifi-resume.service
Я предлагаю вам перезагрузиться. Протестируйте и дайте нам услышать ваш отчет.
У меня сработало
#!/bin/sh
case $1 in
resume|thaw)
nmcli radio wifi off && nmcli radio wifi on;;
esac
сопровождаемый sudo chmod +x /etc/pm/sleep.d/10_resume_wifi
Также пользователь может попробовать, если первое не удается.
#!/bin/sh
case $1 in
post|resume|thaw)
nmcli radio wifi off && nmcli radio wifi on;;
esac
Другое решение, похожее на NMCli Tristan T, на которое ссылается этот вопрос (без NM, что больше не является вариантом, как упомянул Тристан):
nmcli radio wifi on
Я использовал ответ Owais Lone на аналогичный вопрос, чтобы включить автоматическое возобновление работы Wi-Fi после приостановки для моего ноутбука (Dell Precision) 16.04 LTS.
Я создал /etc/pm/sleep.d/10_resume_wifi
#!/bin/sh
case "${1}" in
resume|thaw)
nmcli radio wifi off && nmcli radio wifi on;;
esac
с последующим sudo chmod +x /etc/pm/sleep.d/10_resume_wifi
сделать файл исполняемым.
Если вам интересно узнать о двойных точках с запятой или об одиночной закрывающей скобке, как я, см. http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_07_03.html - так работает синтаксис кейса,
Принятый ответ в этой теме не сработал для меня, не сработало ни одно из альтернативных решений. Мне пришлось добавить следующий служебный файл как
/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
а затем включить с помощью
sudo systemctl enable wifi-resume.service
В качестве резервной копии при тестировании вышеизложенного я создал скрипт bash со следующим
#!/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
И привязал его к пользовательскому сочетанию клавиш.