выкладываю свой скрипт /etc/acpi/power.sh
#!/bin/sh
#begin my code
if on_ac_power; then
echo 0 > /proc/sys/vm/laptop_mode
echo 10 > /proc/sys/vm/dirty_ratio
echo 5 > /proc/sys/vm/dirty_background_ratio
echo 6000 > /proc/sys/vm/dirty_writeback_centisecs
echo 0 > /sys/module/snd_hda_intel/parameters/power_save
echo max_performance > /sys/class/scsi_host/host0/link_power_management_policy
echo max_performance > /sys/class/scsi_host/host1/link_power_management_policy
echo max_performance > /sys/class/scsi_host/host2/link_power_management_policy
echo max_performance > /sys/class/scsi_host/host3/link_power_management_policy
echo max_performance > /sys/class/scsi_host/host4/link_power_management_policy
echo max_performance > /sys/class/scsi_host/host5/link_power_management_policy
echo max_performance > /sys/class/scsi_host/host6/link_power_management_policy
echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo conservative > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo conservative > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo conservative > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
modprobe uvcvideo
echo default > /sys/module/pcie_aspm/parameters/policy
echo 10 > /sys/devices/pci0000:00/0000:00:02.0/backlight/acpi_video1/brightness
hal-disable-polling --enable-polling --device /dev/cdrom
echo on > /sys/bus/pci/devices/*/power/control
echo on > /sys/bus/i2c/devices/i2c-*/power/control
echo 0 > /sys/module/i915/parameters/powersave
# Turn off the laptop mode disk optimization
echo 0 > /proc/sys/vm/laptop_mode
echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource
# enable logging
service rsyslog start
#notify
MSGH="AC"
MSGT="Maximum Performance Mode"
MSGI="ac-adapter"
echo 2401000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 2401000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
echo 2401000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
echo 2401000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
echo 0 > /sys/devices/system/cpu/sched_mc_power_savings
else
echo 5 > /proc/sys/vm/laptop_mode
echo 90 > /proc/sys/vm/dirty_ratio
echo 1 > /proc/sys/vm/dirty_background_ratio
echo 60000 > /proc/sys/vm/dirty_writeback_centisecs
echo 10 > /sys/module/snd_hda_intel/parameters/power_save
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy
echo min_power > /sys/class/scsi_host/host1/link_power_management_policy
echo min_power > /sys/class/scsi_host/host2/link_power_management_policy
echo min_power > /sys/class/scsi_host/host3/link_power_management_policy
echo min_power > /sys/class/scsi_host/host4/link_power_management_policy
echo min_power > /sys/class/scsi_host/host5/link_power_management_policy
echo min_power > /sys/class/scsi_host/host6/link_power_management_policy
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo ondemand > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo ondemand > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo ondemand > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
modprobe -r uvcvideo
# Powersave pci express
echo powersave > /sys/module/pcie_aspm/parameters/policy
echo 5 > /sys/devices/pci0000:00/0000:00:02.0/backlight/acpi_video1/brightness #что соответсвует 50%
hal-disable-polling --device /dev/cdrom
echo auto > /sys/bus/pci/devices/*/power/control
echo auto > /sys/bus/i2c/devices/i2c-*/power/control
echo 1 > /sys/module/i915/parameters/powersave
# Set laptop disk write mode
echo 5 > /proc/sys/vm/laptop_mode
echo hpet > /sys/devices/system/clocksource/clocksource0/current_clocksource
# disable logging
service rsyslog stop
#notify
MSGH="BATT"
MSGT="Battery Power Saving"
MSGI="battery"
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
echo 2000000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
echo 1600000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
echo 1600000 > /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
echo 1 > /sys/devices/system/cpu/sched_mc_power_savings
fi
vUSER=`ps -C gnome-session -o user=` #find UID user who start gnome-session
vPIDS=`pgrep -u $vUSER gnome-session` #find PID
for PID in $vPIDS; do
vDBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ \
| sed -e 's/DBUS_SESSION_BUS_ADDRESS=//')
DBUS_SESSION_BUS_ADDRESS=$vDBUS_SESSION_BUS_ADDRESS DISPLAY=:0.0 sudo -u $vUSER notify-send "$MSGH" "$MSGT" -i "$MSGI"
done
#end my code
test -f /usr/share/acpi-support/key-constants || exit 0
. /usr/share/acpi-support/policy-funcs
if [ -z "$*" ] && ( [ `CheckPolicy` = 0 ] || CheckUPowerPolicy ); then
exit;
fi
pm-powersave $*
также выложу часть кода /etc/defaults/grub
GRUB_CMDLINE_LINUX="i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 pcie_aspm=powersave quiet splash"
единственное в моем скрипте я не делал сетевые настройки (изменение скорости интерфейса а также настройка wi-fi для энергосбережения). не решился останавливать жесткий диск...подозреваю, что это негативно отразиться на быстродействии.
Пользователь решил продолжить мысль 25 Марта 2012, 21:57:56:
небольшое пояснение:
echo 2401000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq - при работе от сети выставляется максимально возможная частота моего процессора.
echo 1600000 > /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq - при работе от батареи у одного ядра пониженная максимальная частота.
чуть не забыл. мой бук: Asus K53S серии
после дополнения кода в файл power.sh, сделать: sudo chmod +x /etc/acpi/power.sh
надеюсь будет кому-то полезно