I.
I’ve been dealing with an error, described in the Librem 5 docs, where the phone won’t boot when the battery level is insufficient.
I’m guessing here, but I think the cause is that my L5 may have been running when I thought I had completely powered it off. [And I had just fully charged it prior to that.] This is not the first time that has happened. I’ve never seen the flashing green LED before, but I recently updated the battery firmware from an incorrect version, so maybe that’s why I now get the warning LED.
I followed the recovery instructions in the docs, but still couldn’t boot, even after many hours of trickle charging. I eventually triedjumpdrive to see if I could mount the phone’s internal storage on my laptop, and succeeded… but only for a few seconds before it went blank.
I then reconnected the phone to an electric outlet and got it to start charging normally again.
II.
I want to prevent any near-total battery drain from happening in the future, so here’s what I’ve done… and @dos or anyone, please chime in if you think this is a bad idea:
First, I made a backup of /etc/UPower/UPower.conf, then made a couple of adjustments to the default settings:
purism@pureos:~$ sudo nano /etc/UPower/UPower.conf
Default version:
# Only the system vendor should modify this file, ordinary users
# should not have to change anything.
[UPower]
# Enable the Watts Up Pro device.
#
# The Watts Up Pro contains a generic FTDI USB device without a specific
# vendor and product ID. When we probe for WUP devices, we can cause
# the user to get a perplexing "Device or resource busy" error when
# attempting to use their non-WUP device.
#
# The generic FTDI device is known to also be used on:
#
# - Sparkfun FT232 breakout board
# - Parallax Propeller
#
# default=false
EnableWattsUpPro=false
# Don't poll the kernel for battery level changes.
#
# Some hardware will send us battery level changes through
# events, rather than us having to poll for it. This option
# allows disabling polling for hardware that sends out events.
#
# default=false
NoPollBatteries=false
# Do we ignore the lid state
#
# Some laptops are broken. The lid state is either inverted, or stuck
# on or off. We can't do much to fix these problems, but this is a way
# for users to make the laptop panel vanish, a state that might be used
# by a couple of user-space daemons. On Linux systems, see also
# logind.conf(5).
#
# default=false
IgnoreLid=false
# Policy for warnings and action based on battery levels
#
# Whether battery percentage based policy should be used. The default
# is to use the time left, change to true to use the percentage, which
# should work around broken firmwares. It is also more reliable than
# the time left (frantically saving all your files is going to use more
# battery than letting it rest for example).
# default=true
UsePercentageForPolicy=true
# When UsePercentageForPolicy is true, the levels at which UPower will
# consider the battery low, critical, or take action for the critical
# battery level.
#
# This will also be used for batteries which don't have time information
# such as that of peripherals.
#
# If any value is invalid, or not in descending order, the defaults
# will be used.
#
# Defaults:
# PercentageLow=20
# PercentageCritical=5
# PercentageAction=2
PercentageLow=20
PercentageCritical=5
PercentageAction=2
# When UsePercentageForPolicy is false, the time remaining in seconds at
# which UPower will consider the battery low, critical, or take action for
# the critical battery level.
#
# If any value is invalid, or not in descending order, the defaults
# will be used.
#
# Defaults:
# TimeLow=1200
# TimeCritical=300
# TimeAction=120
TimeLow=1200
TimeCritical=300
TimeAction=120
# The action to take when "TimeAction" or "PercentageAction" above has been
# reached for the batteries (UPS or laptop batteries) supplying the computer
#
# Possible values are:
# PowerOff
# Hibernate
# HybridSleep
#
# If HybridSleep isn't available, Hibernate will be used
# If Hibernate isn't available, PowerOff will be used
CriticalPowerAction=HybridSleep
Then I made the following changes (in bold):
PercentageLow=20
PercentageCritical=15
PercentageAction=13
and:
CriticalPowerAction=PowerOff
===
Hopefully that will preserve at least enough charge for booting, by shutting down before the battery drains to a critically low level.