Comment mon ordinateur se suspend-il?

9

Essayer de comprendre comment fonctionne la suspension dans 10.10.

http://git.webconverger.org/?p=home.git;a=blob;f=.bashrc;h=8ba57b877e31a03c5f0b1675b42f747d81dd31ad;hb=HEAD#l31

J'utilise un alias suspend='sudo /etc/acpi/sleep.sh && sudo alsactl init 0

Le alsactltout est de ré-initialiser ma carte son qui parfois ne sort pas correctement de la suspension.

Et alors:

/etc/acpi/sleep.sh-> /usr/sbin/pm-suspend-> /usr/lib/pm-utils/bin/pm-action->/usr/lib/pm-utils/pm-functions

L'ironie /usr/lib/pm-utils/bin/pm-actionprétend être un "script de suspension simple".

Je ne sais toujours pas comment cela fonctionne. Je pense que je l'ai utilisé directement s2ramavant.

hendry
la source
Je sais que je n'explique pas grand-chose, mais vous pouvez mettre votre alsactlcommande dans son propre script /etc/acpi/resume.d/et elle s'exécutera au réveil.
Oli
Mise à jour: j'utilise simplement sudo systemctl suspendmaintenant.
hendry le

Réponses:

10

L' gnome-power-manageroutil écoute les événements de bouton de suspension et apparaît pm-suspend. De nombreux détails sur le pm-suspendfonctionnement peuvent être trouvés dans la man pm-suspendsortie de la commande. La version rapide:

  1. /etc/pm/config.d est analysé pour les fichiers qui définissent les variables d'environnement.
  2. Chacun des scripts dans /etc/pm/sleep.det /usr/lib/pm-utils/sleep.dest appelé dans l'ordre avec l'argument "suspend".
  3. Le système est mis en veille via le module d'interface défini. Par défaut, il est le noyau de suspendre l' interface: echo -n "mem" >/sys/power/state. Voir /usr/lib/pm-utils/pm-functionsdo_suspendest défini.
  4. Le système se réveille.
  5. Chacun des scripts dans /etc/pm/sleep.det /usr/lib/pm-utils/sleep.dsont appelés dans l'ordre inverse avec l'argument "resume".

Si vous avez besoin d'ajouter un script à la pile, je suggère de l'ajouter /etc/pm/sleep.det de le nommer quelque chose qui n'entre pas en conflit avec d'autres scripts, et de vous assurer qu'il traite l'argument "suspendre" / "reprendre".

Pour le débogage, reportez-vous /var/log/pm-suspend.logà la page de manuel qui contient plus d'informations sur la façon de tester.

Kees Cook
la source
Merci kees, bien que par intérêt, quelle est exactement la commande pour déclencher la "suspension du noyau" à l'étape 3?
hendry
J'ai mis à jour pour inclure ce détail aussi maintenant.
Kees Cook du