Skip to content

Instantly share code, notes, and snippets.

@mightyllama89
Created August 22, 2021 04:14
Show Gist options
  • Save mightyllama89/31e790ac2374e2125fa59b8814fea508 to your computer and use it in GitHub Desktop.
Save mightyllama89/31e790ac2374e2125fa59b8814fea508 to your computer and use it in GitHub Desktop.

Following your instructions I booted up with the power supply plugged in.

For the logs I used TLP_DEBUG="arg bat path ps run sysfs" in tlp.conf.

jonathan@Linux-MacBookPro:~$ sudo tlp-stat --psup
[sudo] password for jonathan: 
--- TLP 1.4.0-beta.1 --------------------------------------------

+++ Power supply diagnostic
/sys/class/power_supply/ADP1/type: Mains
/sys/class/power_supply/ADP1/usb_type: (not available)
/sys/class/power_supply/ADP1/online: 1
/sys/class/power_supply/ADP1/voltage_max: (not available)
/sys/class/power_supply/ADP1/voltage_min: (not available)
/sys/class/power_supply/ADP1/voltage_now: (not available)
/sys/class/power_supply/ADP1/present: (not available)
/sys/class/power_supply/ADP1/charge_control_start_threshold: (not available)
/sys/class/power_supply/ADP1/charge_control_end_threshold: (not available)
/sys/class/power_supply/ADP1/status: (not available)
/sys/class/power_supply/ADP1/device/path: \_SB_.ADP1
/sys/class/power_supply/BAT0/type: Battery
/sys/class/power_supply/BAT0/usb_type: (not available)
/sys/class/power_supply/BAT0/online: (not available)
/sys/class/power_supply/BAT0/voltage_max: (not available)
/sys/class/power_supply/BAT0/voltage_min: (not available)
/sys/class/power_supply/BAT0/voltage_now: 12392000
/sys/class/power_supply/BAT0/present: 1
/sys/class/power_supply/BAT0/charge_control_start_threshold: (not available)
/sys/class/power_supply/BAT0/charge_control_end_threshold: (not available)
/sys/class/power_supply/BAT0/status: Full
/sys/class/power_supply/BAT0/device/path: \_SB_.PCI0.LPCB.EC__.SMB0.SBS0

+++ udev diagnostic
Reading rules file: /usr/lib/udev/rules.d/85-tlp.rules
run: '/usr/sbin/tlp auto'
OK.

jonathan@Linux-MacBookPro:~$ sudo tlp-stat -T
--- TLP 1.4.0-beta.1 --------------------------------------------

