Hatred's Log Place

DON'T PANIC!

Mar 25, 2023 - 2 minute read - Linux Thinkpad

Thinkpad P15 Gen2: ноутбук не уходит в сон и фризится lspci при питании от батареи

Проблема: при питании от батареи, время от времени не можем уйти в сон. После чего наблюдаем:

  • фриз при вызове 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.