LINUX.ORG.RU

Ноутбук спонтанно выходит из спящего режима

 , ,


0

1

Здравствуйте Не смог нагуглить, может кто советом поможет куда копать.

Система Gentoo

Ядро pf-5.3XXX

В режиме полета проблема остается.

Что из логов или параметров вам добавить для определения причины?

Ответ на: комментарий от matawe6067

да, не топаю, тихонько подхожу, а он не спит

brothermechanic ★★★★★
() автор топика

имхо, аппаратное что-то.

Deleted
()

Может помочь ещё вот такая инструкция https://www.opennet.ru/tips/3088_linux_sleep_wakeup_pcie_device_hardware_acpi.shtml

Вот решение от меня, через правила udev.

Создаём от рута(или через sudo) файл /etc/udev/rules.d/50-wakeup.rules такого содержания:

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c52b", ATTR{power/wakeup}="disabled", RUN+="/bin/sh -c 'echo disabled > /sys$env{DEVPATH}/../../power/wakeup'"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9090", ATTR{power/wakeup}="disabled", RUN+="/bin/sh -c 'echo disabled > /sys$env{DEVPATH}/../../power/wakeup'"
ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="14:88:fa:54:cc:52", ATTR{device/power/wakeup}="disabled"
  • ACTION - когда выполнять правило, add значит при добавлении устройства
  • SUSBSYTEM - подсистема, тут описаны правила для сетевой карты и устройств ввода подключенных по USB

idVendor и idProduct можно узнать из вывода lsusb, вот как это выглядит у меня:

...
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 09da:9090 A4Tech Co., Ltd. XL-730K / XL-750BK / XL-755BK Mice
...

Тут важна строка ID, где эти параметры указаны через двоеточие.

ATTR{power/wakeup}="disabled" отключает пробуждение по событиям от самого устройства

RUN+="/bin/sh -c 'echo disabled > /sys$env{DEVPATH}/../../power/wakeup'" отключает пробуждение у контроллера, может быть полезно, если устройство нельзя настроить.

В последней строка настройка сетевой карты, тут важен ATTR{address}=="14:88:fa:54:cc:52", где указан MAC-адрес сетевой карты, ATTR{device/power/wakeup}="disabled" указывает, что надо отключить пробуждение на самом устройстве.

После этого перезагружаем компьютер и проверяем, что еще может пробуждать систему командой cat /proc/acpi/wakeup | grep enabled. В выводе видны адреса контроллеров, а не самих устройств.

Пример вывода у меня после применения udev правил:

PEG0      S4    *enabled   pci:0000:00:01.0
RP09      S4    *enabled   pci:0000:00:1d.0
RP05      S4    *enabled   pci:0000:00:1c.4
PXSX      S4    *enabled   pci:0000:04:00.0

PEG0 обычно так называют встроенную видеокарту.

RP09 и RP05 это что-то на шине PCI-E.

PXSX это кривое название контроллера, можно поискать его в выводе команды lspci, вот что у меня выдаёт

...
04:00.0 USB controller: ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller
...

Значит это контроллер USB3.1 от ASMedia, который установлен дополнительно на моей материнской плате, его можно отключить способом, который был описан в приведённых раньше ссылках(через rc.local), если это нужно.

Главное отличие такого способа от тех, что были описаны по ссылкам через rc.local, так это то, что тут можно точно указать какие устройства не будут пробуждать компьютер из сна, а не бить по площадям, отключая пробуждение на всех устройствах контроллера.

В статье на Арчевики, предложили похожий способ, но с обратным эффектом и не такой универсальный, там предлагают вбивать адрес каждого контроллера руками.

Это решение успешно прошло тестирование на Debian 10.2.

Надеюсь поможет.

kodx
()

причина была в залипании одной из клавиш)

brothermechanic ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.