Q: How to measure and optimize embedded Linux power consumption?
Answer
Power measurement: use a precision shunt resistor (1-10 mOhm) + oscilloscope with current probe or a bench power supply with current measurement. Software tools: powertop shows per-process power draw. perf with PMU counters (perf stat -e power/…) on supported ARM SoCs. Kernel configs: CONFIG_CPU_FREQ (dynamic voltage/frequency scaling) CONFIG_SUSPEND. For SoCs with DVFS (i.MX AM335x RPi) use cpufreq-set -g powersave/performance/on-demand. Disable unused peripherals in the device tree (status = disabled). For deep sleep enable suspend-to-RAM (STR). Monitor with /sys/power/state and /proc/acpi/battery. For always-on devices target <500 mW total; for battery-powered always-on target <10 mW average. Use wakelocks judiciously - check /proc/wakelocks.
Filed under: FAQ
