Il existe deux façons d'activer le WiFi après le sommeil. Le premier est un correctif commun à Network Manager, comme vous pouvez le constater en répertoriant le fichier:
Désactivez ou activez les économies d'énergie comme illustré ci-dessous:
$ 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
- Modifiez le fichier Network Manager illustré ci-dessus.
- Passez
WiFi.powersavede 2à 3(Activer l'économie d'énergie).
- S'il est déjà configuré pour
3essayer de le régler sur 2(Désactiver l'économie d'énergie).
- Après avoir enregistré le fichier exécuté
sudo systemctl restart NetworkManager
Le second est un systemdscript qui recharge le module du noyau WiFi lors de la reprise de la suspension. Cela vient de cette réponse: les réseaux Wifi disponibles n'apparaissent pas soudainement :
Ce script est écrit pour iwlwifi` qui est le nom commun du pilote Intel. Si le vôtre est différent, changez ce nom ci-dessous:
#!/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
REMARQUE: Parfois, une simple réinitialisation du gestionnaire de réseau suffit. Dans ce cas, décommentez la ligne ci-dessus en la supprimant #. Commentez ensuite les deux lignes au-dessus en mettant #au début de ces deux lignes.
Vous devrez créer ce script, appelé iwlwifi-reset, avec sudopouvoirs et l'enregistrer dans le répertoire /lib/systemd/system-sleep. Puis marquez-le comme exécutable en utilisant:
chmod a+x /lib/systemd/system-sleep/iwlwifi-reset