2 votes

Réveille la suspension immédiatement lorsque le périphérique Bluetooth est déconnecté.

Lorsque je suspends mon Dell XPS 13 9379, NetworkManager le réveille immédiatement si ma souris bluetooth n'est pas connectée :

# journalctl -ex
...
systemd-logind[653]: Operation 'sleep' finished.
NetworkManager[650]: <info>  [1541032616.6736] manager: sleep: wake requested (sleeping: yes  enabled: yes)
NetworkManager[650]: <info>  [1541032616.6739] device (enxa0cec8126450): state change: unavailable -> unmanaged (reason 'sleeping', sys-iface-state: 'managed')
NetworkManager[650]: <info>  [1541032616.7017] device (enxa0cec8126450): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'managed')
...

Comment puis-je empêcher Bluetooth de réveiller mon ordinateur ?


Apparemment, Bluetooth n'est pas pertinent ou n'est pas la seule source du problème, car ma machine s'est réveillée (ou plutôt, ne s'est pas endormie) avec Bluetooth désactivé. D'après les journaux que j'ai trouvés cette fois, ma 00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21) à blâmer :

kernel: PM: suspend entry (s2idle)
kernel: PM: Syncing filesystems ... done.
kernel: Freezing user space processes ... (elapsed 0.004 seconds) done.
kernel: OOM killer disabled.
kernel: Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
kernel: Suspending console(s) (use no_console_suspend to debug)
kernel: pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -16
kernel: dpm_run_callback(): pci_pm_suspend+0x0/0x150 returns -16
kernel: PM: Device 0000:00:14.0 failed to suspend async: error -16
kernel: PM: Some devices failed to suspend, or early wake event detected
kernel: rtc_cmos 00:01: Alarms can be up to one month in the future
kernel: OOM killer enabled.
kernel: Restarting tasks ... done.
kernel: [drm] RC6 on
kernel: thermal thermal_zone8: failed to read out thermal zone (-61)
kernel: PM: suspend exit
kernel: PM: suspend entry (s2idle)
kernel: PM: Syncing filesystems ... done.
kernel: Freezing user space processes ... (elapsed 0.002 seconds) done.
kernel: OOM killer disabled.
kernel: Freezing remaining freezable tasks ... (elapsed 0.056 seconds) done.
kernel: Suspending console(s) (use no_console_suspend to debug)
kernel: pci_pm_suspend(): hcd_pci_suspend+0x0/0x30 returns -16
kernel: dpm_run_callback(): pci_pm_suspend+0x0/0x150 returns -16
kernel: PM: Device 0000:00:14.0 failed to suspend async: error -16
kernel: PM: Some devices failed to suspend, or early wake event detected
kernel: rtc_cmos 00:01: Alarms can be up to one month in the future
kernel: OOM killer enabled.
kernel: Restarting tasks ... done.
kernel: [drm] RC6 on
kernel: thermal thermal_zone8: failed to read out thermal zone (-61)
systemd[1]: systemd-suspend.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: systemd-suspend.service: Failed with result 'exit-code'.
systemd[1]: Failed to start Suspend.

3voto

WinEunuuchs2Unix Points 91128

Mon ordinateur portable, qui se suspendait sans problème la plupart du temps, a commencé à avoir des problèmes la semaine dernière. Peut-être à cause d'un câble défectueux. J'ai créé un bash script qui suspend et reprend plus rapidement qu'avant et de manière plus fiable.

Utilisez cette commande :

sudo -H gedit /lib/systemd/system-sleep/custom-xhci_hcd

Copiez et collez le texte suivant dans l'éditeur :

#!/bin/bash

# Original script was using /bin/sh but shellcheck reporting warnings.

# NAME: custom-xhci_hcd
# PATH: /lib/systemd/system-sleep
# CALL: Called from SystemD automatically
# DESC: Suspend broken for USB3.0 as of Oct 25/2018 various kernels all at once

# DATE: Oct 28 2018.

# NOTE: From comment #61 at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/522998

TMPLIST=/tmp/xhci-dev-list

# Original script was: case "${1}" in hibernate|suspend)

case $1/$2 in
  pre/*)
    echo "$0: Going to $2..."
    echo -n '' > $TMPLIST
          for i in `ls /sys/bus/pci/drivers/xhci_hcd/ | egrep '[0-9a-z]+\:[0-9a-z]+\:.*$'`; do
              # Unbind xhci_hcd for first device XXXX:XX:XX.X:
               echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/unbind
           echo "$i" >> $TMPLIST
          done
        ;;
  post/*)
    echo "$0: Waking up from $2..."
    for i in `cat $TMPLIST`; do
              # Bind xhci_hcd for first device XXXX:XX:XX.X:
              echo -n "$i" | tee /sys/bus/pci/drivers/xhci_hcd/bind
    done
    rm $TMPLIST
        ;;
esac

Ensuite, enregistrez le fichier et quittez gedit .

Marquer le script comme exécutable en utilisant :

sudo chmod a+x /lib/systemd/system-sleep/custom-xhci_hcd

Maintenant, vos problèmes de suspension/reprise devraient disparaître. Sinon, j'espère que quelqu'un d'autre publiera sa solution.

3voto

Cela pourrait être un bug du noyau 200039 . Retrait de la btusb serait utile dans ce cas ( rmmod btusb ). Si c'est le cas, vous pourriez effectivement charger/décharger le module noyau via un sleep script, un peu comme celui posté ici.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X