Bug 39569 - thinkpad E15 gen2 - unable to detect "on battery" status with kernel 5.10
Summary: thinkpad E15 gen2 - unable to detect "on battery" status with kernel 5.10
Status: ASSIGNED
Alias: None
Product: Sisyphus
Classification: Development
Component: kernel-image-un-def (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Vitaly Chikunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-01-19 20:56 MSK by Anton Farygin
Modified: 2021-01-22 13:44 MSK (History)
3 users (show)

See Also:


Attachments
e15 gen2 DSDT fix (1.40 KB, application/x-shellscript)
2021-01-22 13:44 MSK, Slava Aseev
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Farygin 2021-01-19 20:56:54 MSK
на thinkpad t15 - на ядре 5.4 при _отключении_ питания в upower -d:
Daemon:
  daemon-version:  0.99.12
  on-battery:      yes
  lid-is-closed:   no
  lid-is-present:  yes
  critical-action: HybridSleep

На ядре 5.10:
Daemon:
  daemon-version:  0.99.12
  on-battery:      no
  lid-is-closed:   no
  lid-is-present:  yes
  critical-action: HybridSleep

соответственно не корректно работает отображение статус батареи в display manager - всегда показывает подключенное питание.
Comment 1 Slava Aseev 2021-01-20 14:26:10 MSK
В udevadm monitor при отключении/включении питания пустота.
Буду копать дальше.
Comment 2 Slava Aseev 2021-01-20 20:01:54 MSK
На 5.4.81-std-def-alt1 все то же самое.
На послнедней убунте с ядром 5.8.0-25 также не работает.
Comment 3 Anton Farygin 2021-01-21 07:07:35 MSK
Это на E15 Gen2, у меня же T15 Gen1 - похоже что там разные проблемы.
Comment 4 Slava Aseev 2021-01-21 13:30:11 MSK
На ноутбуке E15 Gen2 после systemctl suspend все начинает работать нормально (!?)
Проверял на ядре 5.10 у нас и  5.8 на убунте.
Comment 5 Slava Aseev 2021-01-21 20:46:30 MSK
https://forums.lenovo.com/t5/Other-Linux-Discussions/ThinkPad-E15-Gen-2-firmware-issue-no-power-supply-events/m-p/5061898
Создал на форуме тему.

Получилось подправить DSDT таблицу.
Там была какая-то переменная H8DR, которая участвовала во всяких ветвлениях и как раз в нужных местах. У меня на компьютере в самом начале (в месте с кучей "иф виндовс") ей присваивалась единица, и на E15 Gen2 я попробовал сделать также. После этого все события, закрытие крышки и т.д. вроде как заработали.
Comment 6 Anton Farygin 2021-01-21 20:52:25 MSK
https://github.com/tluck/Lenovo-T420-Clover/commits/master/EFI/CLOVER/ACPI/dsdt.dsl

Вот тут тоже народ что-то патчит такое же
Comment 7 Anton Farygin 2021-01-21 20:57:48 MSK
https://forums.lenovo.com/t5/Other-Linux-Discussions/Linux-Fn-keys-not-working-Thinkpad-E14-AMD-Gen-2/m-p/5027791?page=7

Вот тут ещё куча жалоб от народа по другому поводу, и им тоже помогает твой же рецепт с suspend/resume.
Comment 8 Slava Aseev 2021-01-22 13:44:05 MSK
Created attachment 9144 [details]
e15 gen2 DSDT fix

Приложил скрипт для исправления таблицы. С ключом --grub-setup-dsdt он автоматом включит подмену на новую таблицу в grub'е, если до этого она не подменялась. Без ключа просто сохраняет новую таблицу в dsdt.aml.

Можно сделать то же самое без подмены вот таким однострочником:
acpidump -b -n DSDT && iasl dsdt.dat && sed -i 's/Name (H8DR, 0x00)/Name (H8DR, One)/g' dsdt.dsl && iasl dsdt.dsl