Hay dos formas de habilitar WiFi después de dormir. El primero es un parche común para Network Manager como puede ver que he hecho al enumerar el archivo:
Apague o habilite el ahorro de energía como se ilustra a continuación:
$ 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
- Edite el archivo de Network Manager que se muestra arriba.
- Cambie
WiFi.powersave
de 2
a 3
(Habilitar ahorro de energía).
- Si ya está configurado,
3
intente configurarlo en 2
(Desactivar ahorro de energía).
- Después de guardar el archivo ejecutado
sudo systemctl restart NetworkManager
El segundo es un systemd
script que recarga el módulo del kernel WiFi cuando se reanuda la suspensión. Viene de esta respuesta: las redes wifi disponibles no aparecen de repente :
Este script está escrito para iwlwifi`, que es el nombre común del controlador Intel. Si el tuyo es diferente, cambia ese nombre a continuación:
#!/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
NOTA: A veces, simplemente restablecer el administrador de red es todo lo que se necesita. En ese caso, descomente la línea anterior quitando #
. Luego comente las dos líneas que se encuentran arriba colocando #
al principio de esas dos líneas.
Deberá crear este script, llamado iwlwifi-reset
, con sudo
poderes y guardarlo en el directorio /lib/systemd/system-sleep
. Luego márquelo como ejecutable usando:
chmod a+x /lib/systemd/system-sleep/iwlwifi-reset