Runtime Power Management
Most postmarketOS devices running the mainline kernel lack runtime power management. Runtime power management allows battery savings when the device is in use.
Check if Runtime PM is enabled
- Check if enabled:
/sys/bus/*/devices/*/power/runtime_enabled
- Check status:
/sys/bus/*/devices/*/power/runtime_status
Tooling
- Intel's Powertop
- USB-C powermeter
/sysfs
interface- Schematics
Unused devices
GPU, USB hubs, etc. are power hungry, make sure they are properly suspended. You might also want to make it suspend faster than the default.
Voltage
Reducing the voltage to the minimum also helps a lot to save power and reduce heat. Check all regulators and turn them towards the lower end of what is allowed.
You can check the power domains in /sys/kernel/debug
and make sure they are really off when the device is unused.
Devfreq
- CPU frequency scaling
- DRAM frequency scaling
Troubleshooting
When you experience a lot of hangs make sure:
- Regulators used by other components are not turned off until all the components using this regulator are suspended.
- Check the ramp delays of regulators to make sure they have enough time to stabilize