web-dev-qa-db-fra.com

Comment fonctionne exactement suspendre à Ubuntu?

J'aime savoir exactement comment suspendre le produit dans Ubuntu,

  1. Un matériel est-il complètement coupé du courant ou son processus est-il simplement minimisé?
  2. En dehors de l'écran, quelles parties sont mises en attente ou leur alimentation est coupée?
  3. S'il y a une consommation d'énergie pendant la suspension, comment puis-je savoir combien et combien de temps puis-je m'attendre à ce que mon ordinateur portable puisse être rallumé avant que la batterie ne soit épuisée?
  4. Que se passe-t-il exactement pour le disque dur et est-il prudent de transporter l'ordinateur portable sans l'endommager lorsqu'il est suspendu?
2
azerafati

Lorsqu'une machine passe à l'état de suspension, le noyau bloque (arrête) les programmes d'espace utilisateur et les threads du noyau. Ensuite, le noyau parcourt tous les périphériques et appelle les méthodes de suspension sur chaque pilote. Chaque pilote possède le savoir-faire nécessaire pour mettre le matériel dans un état de veille profonde (voire même le mettre hors tension) (et inversement pour le ramener à un état de fonctionnement normal lors de la reprise). À ce stade, le matériel doit être à l’état de basse consommation (le disque dur sera donc mis hors tension).

L'adresse du code de réveil du noyau est écrite dans une adresse spécifiée par une table ACPI FADT, puis les registres de contrôle de gestion de l'alimentation x86 sont écrits; Cela met effectivement le processeur hors tension, mais maintient la mémoire en mode de rafraîchissement automatique.

Lorsque la reprise survient, la CPU est redémarrée et après un court instant dans le microprogramme (BIOS/UEFI), l'adresse de réveil fournie par le noyau est sautée et le noyau repasse en mode protégé et restaure son état. Il traverse ensuite les pilotes et ceux-ci reprennent tous les périphériques. Ensuite, les processus gelés sont décongelés et le noyau revient dans l'espace utilisateur.

Donc pour répondre à vos questions:

1 et 2: les pilotes de périphériques tentent de placer les périphériques dans l'état de veille le plus profond. Certains périphériques peuvent être mis hors tension, d'autres en mode de veille profonde ne consommant que très peu d'énergie. Cela dépend du matériel et du pilote de périphérique.

La mémoire est en cours de rafraîchissement, elle n'est jamais éteinte. Le processeur est effectivement arrêté, mais cela dépend du modèle de processeur en fonction de la quantité de paquet réellement hors tension.

  1. Un moyen de déterminer la quantité d’énergie utilisée consiste à utiliser les tests Firmware Test Suite s3power; Je recommande de mettre la machine en veille prolongée pendant 30 minutes et de mesurer la consommation d'énergie de la batterie pour obtenir une estimation de la consommation d'énergie pendant la suspension:

retirez l’alimentation secteur, puis exécutez:

Sudo apt-get install fwts
Sudo fwts s3power --s3power-sleep-delay=1800

..wait 1800 secondes (30 minutes) et il devrait rallumer et donner une estimation.

  1. Le disque dur étant hors tension, la machine peut être transportée en toute sécurité.
6
Colin Ian King