Linux and Laptops: a long, old story. However, one that with a bit homework, helps get the most out of your battery. Using powertop, you can see your energy usage profile and your device power settings. The downside to powertop is that you cannot "export as shell script." (Seriously, y u no export?) To get these power savings on boot, I wrote my own script.
1 #!/bin/bash
2 /usr/sbin/rfkill block 0 #bt
3 /usr/sbin/rfkill block 1 #wifi
4 /usr/sbin/rfkill block 2 #bt
5 for i in /sys/class/scsi_host/host*/link_power_management_policy
6 do
7 echo "min_power" > $i
8 done
9 echo 0 > /proc/sys/kernel/nmi_watchdog
10 echo 1 > /sys/module/snd_hda_intel/parameters/power_save
11 echo 60000 > /proc/sys/vm/dirty_writeback_centisecs
12
13 find /sys/devices/ \
14 | grep 'power/control' \
15 | while read i
16 do
17 echo -n "$i@"
18 cat $i 2>/dev/nulll
19 done \
20 | grep -v auto \
21 | awk -F@ '{print $1}' > /tmp/sleepy.tmp
22
23 for i in `cat /tmp/sleepy.tmp`
24 do
25 echo "auto" > $i
26 done
27
28 for i in `find /sys -name autosuspend -exec echo {} \;`
29 do
30 echo "1" > $i
31 done
32
33 find /sys/devices/pci0000:00 -type f -iname autosuspend_delay_ms \
34 -exec echo "1000" > {} \;
35
36 for i in /sys/bus/usb/devices/usb*/power/autosuspend_delay_ms
37 do
38 echo "1000" > $i
39 done
40
41 for i in /sys/bus/usb/devices/usb*/power/autosuspend
42 do
43 echo "1" > $i
44 done
45
46 for i in /sys/bus/usb/devices/*/power/autosuspend
47 do
48 echo "1" > $i
49 done
50
51 webcamDev=$( lsusb | grep -i webcam | awk '{print $2 "-" $4 }' | tr -d ':0' )
52 if [ ! -z "$webcamDev" ]
53 then
54 echo 1 > /sys/bus/usb/devices/$webcamDev/power/autosuspend
55 echo auto > /sys/bus/usb/devices/$webcamDev/power/level
56 echo 1000 > /sys/bus/usb/devices/$webcamDev/power/autosuspend_delay_ms
57 fi
58
59 # eof
The best way to run this script is to open two windows, one running powertop, the other for this script. After adjusting this script, type r in the powertop window to refresh the device stats. I was able to take my T60 from 30.1W down to somewhere between 19.8 – 16.1W. Unfortunately, I haven’t seen that 16.1W reading since.
I hope this serves as a good starting point for your own laptop power savings! And not just laptops, but this script can also be used for home NAS or media center or other small servers where you need thermal management, too.