Thinkpad not charging, when Fedora is running

I have run into a weird problem, that I can’t solve myself.

I have been running Fedora for half a year now. The battery charging does not work correctly anymore:

  • Fedora will only charge a few seconds/minute and then stops
  • it is stuck in “pending-charge”

I figured either a faulty charger or a faulty USB-c or a faulty battery.

I replaced charger (original lenovo) and battery (third-party). Same behavior.

Fedora charges for a second and then stops.

Then I checked USB-C, which reads all devices that I plug in without problems.

Now comes the weird part: The laptop charges absolutely fine, when it is completly turned off.

I reinstalled Fedora and charging worked for a couple of days and now it is back to short period charging and then stopping.

From what I can tell, there are no battery settings in bios that is affecting it.

This is the journalctl for the last boot. Let me know, if you need anything else.

https://paste.ofcode.org/CWVmnuFhGAd2dPMWnLPtKF

Hello @julog ,
Please check this out can't update to new BIOS update to fix not charging battery on Thinkpad X1 Carbon Gen 9 · Issue #350 · fwupd/firmware-lenovo · GitHub

Thank you for the pinpoint. I checked the issue, but It does not apply to my model.

I have a L580 which is not in the list for the USB-C firmware issue list, nor does it have a patch. I checked for firmware updates with fwupdmgr, but I have the current version.

Here is the complete model list: Critical Intel Thunderbolt Software and Firmware Updates - ThinkPad - Lenovo Support CA for the bug.

