Как предотвратить сон wifi после приостановки
Каждый раз, когда я открываю крышку ноутбука, мне приходится ждать несколько секунд, пока Wi-Fi не подключится. Я помню, что в Windows он уже был подключен. Мне нужен способ предотвратить отключение Wi-Fi при приостановке.
Самый близкий ответ, который я нашел, был /questions/644403/otklyuchit-upravlenie-pitaniem-wi-fi/644420#644420 но он не работал. Я также попробовал iwconfig wlan0 poweroff
в ответ, но это не сработало даже до перезагрузки.
3 ответа
Есть два способа включения WiFi после сна. Первый - это обычный патч для Network Manager, как вы можете видеть из списка файлов:
Выключите или включите энергосбережение, как показано ниже:
$ cat /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
[connection]
wifi.powersave = 3
# Slow sleep fix: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670041
#wifi.powersave = 2
- Отредактируйте файл Network Manager, показанный выше.
- + Изменить
WiFi.powersave
от2
в3
(Включить энергосбережение). - Если он уже установлен
3
попробуйте установить его на2
(Отключить энергосбережение). - После сохранения файла запустите
sudo systemctl restart NetworkManager
Второй является systemd
скрипт, который перезагружает модуль ядра WiFi при выходе из режима ожидания. Это вытекает из этого ответа: Wi-Fi доступные сети не появляются внезапно:
Этот скрипт написан для iwlwifi`, который является общим названием драйвера Intel. Если у вас другое имя, измените это имя ниже:
#!/bin/sh
# NAME: /lib/systemd/system-sleep/iwlwifi-reset
# DESC: Resets Intel WiFi which can be flakey after a long suspend.
# DATE: Apr 1, 2017. Modified August 30, 2017.
MYNAME=$0
restart_wifi() {
/usr/bin/logger $MYNAME 'restart_wifi BEGIN'
/sbin/modprobe -v -r iwldvm # This removes iwlwifi too
/sbin/modprobe -v iwlwifi # This starts iwldvm too
# systemctl restart NetworkManager.service
/usr/bin/logger 'systemctl restart NetworkManager.service (SUPPRESSED)'
/usr/bin/logger $MYNAME 'restart_wifi END'
}
/usr/bin/logger $MYNAME 'case=[' ${1}' ]'
case "${1}/${2}" in
hibernate|suspend|pre*)
;;
resume|thaw|post*)
restart_wifi;;
esac
ПРИМЕЧАНИЕ. Иногда достаточно просто сбросить настройки сетевого менеджера. В этом случае откомментируйте строку выше, удалив #
, Затем закомментируйте две строки над ним, поставив #
в начале этих двух строк.
Вам нужно будет создать этот скрипт, называемый iwlwifi-reset
, с sudo
полномочия и сохранить его в каталог /lib/systemd/system-sleep
, Затем пометьте его исполняемым, используя:
chmod a+x /lib/systemd/system-sleep/iwlwifi-reset
Я думаю, что это связано с systemd. Вы можете сделать скрипт, который запускает устройство Wi-Fi после приостановки. Просто попробуйте сначала сделать это вручную.
Сначала создайте новый скрипт и сделайте его исполняемым.
sudo touch /usr/lib/pm-utils/sleep.d/wakewifi
sudo chmod a+x /usr/lib/pm-utils/sleep.d/wakewifi
Затем отредактируйте скрипт
sudo nano /usr/lib/pm-utils/sleep.d/wakewifi
и заставить его выглядеть примерно так
#!/bin/sh
case "$1" in
resume)
nmcli radio wifi on
esac
чтобы убедиться в правильности команды nmcli radio wifi on, попробуйте перейти в спящий режим, запустить компьютер и выполнить
sudo nmcli radio wifi on
если ваш компьютер затем подключится к правильному Wi-Fi, то это может быть дополнительным решением для вас. Ваш компьютер должен автоматически подключиться. к вашей сохраненной точке доступа Wi-Fi.