##################
##/etc/acpi/scripts/ac-power.sh
##################
#!/bin/bash
POWER_STATE=$(cat /proc/acpi/ac_adapter/AC/state | tr -s " " | cut -d" " -f2)
LID_STATE=$(cat /proc/acpi/button/lid/LID/state | tr -s " " | cut -d" " -f2)
case "$POWER_STATE" in
on-line)
if [ "$LID_STATE" = "open" ]; then
echo "[ac-power=on] [lid=open] setting cpu in 'performance' mode" | logger -t "acpi"
echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
else
echo "[ac-power=on] [lid=closed] setting cpu in 'powersave' mode" | logger -t "acpi"
echo "powersave" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
fi
;;
off-line)
echo "[ac-power=off] setting cpu in 'powersave' mode" | logger -t "acpi"
echo "powersave" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
;;
*)
echo "[ac-power=error] unknown power state" | logger -t "acpi"
;;
esac
##################
##/etc/acpi/scripts/lid.sh
##################
#!/bin/bash
POWER_STATE=$(cat /proc/acpi/ac_adapter/AC/state | tr -s " " | cut -d" " -f2)
LID_STATE=$(cat /proc/acpi/button/lid/LID/state | tr -s " " | cut -d" " -f2)
case "$LID_STATE" in
open)
if [ "$POWER_STATE" = "on-line" ]; then
echo "[lid=open] [ac-power=on] setting cpu in 'performance' mode" | logger -t "acpi"
echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
else
echo "[lid=open] [ac-power=off] setting cpu in 'powersave' mode" | logger -t "acpi"
echo "powersave" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
fi
;;
closed)
echo "[lid=closed] setting cpu in 'powersave' mode" | logger -t "acpi"
echo "powersave" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
;;
*)
echo "[lid=error] unknown lid state" | logger -t "acpi"
;;
esac
##################
##/etc/acpi/scripts/powerbtn.sh
##################
#!/bin/sh
# /etc/acpi/powerbtn.sh
# Initiates a shutdown when the power putton has been
# pressed.
if ps -Af | grep -q '[k]desktop' && test -f /usr/bin/dcop
then
dcop --all-sessions --all-users ksmserver ksmserver logout 0 2 0 && exit 0
else
/sbin/shutdown -h now "Power button pressed"
fi
##################
##/etc/acpi/events/lid
##################
event=button/lid
action=/etc/acpi/scripts/lid.sh
##################
##/etc/acpi/events/powerbtn
##################
# /etc/acpi/events/powerbtn
# This is called when the user presses the power button and calls
# /etc/acpi/powerbtn.sh for further processing.
# Optionally you can specify the placeholder %e. It will pass
# through the whole kernel event message to the program you've
# specified.
# We need to react on "button power.*" and "button/power.*" because
# of kernel changes.
event=button[ /]power
action=/etc/acpi/scripts/powerbtn.sh
##################
##/etc/acpi/events/ac-power
##################
event=battery[ ]BAT
action=/etc/acpi/scripts/ac-power.sh
donc ça gère le couvercle et ça écrit les évenements dans /var/log/messages !
M.
ce bout de code est sous licence Ms-RL ;)
# pareil mais avec acpid et d'autres trucs
Posté par kolter (site web personnel, Mastodon) . En réponse au journal Petit script pour gerer cpu_freq au demarrage de mon laptop.. Évalué à 3.