Battery charging thresholds disappeared

Hello everyone,

I am using Fedora 39 Silverblue on a Thinkpad. I have set my battery charging thresholds via

/sys/class/power_supply/BAT0/charge_control_end_threshold
/sys/class/power_supply/BAT0/charge_control_start_threshold

This has been working perfectly fine for many years. But after updating and rebooting the machine, those files have disappeared and I no longer have control over the battery charging thresholds. I can’t create the files because Silverblue uses a read-only filesystem. How do I fix this?

This is not Silverblue specific. Those are kernel files. It’s likely a kernel updates that created this issue. Do you have a working deployment and a failing one to compare?

You should likely file a bug for the kernel in Fedora’s Bugzilla.

No, I don’t have a working deployment to compare. There was a span of several weeks between when I last observed that the charging thresholds were being respected, and when I first noticed that the battery was up to 100%. This change could have happened anywhere in that time period and I only keep the second-most recent deployment around.

I am using f42 with gnome 48.2. It is my understanding that this functionality has been built in to the mainstream; but is somehow disabled for ‘unsupported hardware’.
Your post implies that you simply created those two files. Other posts imply that it’s one file with a specific syntax.
There is very little documentation at this time (May 30, 2025) for the built in function. I am curious if the charge threshold returned for you as a thinkpad should be on the supported list.

Still wondering if anyone knows a way to enable charge threshold functionality on a laptop NOT on the supported list. It’s probably down to differences in the BIOS. But I would appreciate any advice.

See: Charging Thresholds. This is based on Kernel.org ABI Testing sysfs-class-power. Here (Fedora 42 Workstation on a Dell laptop):

 ls -l /sys/class/power_supply/
total 0
lrwxrwxrwx. 1 root root 0 Jun 18 09:59 AC -> ../../devices/platform/ACPI0003:00/power_supply/AC
lrwxrwxrwx. 1 root root 0 Jun 18 09:59 BAT0 -> ../../devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0A:00/power_supply/BAT0

Maybe your Thinkpad aged out of the “supported” list.

Gnome Settings has a “Preserve Battery Health” option which is on, but this Dell Laptop is mostly on AC power and charges to 100%.

There are details in https://linuxconfig.org/using-custom-charge-thresholds-with-gnomes-preserve-battery-health-feature.

This Dell laptop claims to be “supported” and Gnome Settings Power Management Battery Charging has “Preserve Battery Health” set. I just tried letting it go below the lower threshold and plugged it in, but it has now charged to 100%:

% upower --dump                     
Device: /org/freedesktop/UPower/devices/battery_BAT0
  native-path:          BAT0
  vendor:               SMP
  model:                DELL DM3WC64
  serial:               3030
  power supply:         yes
  updated:              Fri 20 Jun 2025 04:14:04 PM (24 seconds ago)
  has history:          yes
  has statistics:       yes
  battery
    present:             yes
    rechargeable:        yes
    state:               fully-charged
    warning-level:       none
    energy:              22.7316 Wh
    energy-empty:        0 Wh
    energy-full:         22.7316 Wh
    energy-full-design:  60.002 Wh
    energy-rate:         0.0076 W
    voltage:             8.288 V
    charge-cycles:       N/A
    percentage:          100%
    capacity:            37.8847%
    technology:          lithium-polymer
    charge-start-threshold:        75%
    charge-end-threshold:          80%
    charge-threshold-enabled:      yes
    charge-threshold-supported:    yes
    icon-name:          'battery-full-charged-symbolic'

Device: /org/freedesktop/UPower/devices/line_power_AC
  native-path:          AC
  power supply:         yes
  updated:              Fri 20 Jun 2025 03:35:31 PM (2337 seconds ago)
  has history:          no
  has statistics:       no
  line-power
    warning-level:       none
    online:              yes
    icon-name:          'ac-adapter-symbolic'

Device: /org/freedesktop/UPower/devices/DisplayDevice
  power supply:         yes
  updated:              Fri 20 Jun 2025 03:36:01 PM (2307 seconds ago)
  has history:          no
  has statistics:       no
  battery
    present:             yes
    state:               fully-charged
    warning-level:       none
    energy:              22.7316 Wh
    energy-full:         22.7316 Wh
    energy-rate:         0.0076 W
    charge-cycles:       N/A
    percentage:          100%
    icon-name:          'battery-full-charged-symbolic'

Daemon:
  daemon-version:  1.90.9
  on-battery:      no
  lid-is-closed:   no
  lid-is-present:  yes
  critical-action: PowerOff