-- Logs begin at Tue 2021-04-06 10:42:45 CDT, end at Sat 2021-08-21 22:32:07 CDT. --
Aug 21 22:31:09 Linux-MacBookPro tlp[538]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:09 Linux-MacBookPro tlp[536]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:09 Linux-MacBookPro tlp[537]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:09 Linux-MacBookPro tlp[540]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:09 Linux-MacBookPro tlp[539]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:09 Linux-MacBookPro tlp[578]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:09 Linux-MacBookPro tlp[541]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:09 Linux-MacBookPro tlp[579]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:10 Linux-MacBookPro tlp[1007]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:10 Linux-MacBookPro tlp[1008]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:10 Linux-MacBookPro tlp[1037]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1031]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1018]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1029]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1036]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1070]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1030]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1028]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1104]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1033]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1038]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1071]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1356]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1342]: parse_args4config: tlp auto
Aug 21 22:31:11 Linux-MacBookPro tlp[1342]: +++ auto (1.4.0-beta.1) ++++++++++++++++++++++++++++++++++++++++
Aug 21 22:31:11 Linux-MacBookPro tlp[1342]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Aug 21 22:31:11 Linux-MacBookPro tlp[1342]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1342]: power_source=ac
Aug 21 22:31:11 Linux-MacBookPro tlp[1342]: manual_mode=none
Aug 21 22:31:11 Linux-MacBookPro tlp[1342]: power_mode=ac
Aug 21 22:31:11 Linux-MacBookPro tlp[1761]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1824]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1658]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1852]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1922]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1872]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:11 Linux-MacBookPro tlp[1342]: compare_and_save_power_state(0).different: old=
Aug 21 22:31:12 Linux-MacBookPro tlp[2000]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:12 Linux-MacBookPro tlp[1964]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:12 Linux-MacBookPro tlp[1961]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:12 Linux-MacBookPro tlp[1974]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:12 Linux-MacBookPro tlp[2063]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:12 Linux-MacBookPro tlp[1939]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:12 Linux-MacBookPro tlp[2116]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:12 Linux-MacBookPro tlp[2084]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:12 Linux-MacBookPro tlp[2152]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:12 Linux-MacBookPro tlp[2794]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:13 Linux-MacBookPro tlp[2833]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:15 Linux-MacBookPro tlp[1342]: save_runconf.ok: /run/tlp/tlp-run.conf_tmpDVTGW6 -> /run/tlp/run.conf
Aug 21 22:31:15 Linux-MacBookPro tlp[3584]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:19 Linux-MacBookPro tlp[3723]: +++ rdw_nm(wlp3s0).up
Aug 21 22:31:19 Linux-MacBookPro tlp[3723]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
Aug 21 22:31:19 Linux-MacBookPro tlp[3723]: rdw_nm(wlp3s0).up: type=wifi [nmcli]
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: parse_args4config: tlp init start
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: +++ init start (1.4.0-beta.1) ++++++++++++++++++++++++++++++++++++++++
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: get_sys_power_supply(ADP1).ac_online: syspwr=0
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: power_source=ac
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: manual_mode=none
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: power_mode=ac
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: compare_and_save_power_state(0).equal
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: Applying power save settings...done.
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: check_thinkpad.not_a_thinkpad: model=1.0
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: batdrv_init.thinkpad.not_a_thinkpad
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: check_thinkpad.not_a_thinkpad: model=1.0
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: batdrv_init.thinkpad-legacy.not_a_thinkpad
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: batdrv_init.asus.no_match
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: batdrv_init.huawei.no_match
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: batdrv_init.lenovo.no_match
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: batdrv_init.samsung.no_match
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: batdrv_init.lg.no_match
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: batdrv_init.generic: batteries=BAT0
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: batdrv.generic.apply_configured_thresholds.not_implemented
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: Setting battery charge thresholds...done.
Aug 21 22:31:24 Linux-MacBookPro tlp[3793]: save_runconf.ok: /run/tlp/tlp-run.conf_tmpVBURIX -> /run/tlp/run.conf
Aug 21 22:31:50 Linux-MacBookPro tlp[6419]: parse_args4config: tlp-stat --psup
Aug 21 22:32:07 Linux-MacBookPro tlp[6571]: parse_args4config: tlp-stat -T

jonathan@Linux-MacBookPro:~$ sudo tlp-stat -s
--- TLP 1.4.0-beta.1 --------------------------------------------

+++ System Info
System         = Apple Inc. 1.0 MacBookPro6,2
BIOS           =    MBP61.88Z.0057.B0F.1112091028
OS Release     = Ubuntu 20.04.3 LTS
Kernel         = 5.4.0-81-generic #91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021 x86_64
/proc/cmdline  = BOOT_IMAGE=/boot/vmlinuz-5.4.0-81-generic root=UUID=ca546a65-0631-4bf6-a824-65160b27c906 ro i915.modeset=1 i915.lvds_channel_mode=2 i915.force_probe=1 i915.enable_dpcd_backlight=0 i915.panel_use_ssc=0
Init system    = systemd v245 (245.4-4ubuntu3.11)
Boot mode      = UEFI

+++ TLP Status
State          = enabled
RDW state      = enabled
Last run       = 10:31:24 PM,     97 sec(s) ago
Mode           = AC
Power source   = AC

Now showing how I arrived at my fix.

Unplug AC power.

Run tlp-stat --psup immediately.

jonathan@Linux-MacBookPro:~$ sudo tlp-stat --psup
--- TLP 1.4.0-beta.1 --------------------------------------------

