Thanks, brokenman -- your input on the switcheroo (and in testing anything I'm able to come up with) will be greatly appreciated
I don't have a lot of good news so far this morning -- I recompiled the kernel yesterday to implement some of the kernel options that were suggested online and by powertop. However, some of those options were not available in the configs for 2.6.38, so I need more up-to-date information. Powertop can't provide me with much info because it's based on an older kernel. I don't see any development happening on that project over the last year.
My new kernel doesn't offer any power savings that I can find -- but it might be giving more reporting functions (which powertop can't read, but maybe I can find a way!).
I'm going through more links today and will try some things out. Some notes for now:
My lcd backlight is a major power-suck. It defaults to around 50% when I startup Porteus. That uses about 5 extra watts vs turning off the backlight. Of course, I can't exactly work without seeing my screen...
Powertop implements a function to autosuspend noninput USB devices. This actually seems to save me 3 watts or so. I've poked through the source code for this action a little bit, and it appears to be going into /sys/bus/usb/devices, and for each usb device that is not an input device, it goes in to usb*/power and adds a file called 'control' containing the text 'auto'. If I knew how to script better, I might be able to write something up to do this at startup...maybe this will be impetus for me to learn how to script.
I burned WattOS to a CD last night. It doesn't seem to offer a substantial power savings over Porteus, but powertop functions better within it. Maybe my system is already pretty efficient and I'm grasping at straws here, lol. Interestingly enough, the WattOS ISO is about twice the size of Porteus, runs LXDE, and seems to have far fewer applications available...one more reason to love Porteus
Ok, time to get back to testing...I need to figure out how to turn off my hard drive
For posterity's sake, here's my changelog for the kernel config:
Code: Select all
Old:
CONFIG_PM_DEBUG is not set
New:
CONFIG_PM_DEBUG=y
CONFIG_PM_ADVANCED_DEBUG=y
CONFIG_PM_VERBOSE=y
CONFIG_CAN_PM_TRACE=y
CONFIG_PM_TRACE=y
CONFIG_PM_TRACE_RTC=y
Added line:
# CONFIG_PM_SLEEP_ADVANCED_DEBUG is not set
Old:
CONFIG_ACPI_BATTERY=m
New:
CONFIG_ACPI_BATTERY=y
Old:
#CONFIG_ACPI_DEBUG is not set
New:
CONFIG_ACPI_DEBUG=y
CONFIG_ACPI_DEBUG_FUNC_TRACE=y
Old:
# CONFIG_CPU_FREQ_DEBUG is not set
CONFIG_CPU_FREQ_STAT=m
New:
CONFIG_CPU_FREQ_DEBUG=y
CONFIG_CPU_FREQ_STAT=y
Old:
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
New:
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
(no change to CONFIG_CPU_FREQ_GOV_ONDEMAND)
Old:
#CONFIG_PCIEASPM_DEBUG is not set
New:
CONFIG_PCIEASPM_DEBUG=y
Posted after 3 hours 3 minutes 51 second:
Yet another update -- I think I was wrong about not being able to set CONFIG_TIMER_STATS...I kept looking for that in the config file, when I should have been looking for CONFIG_DEBUG_KERNEL, which was not set. I'm going to set that in my config and recompile the kernel...unfortunately, I don't have enough time for that right now. That should help me out a lot!
Also, I tried the ZEN kernel, as compiled by beny. at first, it didn't work with nouveau, so I ran it with vesa. It's power consumption was about the same. Then, I added the nVidia proprietary driver, and everything fired up. And, in fact, it uses 2 or 3 fewer watts than my old configuration!
Posted after 21 hour 29 minutes 19 seconds:
Some more good news this morning -- I found out that PowerTOP is being actively developed and they're working on a new 2.0 release. Just yesterday, they released 12 new patches for their beta release. I've compiled their beta (aka 1.98), which had some errors out of 'make install' but still seems to run (but I'm not sure if it's fully functional). This release will allow users to send output from the program to an html document that gives tons of information -- it's pretty cool. However, I haven't found a way to implement their suggestions (such as autosuspending non-input USB's) so for the time being, I'm running both versions of PowerTOP at the same time. tee hee.
I also was able to compile a kernel with CONFIG_DEBUG_KERNEL and CONFIG_TIMER_STATS, which gives a lot more info (in Powertop1, at least) about processes and devices that are consuming power. I found some example kernel configs, and I think that our kernel from V1.0 (I'm using 64-bit for all of this) will work with only the above two options enabled, with some of the existing modules modprobed by the users. I'll keep tooling around with the config (though I am getting a little tired of the 90-minute kernel compile sessions!)
I confirmed that adding the nVidia driver instead of nouveau saves power with both the vanilla and ZEN kernels (on my machine at least -- ymmv). On my system, nVidia makes all of the font much larger and bold, which I don't like, because it makes all of the windows, esp consoles) open up larger -- I'll see if I can modify that for my own happiness (if anyone has any quick ideas for that, I'm all ears).
All told at this point -- By reducing my backlight from ~57% (default) to ~28% (what I can read indoors as long as the sun isn't shining in), using the nVidia graphics driver, and autosuspending my USB devices, I have gotten my power consumption to go down from ~25 Watts to ~16-17 Watts when my system is idling. This corresponds to about a 50% increase in battery lifetime.
Because all systems will have different power wasters, my HOWTO will probably wind up being about installing and using powertop (I'll provide a module), and once I get the kernel config sorted out, I'll make recommendations to the developers for use in the V1.1 kernel.