Проблема: при питании от батареи, время от времени не можем уйти в сон. После чего наблюдаем:
- фриз при вызове lspci
- фриз при попытке сделать sudo
- фриз при попытке перегрузиться или выключиться
- фриз при запуске sddm, если включаться на батарее
- 100% и стабильное воспроизведение при запуске
sudo powertop
, и тоже фриз
Мне удачно попалось это обсуждение на askubuntu.com: What to do when lspci and hwinfo freeze the system?
Если коротко: причина оказалась в PCIe: при питании на батарее или с выключенным acpi=off
сохраняем список устройств:
lspci | awk '{print $1}' > pci_ids.txt
А потом на проблемной конфигурации (например, после вызова sudo powertop
на соседнем терминале), сделать последовательный опрос устройств:
for i in `cat pci_ids.txt`; do echo " * CHECKING $i";lspci -s $i; done
У меня свалилось на:
0b:00.0
Коим является:
0b:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03)
Т.е. прблема с:
- модулем
igc
- сетевой картой Intel.
Уже более обстоятельный поиск привёл к:
Там как раз более детальное описание проблемы (без конкретного решения):
- Ноут тоже Thinkpad P15 Gen2
- Карта та же
Ключевое:
I finally found that the problem was because enabling auto or powersave on ethernet card was causing this issue. i.e
echo 'auto' > '/sys/bus/pci/devices/0000:0b:00.0/power/control'
Отсюда и возможный WA: не включать автоматическое управление питанием для этого устройства. А вот автоматическое управление включает у меня - tlp.
И им же можно запретить это делать. Создаём файл /etc/tlp.d/00-pcie-pm.conf
:
# Disalbe Ethernet card:
RUNTIME_PM_DISABLE+="0b:00.0"
И рестартуем tlp.
Понятно, что на энергопотребление скажется негативно, но жить без сна - это не жизнь. К сожалению переписка выше ни к чему толковому не ведёт. А проблема наблюдается в т.ч. на ядре 6.2.