+++ Power supply diagnostic
/sys/class/power_supply/ADP1/type: Mains
/sys/class/power_supply/ADP1/usb_type: (not available)
/sys/class/power_supply/ADP1/online: 0
/sys/class/power_supply/ADP1/voltage_max: (not available)
/sys/class/power_supply/ADP1/voltage_min: (not available)
/sys/class/power_supply/ADP1/voltage_now: (not available)
/sys/class/power_supply/ADP1/present: (not available)
/sys/class/power_supply/ADP1/charge_control_start_threshold: (not available)
/sys/class/power_supply/ADP1/charge_control_end_threshold: (not available)
/sys/class/power_supply/ADP1/status: (not available)
/sys/class/power_supply/ADP1/device/path: \_SB_.ADP1
/sys/class/power_supply/BAT0/type: Battery
/sys/class/power_supply/BAT0/usb_type: (not available)
/sys/class/power_supply/BAT0/online: (not available)
/sys/class/power_supply/BAT0/voltage_max: (not available)
/sys/class/power_supply/BAT0/voltage_min: (not available)
/sys/class/power_supply/BAT0/voltage_now: 12422000
/sys/class/power_supply/BAT0/present: 1
/sys/class/power_supply/BAT0/charge_control_start_threshold: (not available)
/sys/class/power_supply/BAT0/charge_control_end_threshold: (not available)
/sys/class/power_supply/BAT0/status: Full
/sys/class/power_supply/BAT0/device/path: \_SB_.PCI0.LPCB.EC__.SMB0.SBS0

+++ udev diagnostic
Reading rules file: /usr/lib/udev/rules.d/85-tlp.rules
run: '/usr/sbin/tlp auto'
OK.

Battery status reads as 'Full'.

Running 'tlp-stat --psup' again after waiting a second.
jonathan@Linux-MacBookPro:~$ sudo tlp-stat --psup
--- TLP 1.4.0-beta.1 --------------------------------------------

+++ Power supply diagnostic
/sys/class/power_supply/ADP1/type: Mains
/sys/class/power_supply/ADP1/usb_type: (not available)
/sys/class/power_supply/ADP1/online: 0
/sys/class/power_supply/ADP1/voltage_max: (not available)
/sys/class/power_supply/ADP1/voltage_min: (not available)
/sys/class/power_supply/ADP1/voltage_now: (not available)
/sys/class/power_supply/ADP1/present: (not available)
/sys/class/power_supply/ADP1/charge_control_start_threshold: (not available)
/sys/class/power_supply/ADP1/charge_control_end_threshold: (not available)
/sys/class/power_supply/ADP1/status: (not available)
/sys/class/power_supply/ADP1/device/path: \_SB_.ADP1
/sys/class/power_supply/BAT0/type: Battery
/sys/class/power_supply/BAT0/usb_type: (not available)
/sys/class/power_supply/BAT0/online: (not available)
/sys/class/power_supply/BAT0/voltage_max: (not available)
/sys/class/power_supply/BAT0/voltage_min: (not available)
/sys/class/power_supply/BAT0/voltage_now: 12259000
/sys/class/power_supply/BAT0/present: 1
/sys/class/power_supply/BAT0/charge_control_start_threshold: (not available)
/sys/class/power_supply/BAT0/charge_control_end_threshold: (not available)
/sys/class/power_supply/BAT0/status: Discharging
/sys/class/power_supply/BAT0/device/path: \_SB_.PCI0.LPCB.EC__.SMB0.SBS0

+++ udev diagnostic
Reading rules file: /usr/lib/udev/rules.d/85-tlp.rules
run: '/usr/sbin/tlp auto'
OK.

Battery status now correctly reads as 'Discharging'. This confirms that there is some amount of delay before '/sys/class/powwer_supply/BAT0/status' is updated. TLP assumes status changes happen in less than 0.8 seconds.

Running 'tlp-stat -s' to check current power mode

jonathan@Linux-MacBookPro:~$ sudo tlp-stat -s
--- TLP 1.4.0-beta.1 --------------------------------------------

+++ System Info
System         = Apple Inc. 1.0 MacBookPro6,2
BIOS           =    MBP61.88Z.0057.B0F.1112091028
OS Release     = Ubuntu 20.04.3 LTS
Kernel         = 5.4.0-81-generic #91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021 x86_64
/proc/cmdline  = BOOT_IMAGE=/boot/vmlinuz-5.4.0-81-generic root=UUID=ca546a65-0631-4bf6-a824-65160b27c906 ro i915.modeset=1 i915.lvds_channel_mode=2 i915.force_probe=1 i915.enable_dpcd_backlight=0 i915.panel_use_ssc=0
Init system    = systemd v245 (245.4-4ubuntu3.11)
Boot mode      = UEFI

+++ TLP Status
State          = enabled
RDW state      = enabled
Last run       = 09:23:57 PM,     11 sec(s) ago
Mode           = AC
Power source   = battery

Runing 'tlp-stat -T' to view debug log.

