Package: acpi-support
Version: 0.109-5
Severity: normal
Tags: patch

Newer kernels have disabled the /proc interface to power management,
leaving only the /sys. However, the /etc/acpi/power.sh script makes a
decision about running the scripts in battery.d by looking for ac
adapters in /proc (this also affects the running of scripts in ac.d).

The patch below fixes it for me (but this is the first time I have ever
done anything with the /sys power interface, so I don't know how correct
the method for finding ac adapters is).

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.25-2-686 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages acpi-support depends on:
ii  acpi-support-base             0.109-5    scripts for handling base ACPI eve
ii  acpid                         1.0.6-10   Utilities for using ACPI power man
ii  dmidecode                     2.9-1      Dump Desktop Management Interface 
ii  finger                        0.17-12    user information lookup program
ii  hdparm                        8.9-1      tune hard disk parameters for high
ii  laptop-detect                 0.13.6     attempt to detect a laptop
ii  libc6                         2.7-12     GNU C Library: Shared libraries
ii  lsb-base                      3.2-15     Linux Standard Base 3.2 init scrip
ii  powermgmt-base                1.30       Common utils and configs for power
ii  vbetool                       1.0-3      run real-mode video BIOS code to a
ii  x11-xserver-utils             7.3+3      X server utilities

Versions of packages acpi-support recommends:
pn  dbus                          <none>     (no description available)
pn  hal                           <none>     (no description available)
ii  nvclock                       0.8b3-1    Allows you to overclock your nVidi
ii  pm-utils                      1.1.2.3-1  utilities and scripts for power ma
ii  radeontool                    1.5-5      utility to control ATI Radeon back
ii  toshset                       1.73-2     Access much of the Toshiba laptop 

Versions of packages acpi-support suggests:
pn  laptop-mode-tools             <none>     (no description available)

-- no debconf information
diff --git a/power.sh b/power.sh
index f14f7b4..ceba154 100755
--- a/power.sh
+++ b/power.sh
@@ -9,22 +9,27 @@ getState;
 
 checkStateChanged;
 
-for x in /proc/acpi/ac_adapter/*; do
-    if [ -d "$x" ] ; then    
-	    grep -q off-line $x/state
+ac_adapters() {
+    for x in /sys/class/power_supply/*; do
+	read type <$x/type
+	test "$type" = "Mains" && echo $x
+    done
+}
 
-	    if [ $? = 0 ] && [ x$1 != xstop ]; then	
-		for SCRIPT in /etc/acpi/battery.d/*.sh; do
-		    if [ -f $SCRIPT ] ; then
-		        . $SCRIPT
-		    fi
-		done
-	    else
-		for SCRIPT in /etc/acpi/ac.d/*.sh; do
-		    if [ -f $SCRIPT ] ; then
-		        . $SCRIPT
-		    fi
-		done
+for x in $(ac_adapters); do
+    grep -q 0 $x/online
+
+    if [ $? = 0 ] && [ x$1 != xstop ]; then
+	for SCRIPT in /etc/acpi/battery.d/*.sh; do
+	    if [ -f $SCRIPT ] ; then
+		. $SCRIPT
+	    fi
+	done
+    else
+	for SCRIPT in /etc/acpi/ac.d/*.sh; do
+	    if [ -f $SCRIPT ] ; then
+		. $SCRIPT
 	    fi
+	done
     fi
 done

Reply via email to