File laptop_mode.diff of Package laptop-mode-tools
Index: b/usr/sbin/laptop_mode
===================================================================
--- a/usr/sbin/laptop_mode
+++ b/usr/sbin/laptop_mode
@@ -369,14 +369,15 @@ if [ "$1" = "status" ] ; then
echo Laptop Mode Tools is NOT allowed to run: /var/run/laptop-mode-tools/enabled does not exist.
fi
echo
- STATFILES="/proc/sys/vm/laptop_mode /proc/apm /proc/pmu/info /proc/sys/vm/bdflush /proc/sys/vm/dirty_ratio /proc/sys/fs/xfs/age_buffer /proc/sys/fs/xfs/sync_interval /proc/sys/fs/xfs/lm_age_buffer /proc/sys/fs/xfs/lm_sync_interval /proc/sys/vm/pagebuf/lm_flush_age /proc/sys/fs/xfs/xfsbufd_centisecs /proc/sys/fs/xfs/xfssyncd_centisecs /proc/sys/vm/dirty_background_ratio /proc/sys/vm/dirty_expire_centisecs /proc/sys/fs/xfs/age_buffer/centisecs /proc/sys/vm/dirty_writeback_centisecs /sys/devices/system/cpu/*/cpufreq/cpuinfo_*_freq /sys/devices/system/cpu/*/cpufreq/scaling_governor /proc/acpi/button/lid/*/state /proc/acpi/ac_adapter/*/state /proc/acpi/battery/*/state /sys/class/power_supply/AC/online /sys/class/power_supply/*/state"
+# STATFILES="/proc/sys/vm/laptop_mode /proc/apm /proc/pmu/info /proc/sys/vm/bdflush /proc/sys/vm/dirty_ratio /proc/sys/fs/xfs/age_buffer /proc/sys/fs/xfs/sync_interval /proc/sys/fs/xfs/lm_age_buffer /proc/sys/fs/xfs/lm_sync_interval /proc/sys/vm/pagebuf/lm_flush_age /proc/sys/fs/xfs/xfsbufd_centisecs /proc/sys/fs/xfs/xfssyncd_centisecs /proc/sys/vm/dirty_background_ratio /proc/sys/vm/dirty_expire_centisecs /proc/sys/fs/xfs/age_buffer/centisecs /proc/sys/vm/dirty_writeback_centisecs /sys/devices/system/cpu/*/cpufreq/cpuinfo_*_freq /sys/devices/system/cpu/*/cpufreq/scaling_governor /proc/acpi/button/lid/*/state /proc/acpi/ac_adapter/*/state /proc/acpi/battery/*/state /sys/class/power_supply/AC/online /sys/class/power_supply/*/state"
+ STATFILES="/proc/sys/vm/laptop_mode /proc/apm /proc/pmu/info /proc/sys/vm/bdflush /proc/sys/vm/dirty_ratio /proc/sys/fs/xfs/age_buffer /proc/sys/fs/xfs/sync_interval /proc/sys/fs/xfs/lm_age_buffer /proc/sys/fs/xfs/lm_sync_interval /proc/sys/vm/pagebuf/lm_flush_age /proc/sys/fs/xfs/xfsbufd_centisecs /proc/sys/fs/xfs/xfssyncd_centisecs /proc/sys/vm/dirty_background_ratio /proc/sys/vm/dirty_expire_centisecs /proc/sys/fs/xfs/age_buffer/centisecs /proc/sys/vm/dirty_writeback_centisecs"
for THISFILE in $STATFILES ; do
if [ -e $THISFILE ] ; then
- echo $THISFILE:
+ echo -n $THISFILE:
if [ -r $THISFILE ] ; then
- cat $THISFILE | sed "s/^/ /"
+ sed "s/^/ /" $THISFILE
else
- echo " Not accessible, permission denied - $0 needs to be run as root."
+ echo " Not accessible, permission denied - $0 needs to be run as root."
fi
echo
fi
@@ -430,14 +431,15 @@ fi
INIT=0 # Display info in init script format?
FORCE=0 # Force reapplying the current state?
+FAKE_AC=""
while [ "$1" != "" ] ; do
case "$1" in
init) INIT=1 ;;
force) FORCE=1 ;;
# Old options. We always do "auto" for any option now, but
# we still have to accept the options.
- start) ;;
- stop) ;;
+ start) FORCE=1; FAKE_AC=0 ;;
+ stop) FORCE=1; FAKE_AC=1 ;;
auto) ;;
*) echo "Unrecognized option $1."
exit 1 ;;
@@ -456,50 +458,15 @@ if [ "$ENABLE_LAPTOP_MODE_ON_BATTERY" -e
fi
# Determine the power state.
-ON_AC=1
-
-if [ -f /sys/class/power_supply/AC/online ] ; then
- echo "Determining power state from /sys/class/power_supply/AC/online." >> $OUTPUT
- ON_AC=$(cat /sys/class/power_supply/AC/online)
-elif [ -d /proc/acpi/ac_adapter ] ; then
- echo "Determining power state from /proc/acpi/ac_adapter." >> $OUTPUT
- ADAPTERS_FOUND=0
- ON_AC=0
- for ADAPTER in /proc/acpi/ac_adapter/* ; do
- if [ -f $ADAPTER/state ] ; then
- ADAPTERS_FOUND=1
- STATUS=`awk '/^state: / { print $2 }' $ADAPTER/state`
- if [ "$STATUS" = "on-line" ] ; then
- ON_AC=1
- fi
- fi
- done
- if [ "$ADAPTERS_FOUND" -eq 0 ] ; then
- ON_AC=1
- fi
-elif [ -f /proc/apm ] ; then
- echo "Determining power state from /proc/apm." >> $OUTPUT
- read D1 D2 D3 APM_AC_STATE D0 </proc/apm
- if [ "$APM_AC_STATE" = "0x00" ] ; then
- ON_AC=0
- else
- ON_AC=1
- fi
-elif [ -f /proc/pmu/info ] ; then
- echo "Determining power state from /proc/pmu/info." >> $OUTPUT
- if ( grep "^AC Power.*0$" /proc/pmu/info ) ; then
- echo "/proc/pmu/info indicates absence of AC power." >> $OUTPUT
- ON_AC=0
- else
- # It is possible that there is no AC Power = 1 in the file,
- # but we always assume AC power when we're not sure.
- ON_AC=1
- echo "/proc/pmu/info indicates presence of AC power." >> $OUTPUT
- fi
+if on_ac_power; then
+ ON_AC=1
else
- echo "No /sys/class/power_supply, ACPI, APM or PMU power management information found -- assuming AC power is present." >> $OUTPUT
+ ON_AC=0
fi
+if [ -n "$FAKE_AC" ]; then
+ ON_AC=$FAKE_AC
+fi
# Determine whether to activate or deactivate laptop mode.
ACTIVATE=0