Introduksjon til acpid
acpid Advanced Configuration and
Power Interface event daemon) er en helt fleksibel, helt utvidbar
nisse for å levere ACPI hendelser. Den lytter på netlink
grensesnitt og når en hendelse inntreffer, kjører programmer for å
håndtere hendelsen. Programmene den kjører er konfigurert gjennom
et sett med konfigurasjonsfiler, som kan slippes på plass av pakker
eller av brukeren.
Note
Noen andre pakker kan også håndtere noen ACPI hendelser, og de
kan komme i konflikt med denne pakken. For eksempel, Systemd-255 (les dokumentasjonen for
Handle*=
i logind.conf(5)
for detaljer) og UPower-1.90.2 (brukes av mange
skrivebordsmiljøer som f.eks GNOME, KDE og XFCE for håndtering av
ACPI hendelser). Hvis du har installert en slik pakke og det er
nok for din brukssituasjon, er denne pakken sannsynligvis ikke
nødvendig. Hvis du virkelig trenger denne pakken, må du være nøye
med å konfigurere den og de andre pakkene som håndterer ACPI
hendelser for å unngå konflikter. Spesielt Systemd-255 håndterer noen ACPI
hendelser som standard, så håndteringen av disse hendelsene av
Systemd-255 bør være deaktivert først
hvis du håndterer disse hendelsene med acpid (igjen, les
logind.conf(5)
for detaljer).
Denne pakken er kjent for å bygge og fungere riktig ved å bruke en
LFS 12.1 plattform.
Pakkeinformasjon
Installasjon av acpid
Installer acpid ved å kjøre
følgende kommandoer:
./configure --prefix=/usr \
--docdir=/usr/share/doc/acpid-2.0.34 &&
make
Denne pakken kommer ikke med en testpakke.
Nå, som root
bruker:
make install &&
install -v -m755 -d /etc/acpi/events &&
cp -r samples /usr/share/doc/acpid-2.0.34
Konfigurere acpid
acpid er konfigurert av
brukerdefinerte hendelser. Plasser hendelsesfiler under
/etc/acpi/events
mappen. Hvis en
hendelse inntreffer, acpid går igjen gjennom
hendelsesfilene for å se om regex definert etter "hendelse" stemmer
overens. Hvis de gjør det, blir handlingen utført.
Følgende korte eksempel vil suspendere systemet når den bærbare
datamaskin lokket er lukket. Eksemplet deaktiverer også
standardhåndteringen av lokkets hendelse av Systemd-255 når systemet er på batteri og
ikke koblet til noen ekstern skjerm, for å unngå konflikt:
cat > /etc/acpi/events/lid << "EOF"
event=button/lid
action=/etc/acpi/lid.sh
EOF
cat > /etc/acpi/lid.sh << "EOF"
#!/bin/sh
/bin/grep -q open /proc/acpi/button/lid/LID/state && exit 0
/usr/bin/systemctl suspend
EOF
chmod +x /etc/acpi/lid.sh
mkdir -pv /etc/systemd/logind.conf.d
echo HandleLidSwitch=ignore
> /etc/systemd/logind.conf.d/acpi.conf
Dessverre merker ikke alle datamaskiner ACPI hendelser på samme
måte (for eksempel kan lokket gjenkjennes som LID0
i stedet for LID
). For å finne ut hvordan knappene dine
gjenkjennes, bruk acpi_listen verktøyet. Se også i
samples
mappen under /usr/share/doc/acpid-2.0.34
for flere eksempler.
Systemd Socket
For å starte acpid
nissen ved systemstart, installer systemd enheten fra blfs-systemd-units-20240205 pakken ved å
kjøre følgende kommando som root
bruker:
make install-acpid
Note
Denne pakken bruker socketbasert aktivering og vil bli startet
når noe trenger det. Ingen frittstående enhetsfil er gitt for
denne pakken.