Introduction to acpid
The acpid (Advanced Configuration
and Power Interface event daemon) is a completely flexible, totally
extensible daemon for delivering ACPI events. It listens on netlink
interface and when an event occurs, executes programs to handle the
event. The programs it executes are configured through a set of
configuration files, which can be dropped into place by packages or
by the user.
This package is known to build and work properly using an LFS 11.3
platform.
Package Information
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/acpid
Installation of acpid
Install acpid by running the
following commands:
./configure --prefix=/usr \
--docdir=/usr/share/doc/acpid-2.0.34 &&
make
This package does not come with a test suite.
Now, as the root
user:
make install &&
install -v -m755 -d /etc/acpi/events &&
cp -r samples /usr/share/doc/acpid-2.0.34
Configuring acpid
acpid is configured by user
defined events. Place event files under /etc/acpi/events
directory. If an event occurs,
acpid recurses
through the event files in order to see if the regex defined after
"event" matches. If they do, action is executed.
The following brief example will suspend the system when the laptop
lid is closed (it requires pm-utils-1.4.1):
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/sbin/pm-suspend
EOF
chmod +x /etc/acpi/lid.sh
Unfortunately, not every computer labels ACPI events in the same
way. To determine how your buttons are recognized, use the
acpi_listen tool.
Also, look in the samples
directory
under /usr/share/doc/acpid-2.0.34
for
more examples.
Systemd Socket
To start the acpid
daemon at boot, install the systemd unit from the blfs-systemd-units-20220720 package by
running the following command as the root
user:
make install-acpid
Note
This package uses socket based activation and will be started
when something needs it. No standalone unit file is provided
for this package.