Я использую ubuntu mate 20.04.
04 thinkpad немедленно выходит из режима ожидания У меня Lenovo thinkpad X1 carbon 7-го поколения. Когда я вхожу в режим ожидания (любым способом), ноутбук автоматически выходит из режима ожидания. Я заметил, что такое поведение возникает только тогда, когда ноутбук подключен к док-станции (Lenovo USB -...
У меня есть Lenovo thinkpad X1 carbon 7-го поколения. Когда я вхожу в режим ожидания (любым способом), ноутбук выходит из режима ожидания сам по себе. заметил, что такое поведение происходит только тогда, когда ноутбук установлен в док-станцию (док-станция Lenovo USB-C gen2), поскольку я использую свой ноутбук в док-станции в 90% случаев, поэтому важно, чтобы режим ожидания работал.
Что я пробовал:
Отключение всего пробуждения PCI:
cat / proc / acpi / wakeup
Затем установка echo
для всех включенных устройств (кроме LID
чтобы при необходимости я мог продолжить, нажав крышку)
Отключение всего пробуждения USB:
cat / sys / bus / usb / devices / * / power / wakeup
ll / sys / bus / usb / devices / * / power / wakeup
Затем установка echo «отключена»> / sys / bus / usb / devices /
для всех включенных устройств
Я заметил, что было два PXSX
устройства при запуске cat / proc / acpi / wakeup
PXSX S4 *disabled
PXSX S4 *enabled pci:0000:05:00.0
Когда я попытался отключить PXSX
с помощью команды echo PXSX> / proc / acpi / wakeup
, то ничего не произошло (один PXSX
оставался включенным
и один оставался отключенным
, я предполагаю, что это потому, что этой команде не удалось достичь второго PXSX
.
I также попытался запустить acpitool -w
затем acpitool -W
для отключения второго PXSX
, который не удался. Я не уверен, почему функция wake не может быть отключена на этом втором устройстве PXSX
.
Это устройство появляется только в том случае, если ноутбук установлен в док-станцию, поэтому можно с уверенностью предположить, что это устройство является частью док-станции.
Следующим шагом было отключить это устройство, чтобы оно не разбудило ноутбук. Я обнаружил, что команда echo 1> /sys/bus/pci/devices/0000:05:00.0/remove
отключит это устройство PCI. После запуска этой команды suspend работал правильно! Единственная проблема заключается в том, что, если я попытаюсь снова выполнить приостановку, ноутбук будет демонстрировать предыдущее поведение (немедленное включение). Это было подтверждено запуском cat / proc / acpi / wakeup
, чтобы увидеть, что PXSX
снова включил себя: каким-то образом во время пробуждения устройство снова включало себя.
Моей следующей идеей было отключить это устройство во время предварительной приостановки. Я создал этот файл: /lib/systemd/system-sleep/pre-suspend.sh
, сделал его исполняемым и записал следующее содержимое:
#!/bin/sh
case $1 in
pre)
echo 1 > /sys/bus/pci/devices/0000:05:00.0/remove
;;
esac
Этот код гарантирует, что проблемное устройство будет отключено непосредственно перед подвешивания. В настоящее время мой ноутбук успешно спит, не просыпаясь 100% времени.