Краткий экскурс в историю или как это было раньше.В файле /proc/acpi/wakeup перечислены устройства и возможность пробуждать компьютер из S3 с их стороны. Структура файла wakeup достаточна проста:
<acpi device name> <S-state> <Status> <Sysfs node>
Небольшой пример
cat /proc/acpi/wakeup | grep enabled
EHC1 S4 *enabled pci:0000:00:1d.0
XHC S4 *enabled pci:0000:00:14.0
LID0 S3 *enabled platform:PNP0C0D:00Для отключения замечательной функции "Пробуждение по клику мышки" ранее требовалось просто сделать
echo EHC1 > /proc/acpi/wakeup
++ СовременностьА в современном мире устройств стало много, а имена им в dsdt таблице стали давать одинаковые.
Небольшой пример:PXSX S4 *enabled pci:0000:08:00.0
PXSX S4 *enabled pci:0000:09:00.0
XHC S4 *disabled pci:0000:00:14.0Все эти устройства - usb-контроллеры. В результате дублирования имён echo PXSX больше не работает.
++ ЛечениеВместо отключения через /proc/acpi/wakeup необходимо отключить возможность пробуждения через /sys
echo disabled > /sys/bus/pci/devices/0000\\:08\\:00.0/power/wakeup
echo disabled > /sys/bus/pci/devices/0000\\:09\\:00.0/power/wakeupВ результате в /proc/acpi/wakeup статус изменится
PXSX S4 *disabled pci:0000:08:00.0
PXSX S4 *disabled pci:0000:09:00.0
XHC S4 *disabled pci:0000:00:14.0
URL:
Обсуждается: http://www.opennet.dev/tips/info/3088.shtml
Много профита в реальном использовании? Или почти не сказывается?
Наверное, если включить пробуждение компа от сетевой карты. Мне как-то раньше было нужно, чтобы комп вкючался при поступлении специального фрейма Ethernet от роутера, но не добился. Может, проблема была ещё и в этом разрешении, а не толко в BIOS. Но тогда о написанном в этой статье не знал.
ethtool -s enp1s0 wol gman ethtool
Профит есть для ядра 4.19.0. У меня после перехода на него ноут перестал уходить в спящий режим. Точнее он уходит, но согласно логам тут же просыпается из-за какого-то устройства USB. Из-за этого откатился на 4.18.0.
Это не про энергосбережение. Это про отключение надоедливого функционала, который, теперь, часто нельзя отключить из bios (UEFI).
профит в реальном использовании, очевидно, в том, что ноут перестает просыпаться от того что ты задел тачпад.
> cat /proc/acpi/wakeup | grep enabledman grep && \
grep enabled /proc/acpi/wakeup
Не вдупляйешь разницы - не лезь в unixway.
Разжёвывать не буду, задолбали. Но с псевдоФС лучше делать cat | grep
Извините, но мне лично стало интересно почему для псевдофс кат с пайпом будет лучше, поделитесь?
Никакой разницы нет. Пожалуйста, разжуйте.
А как быстро узнать что это за устройство, например "pci:0000:08:00.0"?
$ lspci -v |grep 08:00.0
08:00.0 USB controller: ASMedia Technology Inc. ASM2142 USB 3.1 Host Controller (prog-if 30 [XHCI])
Полезная статья, благодарю!
Интересно, насколько безопасно так гасить чипсетный контроллер и сколько энергии можно так сэкономить?
Все это фиксится параметрами ядра в конфиге grub, для всего usb stack, а не дергать эту ерунду каждый раз. Вот там почитайте:https://github.com/torvalds/linux/blob/master/Documentation/...
usbcore.quirks=
j = USB_QUIRK_IGNORE_REMOTE_WAKEUP (device
generates spurious wakeup, ignore
remote wakeup capability);m = USB_QUIRK_DISCONNECT_SUSPEND (Device needs
to be disconnected before suspend to
prevent spurious wakeup);
Спасибо, интересно. Но в более общем случае, например для активации пробуждения от сетевой карты, будет полезно знать, что эхнуть в sys
Спасибо, занятно.