new package acpid and related kernel modules

Hi,

Here is a new package called acpid and a related kernel module
kmod-button. Its main pupose is to listen for
acpi events and run a user defined script. For now only powerdown is
possible. I only tested this under the
X86 architecture.

Maybe somebody find that useful too.

regards.
thomas

git-svn-id: svn://svn.openwrt.org/openwrt/packages@30991 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
jow 2012-03-18 20:48:24 +00:00
parent b90716941d
commit 9ec10c9555
4 changed files with 102 additions and 0 deletions

65
utils/acpid/Makefile Normal file
View File

@ -0,0 +1,65 @@
#
# Copyright (C) 2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=acpid
PKG_VERSION:=2.0.10
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://tedfelix.com/linux/
PKG_MD5SUM:=d5dd88bcfaa4a0bf51905e95115da6df
include $(INCLUDE_DIR)/package.mk
define Package/acpid
SECTION:=utils
CATEGORY:=Utilities
TITLE:=The ACPI Daemon (acpid) With Netlink Support
URL:=http://tedfelix.com/linux/acpid-netlink.html
DEPENDS:=+kmod-input-evdev +kmod-button
endef
define Package/acpid/description
The ACPI Daemon (acpid) With Netlink Support
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
CC="$(TARGET_CC)" \
LD="$(TARGET_CC)" \
LDFLAGS="$(TARGET_LDFLAGS)" \
all
endef
define Package/acpid/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/acpid $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/acpi_listen $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/acpi/events
$(INSTALL_CONF) ./files/default $(1)/etc/acpi/events/default
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_CONF) ./files/acpid.init $(1)/etc/init.d/acpid
chmod 0750 $(1)/etc/init.d/acpid
$(INSTALL_DIR) $(1)/etc/hotplug.d/input/
$(INSTALL_CONF) ./files/acpid.hotplug $(1)/etc/hotplug.d/input/
endef
define Package/acpid/postinst
#!/bin/sh
[ -n "$${IPKG_INSTROOT}" ] || {
echo "waiting for input devices to come up"
/etc/init.d/acpid enable
sleep 5
/usr/sbin/acpid
echo "please try the power button"
exit 0
}
endef
$(eval $(call BuildPackage,acpid))

View File

@ -0,0 +1,7 @@
#!/bin/sh
. /etc/functions.sh
if [ "$ACTION" = add ] && [ "$DEVICENAME" = event0 ]; then
( /etc/init.d/acpid/stop; sleep 3; /usr/sbin/acpid )&
fi

View File

@ -0,0 +1,25 @@
#!/bin/ash /etc/rc.common
# Copyright (C) 2009-2010 OpenWrt.org
START=99
STOP=80
ACPID_BIN="/usr/sbin/acpid"
ACPID_PID="/var/run/acpid.pid"
start() {
[ -x "$ACPID_BIN" ] || return 1
start-stop-daemon -S -x $ACPID_BIN -p $ACPID_PID
}
boot() {
# Do nothing on boot
[ -x "$ACPID_BIN" ] || return 1
start-stop-daemon -S -x $ACPID_BIN -p $ACPID_PID
exit 0
}
stop() {
service_kill ${ACPID_BIN##*/} $ACPID_PID
rm -f $ACPID_PID
}

View File

@ -0,0 +1,5 @@
# This is a sample ACPID configuration
event=button/power.*
action=/sbin/poweroff