| Building & Installing PowerTOP |
| ------------------------------ |
| |
| To build and install PowerTOP type the following commands, |
| ./configure |
| ./make |
| ./make install |
| |
| Note: For Android (running Intel Architecture ) there is a Android.mk |
| that was provided by community members, and at this time is supported |
| mostly by community members. |
| |
| Build dependencies |
| ------------------ |
| |
| PowerTOP uses C++, and expects g++ and libstdc++ to be functional |
| along with a glibc/pthreadsi, autoconf, automake, and libtool in the |
| development environment. |
| |
| |
| in addition to that, PowerTOP requires the following components: |
| |
| pciutils-devel (is only required if you have PCI) |
| ncurses-devel (required) |
| libnl-devel (required) |
| kernel version => 2.6.38 |
| |
| Kernel Parameters: |
| ------------------ |
| |
| PowerTOP needs some kernel config options enabled in order function properly. |
| As of linux-3.3.0 these are (list probably incomplete): |
| |
| CONFIG_NO_HZ |
| CONFIG_HIGH_RES_TIMERS |
| CONFIG_HPET_TIMER |
| CONFIG_CPU_FREQ_GOV_ONDEMAND |
| CONFIG_USB_SUSPEND |
| CONFIG_SND_AC97_POWER_SAVE |
| CONFIG_TIMER_STATS |
| CONFIG_PERF_EVENTS |
| CONFIG_PERF_COUNTERS |
| CONFIG_TRACEPOINTS |
| CONFIG_TRACING |
| CONFIG_EVENT_POWER_TRACING_DEPRECATED |
| ACPI_PROCFS_POWER |
| |
| The patches in the patches/ sub-directory are required for PowerTOP to function |
| fully. |
| |
| |
| |
| Outputting a report |
| ------------------- |
| When invoking PowerTOP without arguments, PowerTOP starts in interactive mode. |
| However, for reporting bugs etc there is a special reporting modes: |
| |
| For an HTML formatted report simply execute PowerTOP with the following, |
| |
| powertop --html |
| |
| which will create a "powertop.html" file which is static and can be sent to |
| others to help diagnose power issues. Additionally has the feature of showing |
| the tunables executions withing the report as a reference. |
| |
| Note for the developers: If you make changes on the report format please |
| make sure that the output can be cleanly validated by the W3C Markup |
| Validation Service and W3C CSS Validation Service: |
| * http://validator.w3.org/#validate_by_upload |
| * http://jigsaw.w3.org/css-validator/#validate_by_upload |
| |
| For a CSV formatted report, simply execute PowerTOP with the following, |
| |
| Powertop --csv |
| |
| which will create a “powertop.csv” file which is static and can be used in |
| reporting, diagnoses, and analytical data analysis. |
| |
| Also you can set the number of iterations, and duration of test, in which case |
| all reports will time stamp for you. |
| |
| Calibrating & Power Numbers |
| --------------------------- |
| PowerTOP will, when running on battery, track your power consumption as well |
| as your activity on the system. Once there are sufficient such measurements, |
| PowerTOP can start to report power estimates for various activities. |
| You can help get this estimation more accurate by running a calibration |
| cycle: |
| |
| powertop --calibrate |
| |
| at least once; this will cycle through various display brightness levels |
| (including "off") as well as USB device activities and some other workloads. |
| |
| |
| Code from other open source projects |
| ------------------------------------ |
| PowerTOP contains some code from other open source projects; we'd like to |
| thank the authors of those projects for their work. |
| Specifically PowerTOP contains code from |
| |
| Parse Event Library - Copyright 2009, 2010 Red Hat Inc Steven Rosted <srostedt@redhat.com> |
| nl80211 userspace tool - Copyright 2007, 2008 Johannes Berg <johannes@sipsolutions.net> |
| |
| |
| Extech Power Analyzer / Datalogger support |
| ------------------------------------------ |
| I use, and our analysis teams use, the Extech Power Analyzer/Datalogger |
| (model number 380803) quite a lot, and PowerTOP supports using this |
| device over the serial cable. Just pass the device node on the command line |
| like this |
| |
| powertop --extech=/dev/ttyUSB0 |
| |
| (where ttyUSB0 is the devicenode of the serial-to-usb adapter on my system) |
| |