web-dev-qa-db-fra.com

Ordinateur portable se réveille tout seul quelques secondes après la suspension ou la fermeture du couvercle

J'exécute Ubuntu 18.04.1 avec le noyau 4.15.0-29-generic et mon ordinateur portable (Macbookpro retina 15inch, mi-2015, MacBookPro11,5) se réveille automatiquement quelques secondes après le sommeil. Lorsque je regarde les journaux dans \var\log\syslogs l'événement de réveil apparaît sous la forme: Aug 6 15:51:53 Shire NetworkManager[7444]: <info> [1533595913.5200] manager: sleep: wake requested (sleeping: yes enabled: yes).

J'ai déjà examiné toutes les autres questions et réponses à ce sujet, mais mon problème persiste comme suit:

Après cette question et ses réponses, le résultat de cat /proc/acpi/wakeup est

Device  S-state   Status   Sysfs node
PEG0      S3    *disabled  pci:0000:00:01.0
GFX0      S3    *disabled  pci:0000:01:00.0
PEG1      S3    *disabled  pci:0000:00:01.1
PEG2      S3    *disabled  pci:0000:00:01.2
EC        S4    *disabled  platform:PNP0C09:00
GMUX      S3    *disabled  pnp:00:03
HDEF      S3    *disabled  pci:0000:00:1b.0
RP03      S3    *disabled  pci:0000:00:1c.2
ARPT      S4    *enabled   pci:0000:04:00.0
RP04      S3    *disabled  pci:0000:00:1c.3
XHC1      S3    *enabled   pci:0000:00:14.0
ADP1      S4    *disabled  platform:ACPI0003:00
LID0      S4    *enabled   platform:PNP0C0D:00

et j'ai isolé le problème pour qu'il soit l'entrée ARPT. Si je cherche le pci de cette entrée via lspci, 04:00.0 Network controller: Broadcom Limited BCM43602 802.11ac Wireless LAN SoC (rev 01) correspond aux informations de journal selon lesquelles le réveil est provoqué par le réseau.

Voici la partie étrange: J'utilise Sudo sh -c "echo ARPT > /proc/acpi/wakeup" pour désactiver la fonction de réveil de ARPT, et le statut est désactivé correctement, mais lorsque je mets l'ordinateur portable en veille, il se réveille après quelques secondes seulement! Plus surprenant, quand il se réveille et que je vérifie le /proc/acpi/wakeup, je vois que l'entrée ARPT est revenue à enabled par elle-même! Notez que cela ne se produit pas après un redémarrage, mais juste après la désactivation de l'entrée de réveil et sa suspension. Il semble qu'un autre script ne cesse de changer cela pendant que l'ordinateur portable est en veille.

Autres choses que j'ai essayées avec AUCUN résultat:

  • Gestionnaire de réseau arrêté via Sudo service netwrok-manager stop, mais l'ordinateur portable se réveille toujours.
  • Gestion de l'alimentation du wifi désactivée à l'aide de Sudo iwconfig wlan0 power off
  • Assurez-vous que Wake on WLAN (WoWLAN) est désactivé en suivant cet article
  • Fait \proc\acpi\wakeup en lecture seule.

Mise à jour:

J'ai essayé de désactiver les noms ARPT et XHC1 et de ne laisser que LID0 activé (couvercle de l'ordinateur portable), et le système se réveille toujours après quelques secondes. Mais cette fois, les paramètres de /proc/acpi/wakeup sont conservés tels quels et ne sont pas automatiquement rétablis.

Mise à jour du 17/08/2018:

Avec le nouveau noyau 4.15.0-32, l'ordinateur portable ne se réveille plus lorsque le couvercle est fermé, mais il se réveille tout seul lorsque le couvercle est ouvert et qu'il s'est endormi. Au moins, je peux maintenant mettre mon ordinateur portable dans mon sac à dos sans craindre de manquer de batterie. Apparemment, il s’agit d’un problème de noyau et je doute d’être capable de le contourner sans perdre beaucoup de temps.

5
Mostafa

Mise à jour du 8 août 2018

Le noyau 4.15.0-30 a été publié. Le CV immédiatement après le problème de suspension persiste. Le noyau 4.13.0-36 fonctionne toujours de manière fiable.

Étapes supplémentaires à essayer

J'ai le même problème sur 4.15.0-29-generic. Je venais d'installer le pilote 384.130 de nVidia et je pensais qu'il était lié à cela. J'ai parcouru toutes vos étapes et j'ai modifié:

$ paste <(ls /sys/bus/usb/devices/*/power/wakeup) <(cat /sys/bus/usb/devices/*/power/wakeup) | column -s $'\t' -t
/sys/bus/usb/devices/1-1.4.3/power/wakeup  disabled
/sys/bus/usb/devices/1-1.4/power/wakeup    disabled
/sys/bus/usb/devices/1-1/power/wakeup      disabled
/sys/bus/usb/devices/1-4/power/wakeup      disabled
/sys/bus/usb/devices/1-5/power/wakeup      enabled
/sys/bus/usb/devices/1-9/power/wakeup      disabled
/sys/bus/usb/devices/usb1/power/wakeup     disabled
/sys/bus/usb/devices/usb2/power/wakeup     disabled
/sys/bus/usb/devices/usb3/power/wakeup     disabled
/sys/bus/usb/devices/usb4/power/wakeup     disabled

USB 1-5 est la carte WiFi/Bluetooth:

$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 009: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 007: ID 1bcf:2b8c Sunplus Innovation Technology Inc. 
Bus 001 Device 005: ID 0cf3:e301 Atheros Communications, Inc. 
Bus 001 Device 003: ID 187c:0528 Alienware Corporation 
Bus 001 Device 008: ID 413c:9016 Dell Computer Corp. 
Bus 001 Device 006: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 001 Device 004: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS
Bus 001 Device 002: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Vous pouvez vérifier cela aussi.

Tout débrancher

Intel recommande de tout débrancher - Tous les ports USB, câble réseau, etc. pour déboguer la suspension. Il y a d'autres choses à essayer énumérées dans article d'Intel .

Le noyau 4.13.0-36 fonctionne!

J'ai recompilé mon nvhda.ko sous le noyau 4.13.0-36-generic et découvert que suspendre via le menu au moins fonctionne maintenant.

  • Si vous avez une version plus ancienne du noyau telle que 4.15.0-24 dans votre menu Advanced Grub, démarrez avec.
  • Si vous avez 4.13.0-36, démarrez-le.
  • Si vous n'avez pas une version plus ancienne, vous pouvez l'installer avec Sudo apt install linux-image-4.15.0-24*
  • Si vous utilisez DKMS, vous devez également utiliser Sudo apt install linux-headers-4.15.0-24*
  • Je ne vois pas les noyaux 4.15.0-25 à 4.15.0-28 disponibles dans le référentiel.
1
WinEunuuchs2Unix