Recently I’ve bought a laptop, Dell Inspiron 1525 with a T5750@2Ghz and a 9 cell battery.
I installed KDE4, plasma, desktop effects…it’s cool, really cool, but then I discovered powertop, a tool that is able to recommend some settings to make your CPU to awake less times every second. The tools shows yo a list of the tasks that are awaking the CPU so you can try to get a more power-efficent system.
It recomends you some actions to take, you just accept or not them, as set the SATA bus in low-power mode, USB autosuspend, set ondemand cpu freq governor, delay writing to the hard disc, etc…
I noted KDE4 is cool but not when you’re using the battery so I installed fluxbox and XFCE, both are nice, XFCE seems to wake up less the CPU, then I started to look for scripts and patchs to waste less energy.
So here are the tuning I’ve done to my laptop:
From http://ubuntuforums.org/showthread.php?t=847773
#!/bin/bash
# Go fast on AC power. Similar to default Ubuntu settings
if on_ac_power; then
# Set the drive to mostly stay awake
hdparm -B254 -M 254 /dev/sda
# Remount ext3 filesystems so the journal commit only happens every 60
# seconds. By default this is 5 but, I prefer to reduce the disk
# activity a bit.
mount -o remount,commit=60 /
mount -o remount,commit=60 /media/sda3
# Turn off the laptop mode disk optimization
echo 0 > /proc/sys/vm/laptop_mode
# Manually set the wifi driver to no power savings.
#echo 6 > /sys/bus/pci/drivers/iwl????/0000\:??\:00.0/power_level
# Set kernel dirty page value back to default
echo 10 > /proc/sys/vm/dirty_ratio
echo 5 > /proc/sys/vm/dirty_background_ratio
# Only wakeup every 60 seconds to see if we need to write dirty pages
# By default this is every 5 seconds but, I prefer 60 to reduce disk
# activity.
echo 6000 > /proc/sys/vm/dirty_writeback_centisecs
# Turn off sound card power savings
echo 0 > /sys/module/snd_hda_intel/parameters/power_save
# Set the SATA to max performance
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
# Make sure ondemand governor is set
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# Enable the webcam driver
# modprobe uvcvideo
else # Save power
# Set the disks to aggressively save power and use the lowest acoustic
# level. Note: Currently Firefox is very poorly behaved and some
# might find these settings too aggressive. If so, change “-S 4” to
# something larger like -S 24 (two minutes).
hdparm -B180 /dev/sda
#set the LCD bright to 60%
echo 60 > /proc/acpi/video/VID/LCD/brightness
# Change the ext3 commit times to 10 minutes. This reduces disk
# activity
mount -o remount,commit=600 /
# Set laptop disk write mode
echo 5 > /proc/sys/vm/laptop_mode
# Manually set the iwl3945 driver to power savings.
#echo 5 > /sys/bus/pci/drivers/iwl????/0000\:??\:00.0/power_level
# 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
# Set sound card power savings
echo 10 > /sys/module/snd_hda_intel/parameters/power_save
# Set SATA to minimum power
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
# Make sure ondemand governor is set
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# Remove the webcam driver
modprobe -r uvcvideo
modprobe -r sbp2
modprobe -r ieee1394
modprobe -r uvcvideo
modprobe -r videodev
modprobe -r v4l1_compat
modprobe -r compat_ioctl32
modprobe -r v4l2_common
fi
The script is commented, I only changed a few things from the original, it works fine, some drivers are able to set the hardware in low-power mode but it seems they don’t do by default, GNU/Linux seems to have to polish laptop distributions.
Powertop shows you the watts you’re currently using when the laptop is not connected to the AC, so I played with phc to undervolt the CPU, now I’m able to use less power for the CPU, this doesn’t decrease the performance.
You can use this tutorial http://ubuntuforums.org/showthread.php?t=786402 to get a kernel able to undervolt the cpu, you just have to replace a module.
My original settings are:
43 35 27 19
Now they are:
24 1 1 1
Powertop shows the laptop uses less energy now and the cpu is colder at high load.