web-dev-qa-db-fra.com

Kubuntu 18.04 se réveille immédiatement après la suspension (impossible de suspendre)

Je viens d'installer la nouvelle Kubuntu 18.04 sur un nouveau Dell XPS 15 (9570). Le disque est crypté et le démarrage sécurisé est activé (si cela fait une différence? Certaines choses que j'ai lues semblent suggérer que cela pourrait l'être).

J'ai du mal à le faire suspendre correctement. Si je ferme le couvercle et le laisse, cela videra la batterie.

J'ai commencé à regarder dedans et j'ai trouvé quelques trucs à essayer, j'ai commencé à essayer des trucs ici et comme le résultat de cat /sys/power/mem_sleep était pour moi [s2idle] deep je suppose que ça vide la batterie comme ce n'est pas en sommeil profond?

J'ai essayé de passer en sommeil profond (echo deep > /sys/power/mem_sleep), ce qui a bien changé, mais lorsque vous tentez de suspendre avec pm-suspend, l'écran s'assombrit mais se réveille à nouveau environ 15 secondes plus tard.

Vérification journalctl -xe Je vois ceci:

...
Oct 06 19:54:57 xps kernel: Suspending console(s) (use no_console_suspend to debug)
Oct 06 19:54:57 xps kernel: nouveau 0000:01:00.0: DRM: failed to idle channel 1 [DRM]
Oct 06 19:54:57 xps kernel: pci_pm_suspend(): nouveau_pmops_suspend+0x0/0x80 [nouveau] returns -16
Oct 06 19:54:57 xps kernel: dpm_run_callback(): pci_pm_suspend+0x0/0x150 returns -16
Oct 06 19:54:57 xps kernel: PM: Device 0000:01:00.0 failed to suspend async: error -16
Oct 06 19:54:57 xps kernel: do_IRQ: 0.35 No irq handler for vector
Oct 06 19:54:57 xps kernel: PM: Some devices failed to suspend, or early wake event detected
Oct 06 19:54:57 xps kernel: OOM killer enabled.
Oct 06 19:54:57 xps kernel: Restarting tasks ... done.
Oct 06 19:54:57 xps kernel: [drm] RC6 on
...
Oct 06 19:54:57 xps systemd[1]: systemd-suspend.service: Main process exited, code=exited, status=1/FAILURE
Oct 06 19:54:57 xps systemd[1]: systemd-suspend.service: Failed with result 'exit-code'.
Oct 06 19:54:57 xps systemd[1]: Failed to start Suspend.
...

Suggère que le périphérique PCI 0000:01:00.0 provoque l'échec de la suspension, ce qui est mon GPU par les apparences:

$ lspci -s 0000:01:00.0
01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Ti Mobile] (rev a1)

Mais je ne comprends pas: a) Pourquoi le processeur graphique provoque-t-il l’échec du sommeil? b) Comment puis-je l'arrêter, causant une défaillance du sommeil?

J'ai essayé de regarder dans /proc/acpi/wakeup mais je ne peux pas le voir ici:

$ cat /proc/acpi/wakeup | grep enabled
LID0      S3    *enabled   platform:PNP0C0D:00
PBTN      S3    *enabled   platform:PNP0C0C:00

Au départ, il y avait aussi une entrée XHC qui avait été activée, mais je l’ai désactivée - cela ne faisait aucune différence cependant :(

Vous ne savez pas quoi essayer ensuite?

2
Jamie Scott

J'avais également un autre problème où mon système se bloquait pendant un moment lorsque je me déconnectais (par exemple une minute ou deux), mais que je récupérais par la suite. Il était également lent à démarrer et à arrêter. L'arrêter serait rester sur un curseur clignotant pendant un moment avant de s'arrêter.

En enquêtant sur ce problème, il a corrigé celui-ci. J'ai eu d'excellents spas de dump sur crash dans journalctl et à la recherche de diverses erreurs, quelqu'un a suggéré d'essayer de démarrer avec le paramètre de noyau nomodeset pour voir si cela fait une différence. Le problème a été résolu, puis j'ai essayé de régler /sys/power/mem_sleep à fond et cela a fonctionné à merveille (perte de 3% de la batterie lors du test de nuit).

Il semble qu'Ubuntu ait toujours besoin de nomodeset pour les GPU NVIDIA 18.04 après la recherche. Je ne comprends pas pourquoi ni ce qui le cause, mais cela semble lié aux pilotes propriétaires NVIDIA. Le correctif que j'ai appliqué fonctionne pour moi mais je ne sais pas s'il est "correct".

Pour que ces paramètres (nomodeset et veille prolongée) persistent après les redémarrages, j'ai modifié ma config grub (/etc/default/grub) et modifié

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

à

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.modeset=0 mem_sleep_default=deep"

J'ai utilisé nouveau.modeset=0 au lieu de nomodeset après avoir lu this demander à Ubuntu et this Reddit qui suggère que cela est nécessaire avec nouveau avec deux GPU.

1
Jamie Scott