Jak zawiesza się mój komputer?

9

Próbuję zrozumieć, jak działa zawieszenie w 10.10.

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

Używam alias suspend='sudo /etc/acpi/sleep.sh && sudo alsactl init 0

Chodzi o alsactlto, aby ponownie zainicjować moją kartę dźwiękową, która czasami nie wychodzi poprawnie z zawieszenia.

I wtedy:

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

Ironia /usr/lib/pm-utils/bin/pm-actiontwierdzi, że jest „prostym skryptem zawieszającym”.

Nadal nie wiem jak to działa. Myślę, że wcześniej bezpośrednio z niego korzystałem s2ram.

hendry
źródło
Wiem, że nie wyjaśniam zbyt wiele, ale możesz umieścić swoje alsactlpolecenie we własnym skrypcie /etc/acpi/resume.d/i uruchomi się ono po przebudzeniu.
Oli
Aktualizacja: po prostu używam sudo systemctl suspendteraz.
hendry

Odpowiedzi:

10

W gnome-power-managerSłuchacze narzędzie do zawieszenia wydarzenia przycisk i tarła pm-suspend. Szczegółowe informacje o tym, jak pm-suspenddziała, można znaleźć w danych man pm-suspendwyjściowych polecenia. Szybka wersja:

  1. /etc/pm/config.d jest skanowany w poszukiwaniu plików, które definiują zmienne środowiskowe.
  2. Każdy ze skryptów /etc/pm/sleep.di /usr/lib/pm-utils/sleep.dnazywane są w porządku z „zawieszenia” argument.
  3. System zostaje uśpiony przez zdefiniowany moduł interfejsu. Domyślnie jest to interfejs jądra zawieszenia: echo -n "mem" >/sys/power/state. Zobacz, /usr/lib/pm-utils/pm-functionsgdzie do_suspendjest zdefiniowany.
  4. System się budzi.
  5. Każdy ze skryptów /etc/pm/sleep.di /usr/lib/pm-utils/sleep.dnazywane są w odwrotnej kolejności z „RESUME” argument.

Jeśli potrzebujesz dodać skrypt do stosu, sugerowałbym dodanie go /etc/pm/sleep.di nazwanie go czymś, co nie powoduje konfliktu z innymi skryptami, i upewnij się, że przetwarza on argument „zawieszenia” / „wznowienia”.

W celu debugowania zobacz /var/log/pm-suspend.logstronę man, która zawiera więcej informacji na temat wykonywania testów.

Kees Cook
źródło
Dzięki kees, chociaż co nie jest interesujące, jakie dokładnie polecenie wywołuje „zawieszenie jądra” w kroku 3?
hendry
Zaktualizowałem, aby teraz uwzględnić te szczegóły.
Kees Cook