Ubuntu – Désactivez manuellement le Wifi avant de suspendre

J’utilise Ubuntu 18.10 avec Gnome – Suspend to Ram ne fonctionne pas. mon syslog m’a dit quewpa_supplicantrefuse de geler. J’ai déjà essayé quelques correctifs mais aucun ne fonctionne. La plupart d’entre eux en sont des variantes différentes. J’ai également essayé d’utiliser une version différente du micrologiciel comme indiqué ici. Bien que cela soit un peu exagéré, car le wifi fonctionne bien et mon idée est d’exécuter un script, lorsque vous appuyez sur le bouton de suspension, cela désactive le wifi, avant que l’action de suspension proprement dite ait lieu.

Suspendre à Ram fonctionne si je désactive le wifi manuellement avant de suspendre. Existe-t-il un moyen de l’automatiser?

Chipset sans fil:

 description: Wireless interface
       product: QCA6174 802.11ac Wireless Network Adapter
       vendor: Qualcomm Atheros
       physical id: 0
       bus info: [email protected]:04:00.0
       logical name: wlp4s0
       version: 20
       serial: c0:38:96:2f:a8:1f
       width: 64 bits
       clock: 33MHz
       capabilities: bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=ath10k_pci driverversion=4.18.0-13-generic firmware=SW_RM.1.1.1-00157-QCARMSWPZ-1
 

Mise à jour # 1:comme l’a souligné @ GAD3R, un script dans / lib / systemd / system-sleep fera l’affaire. Cependant, cela ne semble pas fonctionner. J’ai créé le script

killwpa

dans

/ lib / systemd / system-sleep

et l’a rendu exécutable en utilisant

sudo chmod + x

Je ne peux toujours pas suspendre avec Wifi sur voici la sortie de monsyslog:

 Freezing user space processes ... 
Freezing of tasks failed after 20.002 seconds (9 tasks refusing to freeze, wq_busy=0):
wpa_supplicant  D    0  1013      1 0x00000004
 

Mise à jour 2:J’ai modifié le script pour décharger le pilote en utilisant modprobe et arrêter le gestionnaire de réseau – toujours gelé.

Scénario:

  #!/bin/bash
if [ "${1}" == "pre" ]; then

modprobe -rv ath10k_pci
systemctl stop NetworkManager.service 

elif [ "${1}" == "post" ]; then

modprobe -v  ath10k_pci
systemctl start NetworkManager.service

fi
 

sortie syslog:

 Feb  1 09:13:25 aaron-GACK kernel: [ 1350.265251] Freezing user space processes ... 
Feb  1 09:13:25 aaron-GACK kernel: [ 1370.272019] Freezing of tasks failed after 20.006 seconds (3 tasks refusing to freeze, wq_busy=0):
Feb  1 09:13:25 aaron-GACK kernel: [ 1370.274617] wpa_supplicant  D    0  1036      1 0x00000004
 

Mise à jour 3:
J’ai essayé de le simplifier et d’utiliser un seul script pour décharger le pilote et tuer wpa comme recommandé par GAD3R:

 !/bin/bash
if [ "${1}" == "pre" ]; then
modprobe -rv ath10k_pci
/usr/bin/pkill wpa_supplicant
fi
 

Holy Moly – cela a fonctionné!De retour après la suspension et le Wifi est également de retour.

Mise à jour 4:
Ça ne fait rien. J’ai essayé de suspendre à nouveau après la réussite de l’essai… aaaet geler à nouveau.
Syslog:

 Feb  1 09:27:30 aaron-GACK kernel: [  421.558759] Freezing user space processes ... 
Feb  1 09:27:30 aaron-GACK kernel: [  441.561752] Freezing of tasks failed after 20.002 seconds (10 tasks refusing to freeze, wq_busy=0):
Feb  1 09:27:30 aaron-GACK kernel: [  441.564343] wpa_supplicant  D    0  1082      1 0x00000004
 

Meilleure réponse

  • Je voulais faire la même chose avant de suspendre et d’essayer vos scripts, les deux formes. Syslog a montré des erreurs de format et le script a échoué. Systemd est-il pointilleux sur le format du script?

    Cela a fonctionné pour moi, après avoir testé manuellement que le déchargement du pilote permettait une suspension réussie.

     !/bin/sh
    case $1/$2 in
    pre/*)
    modprobe -rv ath10k_pci
    ;;
    post/*)
    modprobe -v ath10k_pci
    ;;
    esac