Demon ACPI Paweł Kwieciński
ACPI Advanced Configuration and Power Interface (zaawansowany interfejs zarządzania konfiguracją i energią) Intel, Microsoft, Toshiba, HP, Phoenix Pierwsza wersja - Grudzień 1996 r. Rev 5.0 - Listopad 2011 r. Następca APM
APM Advanced power management (zaawansowane zarządzanie energią) Intel, Microsoft Pierwsza wersja - 1992 r. Rev 1.2 - 1996 r.
APM vs ACPI APM ACPI Kontrolowany głównie przez BIOS Ograniczone możliwości oszczędzania energii Słaba standaryzacja Kompatybilność ze starymi urządzeniami Kontrolowany głównie przez system Rozbudowane możliwości oszczędzania energii Dobra standaryzacja Kompatybilność z nowymi urządzeniami
Stany ACPI
Stany globalne G0 (S0), Working G1, Sleeping S1 S2 S3 (Standby) S4 (Hibernation) G2 (S5), Soft Off G3, Mechanical Off
Stany urządzeń D0, Fully On D1, D2 - stany pośrednie zależące od danego urządzenia D3 D3 Hot D3 Cold
Stany procesora C0 C1, Halt C2, Stop-Clock C3, Sleep
Stany wydajności P0 - maksymalna wydajności, maksymalny pobór mocy P1 - wydajność niższa niż P0, pobór mocy niższy niż P0 P2 - wydajność niższa niż P1, pobór mocy niższy niż P1 ... Pn - wydajność niższa niż P(n-1), pobór mocy niższy niż P(n-1) n <= 16
acpid
acpid Demon systemowy Otwiera plik /proc/acpi/event Odczytuje zdarzenia (events) ACPI raportowne przez urządzenia i komputer Dla odczytanych zdarzeń wykonuje przypisane im reguły (rules)
Reguły acpid Pliki konfiguracyjne pozwalające zareagować na wybrane zdarzenie Domyślnie czytanie z /etc/acpi/events Dozwolone znaki w nazwie pliku [a-z] [A-Z] _ -
Struktura pliku reguły event=[[EVENT]] action=[[ACTION]]
Plik reguły - [[EVENT]] Nazwa wydarzenia Zapisana w postaci wyrażenia regularnego Przykładowe zdarzenie button/lid
Plik reguły - [[ACTION]] Ścieżka do pliku ze skryptem Demon uruchamia skrypt przez /bin/sh Wartość "%e" zastępowana jest nazwą zdarzenia które zainicjowało regułę Przykładowa akcja /etc/acpi/actions/sleep.sh
acpid - przykład /etc/acpi/events/pwr event=button/power action=/etc/acpi/pwr.sh /etc/acpi/pwr.sh /sbin/shutdown -h now
/var/run/acpid.scoket acpid - dostęp przez socket acpid udostępnia socket na który przesyłane są wrzystki zdarzenia pozwala na łatwy dostęp dla programistów domyślny plik socketu /var/run/acpid.scoket
acpi_listen wypisuje eventy ACPI na stdout domyślnie eventy zczytywane są z socketu /var/run/acpid.socket pomocny przy debugowaniu lub w skryptach przykładowy output $ acpi_listen button/power PWRB 00000080 00000004 button/lid LID0 00000080 00000023 button/lid LID0 00000080 00000024
Dziękuję za uwagę Paweł Kwieciński pawel@kwiecinski.me