на 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 - всегда показывает подключенное питание.
В udevadm monitor при отключении/включении питания пустота. Буду копать дальше.
На 5.4.81-std-def-alt1 все то же самое. На послнедней убунте с ядром 5.8.0-25 также не работает.
Это на E15 Gen2, у меня же T15 Gen1 - похоже что там разные проблемы.
На ноутбуке E15 Gen2 после systemctl suspend все начинает работать нормально (!?) Проверял на ядре 5.10 у нас и 5.8 на убунте.
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 я попробовал сделать также. После этого все события, закрытие крышки и т.д. вроде как заработали.
https://github.com/tluck/Lenovo-T420-Clover/commits/master/EFI/CLOVER/ACPI/dsdt.dsl Вот тут тоже народ что-то патчит такое же
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.
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