Wake on LAN (WOL) включаем сервер по событию

После очередного обновления перестала работать функция Wake On Lan. Исправляем.

# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
# uname -rs
Linux 3.10.0-1160.76.1.el7.x86_64

Устанавливаем драйвер:

# yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
# yum install kmod-r8168

Перегружаемся и проверяем:

# dmesg | grep r8168
[ 7.850104] r8168: loading out-of-tree module taints kernel.
[ 7.851506] r8168: module verification failed: signature and/or required key missing - tainting kernel
[ 7.853522] r8168 Gigabit Ethernet driver 8.049.02-NAPI loaded
[ 7.853651] r8168 0000:06:00.0: irq 32 for MSI/MSI-X
[ 7.854990] r8168: This product is covered by one or more of the following patents: US6,570,884, US6,115,776, and US6,327,625.
[ 7.854997] r8168 Copyright (C) 2021 Realtek NIC software team <nicfae@realtek.com>
[ 20.125358] r8168: enp6s0: link up

Создаем сервис:

# vi /etc/systemd/system/wol.service
[Unit]
Description=Configure Wake On LAN
After=network.target

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s enp6s0 wol g

[Install]
WantedBy=basic.target

На зарубежных форумах пишут, что сейчас работает только с nmcli:

# nmcli c modify "enp6s0" 802-3-ethernet.auto-negotiate yes
# nmcli con sh enp6s0 | grep wake
802-3-ethernet.wake-on-lan: magic
802-3-ethernet.wake-on-lan-password: --

Применяем и рестартуем сервис:

# systemctl daemon-reload
# systemctl enable wol
# systemctl start wol

Перегружаем систему для чистоты эксперимента

# reboot

Проверяем логе загрузки:

# journalctl -b
....
pci 0000:06:00.0: PME# supported from D0 D1 D2 D3hot D3cold
pci 0000:06:00.0: 2.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s x1 link at 0000:00:1c.3 (capable of 7.876 Gb/s wit
....

Смотрим здесь:

# cat /proc/acpi/wakeup
Device S-state Status Sysfs node
PS2K S4 *enabled pnp:00:04
PS2M S4 *disabled
UAR1 S4 *disabled pnp:00:05
BR20 S3 *disabled
EUSB S4 *enabled pci:0000:00:1d.0
USBE S4 *enabled pci:0000:00:1a.0
P0P1 S4 *disabled pci:0000:00:01.0
P0P2 S4 *disabled
P0P3 S4 *disabled
P0P4 S4 *disabled
PEX0 S4 *disabled pci:0000:00:1c.0
PEX1 S4 *disabled pci:0000:00:1c.1
PEX2 S4 *disabled pci:0000:00:1c.2
BR14 S4 *disabled pci:0000:04:00.0
PEX3 S4 *disabled pci:0000:00:1c.3
PEX4 S4 *disabled pci:0000:00:1c.4
PEX5 S4 *disabled pci:0000:00:1c.5
PEX6 S4 *disabled
PEX7 S4 *disabled
# cat /sys/bus/pci/devices/0000:06:00.0/power/wakeup
enabled

Теперь можно включить сервер по сети с любого ПК или (как у меня автоматически) с роутера.

https://bugs.centos.org/view.php?id=16486
https://elrepo.org/tiki/HomePage
https://snapcraft.io/install/acpi-tools/centos