Tlp not surviving a reboot

I have enabled tlp to enable charge_control_end_threshold = 80%. However, this is not surviving a reboot. After a rebbot, I am getting:

sudo systemctl status tlp.service 
○ tlp.service - TLP system startup/shutdown
     Loaded: loaded (/usr/lib/systemd/system/tlp.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: inactive (dead)
       Docs: https://linrunner.de/tlp
sudo tlp-stat -b
[sudo] password for rudra: 
--- TLP 1.6.1 --------------------------------------------

+++ Battery Care
Plugin: asus
Supported features: charge threshold
Driver usage:
* natacpi (asus_wmi) = active (charge threshold)
Parameter value range:
* STOP_CHARGE_THRESH_BAT0/1: 0(off)..100(default)

+++ Battery Status: BAT0
/sys/class/power_supply/BAT0/manufacturer                   = ASUSTeK
/sys/class/power_supply/BAT0/model_name                     = ASUS Battery
/sys/class/power_supply/BAT0/cycle_count                    =    104
/sys/class/power_supply/BAT0/energy_full_design             =  75086 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  68032 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  52042 [mWh]
/sys/class/power_supply/BAT0/power_now                      =   2997 [mW]
/sys/class/power_supply/BAT0/status                         = Discharging

/sys/class/power_supply/BAT0/charge_control_end_threshold   =    100 [%]

Charge                                                      =   76.5 [%]
Capacity                                                    =   90.6 [%]

I have to restart the service manually again to get the things back:

sudo systemctl restart tlp.service 
sudo systemctl status tlp.service 
● tlp.service - TLP system startup/shutdown
     Loaded: loaded (/usr/lib/systemd/system/tlp.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (exited) since Sun 2024-10-06 00:26:51 IST; 1s ago
 Invocation: c137b95091b2476c9c72f885dafe5bda
       Docs: https://linrunner.de/tlp
    Process: 5091 ExecStart=/usr/sbin/tlp init start (code=exited, status=0/SUCCESS)
   Main PID: 5091 (code=exited, status=0/SUCCESS)
   Mem peak: 7.6M
        CPU: 231ms

Oct 06 00:26:51 roddur systemd[1]: Starting tlp.service - TLP system startup/shutdown...
Oct 06 00:26:51 roddur tlp[5091]: Applying power save settings...done.
Oct 06 00:26:51 roddur tlp[5091]: Setting battery charge thresholds...done.
Oct 06 00:26:51 roddur systemd[1]: Finished tlp.service - TLP system startup/shutdown.

sudo tlp-stat -b
--- TLP 1.6.1 --------------------------------------------

+++ Battery Care
Plugin: asus
Supported features: charge threshold
Driver usage:
* natacpi (asus_wmi) = active (charge threshold)
Parameter value range:
* STOP_CHARGE_THRESH_BAT0/1: 0(off)..100(default)

+++ Battery Status: BAT0
/sys/class/power_supply/BAT0/manufacturer                   = ASUSTeK
/sys/class/power_supply/BAT0/model_name                     = ASUS Battery
/sys/class/power_supply/BAT0/cycle_count                    =    104
/sys/class/power_supply/BAT0/energy_full_design             =  75086 [mWh]
/sys/class/power_supply/BAT0/energy_full                    =  68032 [mWh]
/sys/class/power_supply/BAT0/energy_now                     =  51675 [mWh]
/sys/class/power_supply/BAT0/power_now                      =   5834 [mW]
/sys/class/power_supply/BAT0/status                         = Discharging

/sys/class/power_supply/BAT0/charge_control_end_threshold   =     80 [%]

Charge                                                      =   76.0 [%]
Capacity                                                    =   90.6 [%]

In tlp-support, there is a similar report, but in that case, the asus battery was not detected: Battery Care — TLP 1.7.0 documentation

But, in this case, battery is detected, hence I am bit hesitant to unload asus-wsi module. Any help please?

I’m not familiar with the service and it doesn’t appear to be present on my PC. It is possible that it tried to run before the asus_wmi module was loaded? Does the service show After=modprobe@asus_wmi.service and Requires=modprobe@asus_wmi.service in its [Unit] section? Use systemctl cat tlp.service to view the service definition.

Edit: It looks like someone recently reported that SELinux was blocking TLP. Are you seeing any messages like that in your logs?