LENOVO 20LW000VGE
│
├─Core™ i5-8250U CPU @ 1.60GHz:
│     Device ID:          4bde70ba4e39b28f9eab1628f9dd6e6244c03027
│     Current version:    0x000000f4
│     Vendor:             Intel
│     GUIDs:              561403e8-143a-5071-ab09-bf5e4c146983 ← CPUID\PRO_0&FAM_06&MOD_8E
│                         54bdc429-0179-5019-9cb6-8a343324c97c ← CPUID\PRO_0&FAM_06&MOD_8E&STP_A
│     Device Flags:       • Internal device
│   
├─Intel Management Engine:
│     Device ID:          349bb341230b1a86e5effe7dfe4337e1590227bd
│     Summary:            UEFI ESRT device
│     Current version:    184.93.4323
│     Minimum Version:    0.0.1
│     Vendor:             Lenovo (DMI:LENOVO)
│     Update State:       Success
│     GUID:               9de55de6-0a81-48fc-a6c9-0e13b38bdc94
│     Device Flags:       • Internal device
│                         • Updatable
│                         • System requires external power source
│                         • Supported on remote server
│                         • Needs a reboot after installation
│                         • Device is usable for the duration of the update
│   
├─LENSE30256GMSP34MEAT3TA:
│     Device ID:          3743975ad7f64f8d6575a9ae49fb3a8856fe186f
│     Summary:            NVM Express solid state drive
│     Current version:    2.5.0412
│     Vendor:             Lenovo (NVME:0x17AA)
│     Serial Number:      1274797709108
│     GUIDs:              2e7e091e-c779-5751-b5f9-1ad626f3f123 ← NVME\VEN_17AA&DEV_0005
│                         96d4d6f7-8144-5ce3-8e22-e325353df772 ← NVME\VEN_17AA&DEV_0005&SUBSYS_17AA1005
│                         d6a2653a-5464-5b59-bfcb-a05effb8cfe1 ← LENSE30256GMSP34MEAT3TA
│     Device Flags:       • Internal device
│                         • Updatable
│                         • System requires external power source
│                         • Supported on remote server
│                         • Needs a reboot after installation
│                         • Device is usable for the duration of the update
│   
├─System Firmware:
│ │   Device ID:          a45df35ac0e948ee180fe216a5f703f32dda163f
│ │   Summary:            UEFI ESRT device
│ │   Current version:    0.1.64
│ │   Minimum Version:    0.0.1
│ │   Vendor:             Lenovo (DMI:LENOVO)
│ │   Update State:       Success
│ │   GUID:               f0fad8e6-0d0c-4743-8ffd-16e0918c998e
│ │   Device Flags:       • Internal device
│ │                       • Updatable
│ │                       • System requires external power source
│ │                       • Supported on remote server
│ │                       • Needs a reboot after installation
│ │                       • Cryptographic hash verification is available
│ │                       • Device is usable for the duration of the update
│ │ 
│ └─UEFI dbx:
│       Device ID:        362301da643102b9f38477387e2193e57abaa590
│       Summary:          UEFI revocation database
│       Current version:  371
│       Minimum Version:  371
│       Vendor:           UEFI:Linux Foundation
│       Install Duration: 1 second
│       GUIDs:            60f9de84-e7a3-5f5c-b0e8-cc39d95f865b ← UEFI\CRT_0B8CCCC2E291C58D9CB7D6287FAA4F9E620BF12C84BA9CC7EF8EBCCD4E89EC73&ARCH_X64
│                         f8ba2887-9411-5c36-9cee-88995bb39731 ← UEFI\CRT_A1117F516A32CEFCBA3F2D1ACE10A87972FD6BBE8FE0D0B996E09E65D802A503&ARCH_X64
│       Device Flags:     • Internal device
│                         • Updatable
│                         • Supported on remote server
│                         • Needs a reboot after installation
│                         • Device is usable for the duration of the update
│                         • Only version upgrades are allowed
│                         • Signed Payload
│     
├─TPM:
│     Device ID:          c6a80ac3a22083423992a3cb15018989f37834d6
│     Current version:    73.4.17568.4452
│     Vendor:             ST Microelectronics (TPM:STM)
│     GUIDs:              84df3581-f896-54d2-bd1a-372602f04c32 ← TPM\VEN_STM&DEV_0001
│                         bfaed10a-bbc1-525b-a329-35da2f63e918 ← TPM\VEN_STM&MOD_
│                         70b7b833-7e1a-550a-a291-b94a12d0f319 ← TPM\VEN_STM&DEV_0001&VER_2.0
│                         06f005e9-cb62-5d1a-82d9-13c534c53c48 ← TPM\VEN_STM&MOD_&VER_2.0
│     Device Flags:       • Internal device
│                         • Updatable
│                         • System requires external power source
│                         • Needs a reboot after installation
│                         • Device can recover flash failures
│                         • Full disk encryption secrets may be invalidated when updating
│                         • Signed Payload
│   
├─UEFI Device Firmware:
│     Device ID:          2292ae5236790b47884e37cf162dcf23bfcd1c60
│     Summary:            UEFI ESRT device
│     Current version:    65582
│     Minimum Version:    1
│     Vendor:             DMI:LENOVO
│     Update State:       Success
│     GUID:               954070c3-1f4b-49ac-9c98-8dd5b8e49bc0
│     Device Flags:       • Internal device
│                         • Updatable
│                         • System requires external power source
│                         • Needs a reboot after installation
│                         • Device is usable for the duration of the update
│   
├─UEFI Device Firmware:
│     Device ID:          f95c9218acd12697af946874bfe4239587209232
│     Summary:            UEFI ESRT device
│     Current version:    16781600
│     Minimum Version:    1
│     Vendor:             DMI:LENOVO
│     Update State:       Success
│     GUID:               d4e80f43-1fff-4ff9-a6d1-10d713146e64
│     Device Flags:       • Internal device
│                         • Updatable
│                         • System requires external power source
│                         • Needs a reboot after installation
│                         • Device is usable for the duration of the update
│   
├─UEFI Device Firmware:
│     Device ID:          d96de5c124b60ed6241ebcb6bb2c839cb5580786
│     Summary:            UEFI ESRT device
│     Current version:    4784132
│     Minimum Version:    4784132
│     Vendor:             DMI:LENOVO
│     Update State:       Success
│     GUID:               c3678f78-86a5-4671-b837-eb6866ceee45
│     Device Flags:       • Internal device
│                         • Updatable
│                         • System requires external power source
│                         • Needs a reboot after installation
│                         • Device is usable for the duration of the update
│   
└─UHD Graphics 620:
      Device ID:          5792b48846ce271fab11c4a545f7a3df0d36e00a
      Current version:    07
      Vendor:             Intel Corporation (PCI:0x8086)
      GUIDs:              8b72a10c-1279-5f8e-a28a-34fb11a58240 ← PCI\VEN_8086&DEV_5917
                          fecdb023-04d7-5fb9-8d1e-84501cf1854d ← PCI\VEN_8086&DEV_5917&SUBSYS_17AA506A
      Device Flags:       • Internal device
                          • Cryptographic hash verification is available

evices with no available firmware updates: 
 • TPM
 • UEFI Device Firmware
 • UEFI Device Firmware
 • UEFI Device Firmware
Devices with the latest available firmware version:
 • Intel Management Engine
 • LENSE30256GMSP34MEAT3TA
 • System Firmware
 • UEFI dbx

From the journalctl output:

ACPI: battery: new extension: ThinkPad Battery Extension

Miscrosoft ACPI-compliant control method battery driver issues includes:

[…] circumstances you should update your Microsoft ACPI-Compliant Control Method Battery driver:

  1. Your battery is not working properly, and you’re having problems with your laptop battery such as “plugged in not charging“.

Sounds like the same mistake may be affecting your system. Can you install the acpi package and show the output? Here is an example from an Arch user:

$ acpi
Battery 0: Not charging, 56%
Battery 1: Unknown, 0%, rate information unavailable

The Arch post mentions using UEFI diagnostics battery check to reset charge start/stop thresholds. Another Arch post has additional troubleshooting examples ending with:

running a quick battery check in the UEFI Diagnostics will reset charge thresholds.

1 Like

The out of ACPI is, while charger is connected:

$ acpi    
Battery 0: Not charging, 72%

output of sudo tlp-stat -b (Second link to Arch Forum)

+++ Battery Care
Plugin: thinkpad
Supported features: charge thresholds, recalibration
Driver usage:
* natacpi (thinkpad_acpi) = active (charge thresholds, recalibration)
Parameter value ranges:
* START_CHARGE_THRESH_BAT0/1:  0(off)..96(default)..99
* STOP_CHARGE_THRESH_BAT0/1:   1..100(default)

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer                   = LGC
/sys/class/power_supply/BAT0/model_name                     = 01AV463
/sys/class/power_supply/BAT0/cycle_count                    =    522
/sys/class/power_supply/BAT0/energy_full_design             =  45000 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  38190 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  27500 [mWh]
/sys/class/power_supply/BAT0/power_now                      =      0 [mW]
/sys/class/power_supply/BAT0/status                         = Not charging

/sys/class/power_supply/BAT0/charge_control_start_threshold =     95 [%]
/sys/class/power_supply/BAT0/charge_control_end_threshold   =    100 [%]
/sys/class/power_supply/BAT0/charge_behaviour               = [auto] inhibit-charge force-discharge

Charge                                                      =   72.0 [%]
Capacity                                                    =   84.9 [%]

output of

cat /sys/class/power_supply/BAT0/charge_start_threshold

0

when I edit the config

sudo nano /sys/class/power_supply/BAT0/charge_start_threshold

95

This seems a bit odd that cat outputs a “0” and when I go into the file “95” is in it. Does “0” mean it is basically set to not charge ?

There are differences for stop_treshold as well:

cat /sys/class/power_supply/BAT0/charge_stop_threshold

95
sudo nano  /sys/class/power_supply/BAT0/charge_stop_threshold

100

I have not touched any settings.

Thank you for your help. It is really appreaciated.

For UEFI Diagnostics I need to create a USB. I will try this tomorrow morning.

See: sysfs and configfs and man 5 sysfs, where it says:

Many of the files in the sysfs filesystem are read-only, but some files are writable, allowing kernel variables to be changed.