#!/bin/bash # Datei: /usr/local/sbin/batteriebetrieb # http://de.gentoo-wiki.com/Aktivieren_von_Stromsparfunktionen batteriebetrieb () { # disable not needed services /etc/init.d/rsyslog stop #/etc/init.d/setroubleshoot stop # Screen and graphics # Reduce screen brightness echo "37" > /proc/acpi/video/VGA/LCD/brightness # I've applied some power saving tricks from lesswatts.org # add these two lines to /etc/X11/xinit/xintrc (system wide) ~./.xintrc (user dependent) #/usr/bin/nvidia-settings -a GPU2DClockFreqs=100,100 #/usr/bin/nvidia-settings -a GPU3DClockFreqs=133,133 # Bluetooth # disable bluetooth # hciconfig hci0 down # rmmod hci_usb # CPU # Enable multi-core power saving tunables # configures the scheduler to use only one core if it doesn't need two /bin/echo 1 > /sys/devices/system/cpu/sched_mc_power_savings #ondemand/conservative erzeugt viele wakeups, set to powersave /usr/sbin/cpufreq-selector -g conservative #echo 1 > /proc/sys/vm/laptop_mode # SATA and CD/DVD # enable SATA ALPM link power management /bin/echo min_power > /sys/class/scsi_host/host0/link_power_management_policy /bin/echo min_power > /sys/class/scsi_host/host1/link_power_management_policy /bin/echo min_power > /sys/class/scsi_host/host2/link_power_management_policy # Decreases disk activity slightly echo 1500 > /proc/sys/vm/dirty_writeback_centisecs # Enabling the noatime filesystem option #/bin/mount -o remount/noatime / # Disable polling on CD-devices #hal-disable-polling --device /dev/scd0 # Audio # Enable audio power saving echo 5 > /sys/module/snd_hda_intel/parameters/power_save # Network # Enable wireless power saving #echo 5 > /sys/bus/pci/drivers/iwl3945/*/power_level #iwconfig wlan0 txpower 7 /sbin/ethtool -s eth0 wol d #/etc/init.d/undervolt start - if undervolting works for x86_64 # modules not needed on battery MODULE="r8169 i2c_algo_bit mii crc_ccitt pcspkr i2c_i801 " # unload not needed modules on battery ENTLADEVERSUCHE=3 for versuch in $ENTLADEVERSUCHE do for modul in $MODULE do /sbin/modprobe -r $modul done done } netzbetrieb () { /etc/init.d/rsyslog start #/etc/init.d/setroubleshoot start # Set screen brightness echo "81" > /proc/acpi/video/VGA/LCD/brightness # Decreases disk activity slightly echo 1500 > /proc/sys/vm/dirty_writeback_centisecs # Enable multi-core power saving tunables # configures the scheduler to use only one core if it doesn't need two /bin/echo 1 > /sys/devices/system/cpu/sched_mc_power_savings # Enable audio power saving echo 5 > /sys/module/snd_hda_intel/parameters/power_save # enable SATA ALPM link power management /bin/echo min_power > /sys/class/scsi_host/host0/link_power_management_policy # Enable wireless power saving #echo 1 > /sys/bus/pci/drivers/iwl3945/*/power_level #/sbin/iwconfig wlan0 txpower 25mW #/sbin/iwconfig ath0 txpower 25mW /sbin/ethtool -s eth0 wol d /usr/sbin/cpufreq-selector -g ondemand #/etc/init.d/undervolt stop # modules to load on wall-power MODULE="r8169 i2c_algo_bit mii crc_ccitt pcspkr i2c_i801 " # Load the modules on wall-power LADEVERSUCHE=3 for versuch in $LADEVERSUCHE do for modul in $MODULE do /sbin/modprobe $modul done done } if [ "`basename $0`" == "batteriebetrieb" ];then if [ "$1" == "stop" ]; then netzbetrieb; else batteriebetrieb;fi elif [ "`basename $0`" == "netzbetrieb" ];then if [ "$1" == "stop" ]; then batteriebetrieb; else netzbetrieb;fi fi