yyearth / turnoff-BD-PROCHOT

83 stars 13 forks source link

Works Flawlessly on Thinkpad T470s #7

Closed ckcr4lyf closed 7 months ago

ckcr4lyf commented 7 months ago

I have a Thinkpad T470s running Arch Linux, which would get stuck on either 400Mhz or 800Mhz depending on my luck, making my system unusable.

I had tried everything including messing with tlp, cpupower / cpufreq, setting custom governors, etc the kind of overrides which people really recommend. I didn't realize the problem is to do with how Lenovo / Thinkpads, which are known for their repairability, decide to handle third-party batteries. The tl;dr is if it detects an unofficial battery, it raises a processor flag BD_PROCHOT that throttles the CPU. (This does not happen when plugged in).

My battery details (from dmidecode):

Handle 0x0023, DMI type 22, 26 bytes
Portable Battery
    Location: Front
    Manufacturer: SANYO
    Name: 00HW022
    Design Capacity: 23510 mWh
    Design Voltage: 11250 mV
    SBDS Version: 03.01
    Maximum Error: Unknown
    SBDS Serial Number: 1077
    SBDS Manufacture Date: 2018-05-19
    SBDS Chemistry: LiP
    OEM-specific Information: 0x00000000

Handle 0x0024, DMI type 22, 26 bytes
Portable Battery
    Location: Rear
    Manufacturer: SANYO
    Name: 00HW024
    Design Capacity: 25080 mWh
    Design Voltage: 11400 mV
    SBDS Version: 03.01
    Maximum Error: Unknown
    SBDS Serial Number: 00D6
    SBDS Manufacture Date: 2021-03-25
    SBDS Chemistry: LION
    OEM-specific Information: 0x00000000

Anyway, after using this guy, it works just fine! No issues, just making this "issue" to make the solution more searchable for others.

Some other references:

ckcr4lyf commented 7 months ago

Thanks @yyearth , if you ever come by Hong Kong I'll buy you a beer (or 10)