Aug 21 20:57:35 Linux-MacBookPro tlp[17723]: parse_args4config: tlp auto
Aug 21 20:57:35 Linux-MacBookPro tlp[17723]: +++ auto (1.4.0-beta.1) ++++++++++++++++++++++++++++++++++++++++
Aug 21 20:57:35 Linux-MacBookPro tlp[17723]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin	
Aug 21 20:57:35 Linux-MacBookPro tlp[17723]: get_sys_power_supply(ADP1).remember_ac_offline_
Aug 21 20:57:36 Linux-MacBookPro tlp[17723]: get_sys_power_supply(BAT0).bat_not_discharging_recheck: bs=Full; syspwr=; wait=8
Aug 21 20:57:36 Linux-MacBookPro tlp[17723]: get_sys_power_supply(BAT0).bat_not_discharging: bs=Full; syspwr=0; wait=0
Aug 21 20:57:36 Linux-MacBookPro tlp[17723]: power_source=ac
Aug 21 20:57:36 Linux-MacBookPro tlp[17723]: manual_mode=none
Aug 21 20:57:36 Linux-MacBookPro tlp[17723]: power_mode=ac
Aug 21 20:57:36 Linux-MacBookPro tlp[17723]: compare_and_save_power_state(0).equal

'get_sys_power_supply()' correctly reads AC status as offline, recognizes 'psrc_name' as ADP1, then triggers the MBP quirk. 'get_sys_power_supply()' moves on to check battery status. Battery status is read as Full/Charging despite AC being unplugged. We wait .8 seconds to check again to give batttery status time to update. Battery status doesn't change to 'Discharging' during the wait time so '_syspwr' is set to 0. 'power_mode' is set to AC.

Changed the wait value to 15 instead of 8.

jonathan@Linux-MacBookPro:~$ sudo tlp-stat -s
--- TLP 1.4.0-beta.1 --------------------------------------------

+++ System Info
System         = Apple Inc. 1.0 MacBookPro6,2
BIOS           =    MBP61.88Z.0057.B0F.1112091028
OS Release     = Ubuntu 20.04.3 LTS
Kernel         = 5.4.0-81-generic #91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021 x86_64
/proc/cmdline  = BOOT_IMAGE=/boot/vmlinuz-5.4.0-81-generic root=UUID=ca546a65-0631-4bf6-a824-65160b27c906 ro i915.modeset=1 i915.lvds_channel_mode=2 i915.force_probe=1 i915.enable_dpcd_backlight=0 i915.panel_use_ssc=0
Init system    = systemd v245 (245.4-4ubuntu3.11)
Boot mode      = UEFI

+++ TLP Status
State          = enabled
RDW state      = enabled
Last run       = 09:54:34 PM,     27 sec(s) ago
Mode           = battery
Power source   = battery

The longer wait time allows for battery status to be updated. TLP now correctly sets the power mode to 'battery'.

Here is the log after applying the fix.

Aug 21 22:33:11 Linux-MacBookPro tlp[8423]: +++ auto (1.4.0-beta.1) ++++++++++++++++++++++++++++++++++++++++
Aug 21 22:33:11 Linux-MacBookPro tlp[8423]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Aug 21 22:33:11 Linux-MacBookPro tlp[8423]: get_sys_power_supply(ADP1).remember_ac_offline_
Aug 21 22:33:11 Linux-MacBookPro tlp[8423]: get_sys_power_supply(BAT0).bat_not_discharging_recheck: bs=Full; syspwr=; wait=15
Aug 21 22:33:12 Linux-MacBookPro tlp[8423]: get_sys_power_supply(BAT0).bat_discharging: syspwr=1; wait=5
Aug 21 22:33:12 Linux-MacBookPro tlp[8423]: power_source=bat
Aug 21 22:33:12 Linux-MacBookPro tlp[8423]: manual_mode=none
Aug 21 22:33:12 Linux-MacBookPro tlp[8423]: power_mode=bat
Aug 21 22:33:12 Linux-MacBookPro tlp[8423]: compare_and_save_power_state(1).different: old=0
Aug 21 22:33:13 Linux-MacBookPro tlp[8423]: save_runconf.ok: /run/tlp/tlp-run.conf_tmpdqEZy0 -> /run/tlp/run.conf
Aug 21 22:33:19 Linux-MacBookPro tlp[8620]: parse_args4config: tlp-stat --psup
Aug 21 22:33:23 Linux-MacBookPro tlp[8756]: parse_args4config: tlp-stat -T
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment