[Debian-eeepc-devel] [PATCH] Move SHE handling from acpid to pm-utils; call pm-utils if a power manager isn't running like acpi-support does
Luca Niccoli
lultimouomo at gmail.com
Fri Apr 23 14:38:29 UTC 2010
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
NotDashEscaped: You need GnuPG to verify this message
This patch moves SHE handling to a pm-utils hook.
acpi-support calls pm-powersave if no power manager is running; I think that most
power managers do the same (xfce4-power-mangers does).
Since e-a-s conficts with acpi-support, it should ship the same acpi event rule
until it drops the conflict and starts depending on it.
Signed-off-by: Luca Niccoli <lultimouomo at gmail.com>
---
debian/dirs | 1 +
debian/preinst | 5 ++++
debian/rules | 1 +
etc/acpi/actions/ac_adapter.sh | 44 -----------------------------------
etc/acpi/actions/power.sh | 11 ++++++++
etc/acpi/events/ac | 6 ++++
etc/acpi/events/ac_adapter_inserted | 2 -
etc/acpi/events/ac_adapter_removed | 2 -
etc/pm/power.d/SHE.sh | 44 +++++++++++++++++++++++++++++++++++
9 files changed, 68 insertions(+), 48 deletions(-)
delete mode 100755 etc/acpi/actions/ac_adapter.sh
create mode 100755 etc/acpi/actions/power.sh
create mode 100644 etc/acpi/events/ac
delete mode 100644 etc/acpi/events/ac_adapter_inserted
delete mode 100644 etc/acpi/events/ac_adapter_removed
create mode 100755 etc/pm/power.d/SHE.sh
diff --git a/debian/dirs b/debian/dirs
index ffb1f0e..8823008 100644
--- a/debian/dirs
+++ b/debian/dirs
@@ -3,6 +3,7 @@ etc/acpi/actions
etc/acpi/events
etc/acpi/lib
etc/modprobe.d
+etc/pm/power.d
lib/udev/rules.d
usr/share/eeepc-acpi-scripts
var/lib/eeepc-acpi-scripts
diff --git a/debian/preinst b/debian/preinst
index 25809df..2ddaddf 100644
--- a/debian/preinst
+++ b/debian/preinst
@@ -20,6 +20,11 @@ case "$1" in
if dpkg --compare-versions "$2" le "1.0.11"; then
prep_mv_conffile "/etc/modprobe.d/eeepc"
fi
+ if dpkg --compare-versions "$2" le "1.1.10"; then
+ prep_mv_conffile "/etc/acpi/events/ac_adapter_inserted"
+ prep_mv_conffile "/etc/acpi/events/ac_adapter_removed"
+ prep_mv_conffile "/etc/acpi/actions/ac_adapter.sh"
+ fi
;;
abort-upgrade)
diff --git a/debian/rules b/debian/rules
index db23e1d..9606a91 100755
--- a/debian/rules
+++ b/debian/rules
@@ -29,6 +29,7 @@ install: build
install -m 0644 etc/acpi/events/* $(TMP)/etc/acpi/events
install -m 0644 etc/acpi/lib/* $(TMP)/etc/acpi/lib
install -m 0644 etc/modprobe.d/* $(TMP)/etc/modprobe.d
+ install -m 0755 etc/pm/power.d/* $(TMP)/etc/pm/power.d
install -m 0644 lib/udev/rules.d/* $(TMP)/lib/udev/rules.d
install -m 0755 lib/udev/[!r]* $(TMP)/lib/udev
install -m 0644 functions.sh $(TMP)/usr/share/$(PKG)/
diff --git a/etc/acpi/actions/ac_adapter.sh b/etc/acpi/actions/ac_adapter.sh
deleted file mode 100755
index a2e4bc6..0000000
--- a/etc/acpi/actions/ac_adapter.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-
-# do nothing if package is removed
-PKG=eeepc-acpi-scripts
-FUNC_LIB=/usr/share/$PKG/functions.sh
-DEFAULT=/etc/default/$PKG
-[ -e $FUNC_LIB ] || exit 0
-
-case $(runlevel) in
- *0|*6)
- exit 0
- ;;
-esac
-
-if [ -e "$DEFAULT" ]; then . "$DEFAULT"; fi
-. $FUNC_LIB
-
-. /etc/acpi/lib/notify.sh
-code="$3 $4"
-
-case "$code" in
- # AC adapter present
- 0000008[01]\ 00000001)
- . /etc/acpi/lib/shengine.sh
- if shengine_supported && [ "${SHENGINE_SETTING:-auto}" = auto ]; then
- PWR_CLOCK_AC="${PWR_CLOCK_AC:-0}"
- if [ $(get_shengine -) -gt "$PWR_CLOCK_AC" ]; then
- handle_shengine "$PWR_CLOCK_AC" -
- fi
- fi
- ;;
-
- # AC adapter not present
- 0000008[01]\ 00000000)
- . /etc/acpi/lib/shengine.sh
- if shengine_supported && [ "${SHENGINE_SETTING:-auto}" = auto ]; then
- PWR_CLOCK_BATTERY="${PWR_CLOCK_BATTERY:-$(($SHENGINE_LIMIT - 1))}"
- if [ $(get_shengine -) -lt "$PWR_CLOCK_BATTERY" ]; then
- handle_shengine "$PWR_CLOCK_BATTERY" -
- fi
- fi
- ;;
-
-esac
diff --git a/etc/acpi/actions/power.sh b/etc/acpi/actions/power.sh
new file mode 100755
index 0000000..7e10fa6
--- /dev/null
+++ b/etc/acpi/actions/power.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+test -f /usr/share/acpi-support/key-constants || exit 0
+
+. /usr/share/acpi-support/policy-funcs
+
+if [ -z "$*" ] && [ `CheckPolicy` = 0 ]; then
+ exit;
+fi
+
+#pm-powersave $*
diff --git a/etc/acpi/events/ac b/etc/acpi/events/ac
new file mode 100644
index 0000000..2dd5a71
--- /dev/null
+++ b/etc/acpi/events/ac
@@ -0,0 +1,6 @@
+# /etc/acpi/events/ac
+# Called when the user connects ac power to us
+#
+
+event=ac_adapter.*
+action=/etc/acpi/actions/power.sh
diff --git a/etc/acpi/events/ac_adapter_inserted b/etc/acpi/events/ac_adapter_inserted
deleted file mode 100644
index af9eb09..0000000
--- a/etc/acpi/events/ac_adapter_inserted
+++ /dev/null
@@ -1,2 +0,0 @@
-event=ac_adapter .* 0000008[01] 00000001
-action=/etc/acpi/actions/ac_adapter.sh %e
diff --git a/etc/acpi/events/ac_adapter_removed b/etc/acpi/events/ac_adapter_removed
deleted file mode 100644
index b05b617..0000000
--- a/etc/acpi/events/ac_adapter_removed
+++ /dev/null
@@ -1,2 +0,0 @@
-event=ac_adapter .* 0000008[01] 00000000
-action=/etc/acpi/actions/ac_adapter.sh %e
diff --git a/etc/pm/power.d/SHE.sh b/etc/pm/power.d/SHE.sh
new file mode 100755
index 0000000..050b905
--- /dev/null
+++ b/etc/pm/power.d/SHE.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+# Handles EeePc Super Hybrid Engine
+# do nothing if package is removed
+PKG=eeepc-acpi-scripts
+FUNC_LIB=/usr/share/$PKG/functions.sh
+DEFAULT=/etc/default/$PKG
+[ -e $FUNC_LIB ] || exit 0
+
+case $(runlevel) in
+ *0|*6)
+ exit 0
+ ;;
+esac
+
+if [ -e "$DEFAULT" ]; then . "$DEFAULT"; fi
+. $FUNC_LIB
+
+. /etc/acpi/lib/notify.sh
+
+case "$1" in
+ # AC adapter present
+ false)
+ . /etc/acpi/lib/shengine.sh
+ if shengine_supported && [ "${SHENGINE_SETTING:-auto}" = auto ]; then
+ PWR_CLOCK_AC="${PWR_CLOCK_AC:-0}"
+ if [ $(get_shengine -) -gt "$PWR_CLOCK_AC" ]; then
+ handle_shengine "$PWR_CLOCK_AC" -
+ fi
+ fi
+ ;;
+
+ # AC adapter not present
+ true)
+ . /etc/acpi/lib/shengine.sh
+ if shengine_supported && [ "${SHENGINE_SETTING:-auto}" = auto ]; then
+ PWR_CLOCK_BATTERY="${PWR_CLOCK_BATTERY:-$(($SHENGINE_LIMIT - 1))}"
+ if [ $(get_shengine -) -lt "$PWR_CLOCK_BATTERY" ]; then
+ handle_shengine "$PWR_CLOCK_BATTERY" -
+ fi
+ fi
+ ;;
+
+esac
--
1.7.0.4
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iEYEARECAAYFAkvRsK4ACgkQ+AQB36CPPlrydQCglgh8SzOBOZtmpg10aVYb+9VP
7ZoAoKcqfb/nBzxy29v2KXnX4x7BolQH
=r+UC
-----END PGP SIGNATURE-----
More information about the Debian-eeepc-devel
mailing list