Difference between revisions of "PinePhone Power Management"
| (2 intermediate revisions by the same user not shown) | |||
| Line 9: | Line 9: | ||
The above can be automatically executed every few minutes as a systemd daemon or via cron. This is an example of a systemd timer: | The above can be automatically executed every few minutes as a systemd daemon or via cron. This is an example of a systemd timer: | ||
| − | + | ==== /usr/local/sbin/powermax ==== | |
| + | <syntaxhighlight lang="bash"> | ||
| + | #!/bin/bash | ||
FONLINE=/sys/class/power_supply/axp20x-usb/online | FONLINE=/sys/class/power_supply/axp20x-usb/online | ||
FLIMIT=/sys/class/power_supply/axp20x-usb/input_current_limit | FLIMIT=/sys/class/power_supply/axp20x-usb/input_current_limit | ||
| Line 18: | Line 20: | ||
echo 900000 > $FLIMIT | echo 900000 > $FLIMIT | ||
fi | fi | ||
| − | </ | + | </syntaxhighlight> |
| + | ==== /etc/systemd/system/... ==== | ||
{{codeblock|title=/etc/systemd/system/powermax.service|1=[Unit] | {{codeblock|title=/etc/systemd/system/powermax.service|1=[Unit] | ||
Description=Powermax | Description=Powermax | ||
| Line 29: | Line 32: | ||
Description=Powermax | Description=Powermax | ||
[Timer] | [Timer] | ||
| − | OnUnitActiveSec= | + | OnBootSec=1min |
| − | [ | + | OnUnitActiveSec=2min |
| + | [Install] | ||
WantedBy=timers.target}} | WantedBy=timers.target}} | ||
| + | ==== Activation ==== | ||
{{codeblock|1=systemctl daemon-reload | {{codeblock|1=systemctl daemon-reload | ||
systemctl enable powermax.timer}} | systemctl enable powermax.timer}} | ||
Latest revision as of 19:52, 14 September 2020
How to handle power management on PinePhone.
Contents
Input Current Limit
By default the AXP803 limits the input current to 500 mA which is way too low to use the phone and charge it. It is possible to manually increase this limit (assuming the power source can handle it):
echo 900000 > /sys/class/power_supply/axp20x-usb/input_current_limit
Current Fixing Daemon
The above can be automatically executed every few minutes as a systemd daemon or via cron. This is an example of a systemd timer:
/usr/local/sbin/powermax
#!/bin/bash
FONLINE=/sys/class/power_supply/axp20x-usb/online
FLIMIT=/sys/class/power_supply/axp20x-usb/input_current_limit
if [[ `cat $FONLINE` -eq 0 ]]; then
return 0;
fi
if [[ `cat $FLIMIT` -eq 500000 ]]; then
echo 900000 > $FLIMIT
fi
/etc/systemd/system/...
/etc/systemd/system/powermax.service[Unit]
Description=Powermax
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/powermax
/etc/systemd/system/powermax.timer[Unit]
Description=Powermax
[Timer]
OnBootSec=1min
OnUnitActiveSec=2min
[Install]
WantedBy=timers.target
Activation
systemctl daemon-reload
systemctl enable powermax.timer
Related
External Links
- xnux.eu