2012. szeptember 3., hétfő

HP4530s Linux - További fogyasztás csökkentés


Ahogy egy korábbi cikkemben már írtam, a Linux rendszer néhány hardverközeli finomhangolásával további fogyasztást csökkentést érhetünk el. Így ezzel a laptopunk töltőmentes üzemidejének hosszát is meghosszabbíthatjuk.
Az írásomban leírtakat egy HP 4530S notebookon végeztem el Crunchbang Linux operációs rendszeren. Egyes paramétereket más gép és rendszer esetében meg kell változtatunk, máshol újabb energiaspórolási lehetőségek is léteznek, de alapvetően más környezetben is használható a szkript, melyet főként még az Ubuntu-s időmből mentettem át. Azóta sokat fejlődött a szkript, méréseim szerint körülbelül további 2W-ot lehet megspórolni vele, amely önmagában nem sok, de a korábbi cikkemmel együtt alkalmazva már nem is olyan elhanyagolható fogyasztás csökkentés.

Először is telepítsük fel a pm-utils csomagot:
sudo apt-get install pm-utils
majd hozzuk létre és tegyük futtathatóvá a szkriptünket, amely automatikus hálózati töltő csatlakozásakor, vagy kihúzásakor fog lefutni:
sudo touch /etc/pm/power.d/99-savings
sudo chmod +x /etc/pm/power.d/99-savings
sudo gedit /etc/pm/power.d/99-savings
 A megnyíló Gedit-be illesszük be a következő power.d szkriptet:
ac_power()
{
# Enable wake on lan
ethtool -s eth0 wol g

# Remount filesystems so the journal commit only happens every 30
# seconds.  By default this is 5 but, I prefer to reduce the disk
# activity a bit.
mount -o remount,commit=30,atime,diratime /
mount -o remount,commit=30,atime,diratime /home

# Set the Intel wifi to no power savings.
iwconfig wlan0 power off

# Turn Bluetooth on
modprobe bluetooth
hciconfig hci0 up

# Set kernel dirty page value back to default
echo 10 > /proc/sys/vm/dirty_ratio
echo 5 > /proc/sys/vm/dirty_background_ratio
echo 600 > /proc/sys/vm/dirty_writeback_centisecs

# Disable powersaving on disk
hdparm -B 255 -S 244 /dev/sda
 
# Turn swap on
swapon -a
 
# Turn laptop mode off
echo 0 > /proc/sys/vm/laptop_mode
 
# Turn nmi watchdog on
#echo 1 > /proc/sys/kernel/nmi_watchdog
 
# Disable powersaving on soundcard (AC97)
#echo 0 > /sys/module/snd_ac97_codec/parameters/power_save
# Disable powersaving on soundcard (HDA)
echo 0 > /sys/module/snd_hda_intel/parameters/power_save 
echo N > /sys/module/snd_hda_intel/parameters/power_save_controller

# Disable CD polling
hal-disable-polling --device /dev/scd0 --enable-polling

# Disable SATA power saving
for i in /sys/class/scsi_host/host*/link_power_management_policy; do echo max_performance > $i; done

# Change cpu mode to ondemand
for i in /sys/devices/system/cpu/*/cpufreq/scaling_governor; do echo ondemand > $i; done

# Disable PCI power saving
for i in /sys/bus/pci/devices/*/power/control; do echo on > $i; done
}

battery_power()
{
# Disable wake on lan
ethtool -s eth0 wol d

# Change the filesystem commit times to 10 minutes.  This reduces disk
# activity
mount -o remount,commit=600,noatime,nodiratime /
mount -o remount,commit=600,noatime,nodiratime /home

# Set the intel wlan to save power
iwconfig wlan0 power on

# Turn Bluetooth off
hciconfig hci0 down
rmmod bluetooth

# Reduce disk activity by waiting up to 10 minutes before doing writes
echo 90 > /proc/sys/vm/dirty_ratio
echo 1 > /proc/sys/vm/dirty_background_ratio
echo 60000 > /proc/sys/vm/dirty_writeback_centisecs
 
# Put down the controller when not in use
echo 10 > /sys/module/snd_hda_intel/parameters/power_save
echo Y > /sys/module/snd_hda_intel/parameters/power_save_controller
 
# Enable powersaving on disk after 60 second
hdparm -B 1 -S 12 /dev/sda
 
# Turn swap off
swapoff -a
 
# Turn laptop mode on
echo 5 > /proc/sys/vm/laptop_mode
 
# Turn nmi watchdog off
#echo 0 > /proc/sys/kernel/nmi_watchdog
 
# Turn soundcard off when not in use (AC97)
#echo 1 > /sys/module/snd_ac97_codec/parameters/power_save
#echo 1 > /dev/dsp
# Turn soundcard off when not in use (HDA)
echo 10 > /sys/module/snd_hda_intel/parameters/power_save
 
# Disable CD polling
hal-disable-polling --device /dev/scd0

# Enable SATA power saving
for i in /sys/class/scsi_host/host*/link_power_management_policy; do echo min_power > $i; done

# Change CPU frequency governor to powersave
for i in /sys/devices/system/cpu/*/cpufreq/scaling_governor; do echo powersave > $i; done

# Enable PCI power saving
for i in /sys/bus/pci/devices/*/power/control; do echo auto > $i; done

# Enable USB power saving
for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 2 > $i; done
for i in /sys/bus/usb/devices/*/power/level; do echo auto > $i; done
}

case "$1" in
    false) ac_power ;;
    true) battery_power ;;
esac
 Mentsük el a változásokat, lépjünk ki a Gedit-ből és ezzel már csökkentettük is laptunk fogyasztását! További fogyasztás csökkentő lehetőségekről is írok majd még a jövőben; legközelebb egy SSD meghajtó vásárlását tűztem ki célul az eredményekről szintén beszámolok majd. :)

LessWatts.org

Nincsenek megjegyzések:

Megjegyzés küldése