Rozwiązanie problemu Wake on Lan na niektórych płytach z kartą sieciową Realtek. Zakupiłem Dell Wyse i napotkałem, pewien problem: co prawda, w menu BIOS-u znajduje się opcja umożliwiająca wybudzenie z zamknięcia, lecz komputer nie reaguje na [magiczne pakiety] -> pakiety WOL. Jak zatem wybudzić komputer z uśpienia (APM S3), hibernacji (S4), wyłączenia (S5)?
Na początku trzeba zrozumieć w jaki sposób karta sieciowa zachowuje się podczas usypiania / hibernowania lub wyłączania komputera.
Na początek zainstalujmy niezbędene pakiety (zaloguj sie do systemu jako root):
apt install ethtool
Wyświetlamy konfigurację interfejsu poleceniem:
ip l
Ponieważ mój komputer wyświetla kilka interfejsów, poniżej podaję jeduynie dane wyjściowe interfejsu, który mnie interesuje, a nie całe dane wyjściowe polecenia.
2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether bc:24:11:09:9c:7d brd ff:ff:ff:ff:ff:ff
altname enp0s18
sudo ethtool enp4s0
Ethtool poda konfigurację informacje Wake-On-LAN, ale musisz uruchomić go jako root. Ważne linie na wyjściu znajdują się na dole i wyglądają mniej więcej tak, jeśli obsługują funkcję Wake-On-LAN.
Supports Wake-on: pumbg Wake-on: d
Strona podręcznika dla ethtool wyjaśnia, co oznacza ten tajemniczy "pumbg" - litery oznaczają różne opcje obsługiwane przez ten interfejs dla Wake-On-LAN. W tym przypadku są to:
Option Description p Wake on PHY activity u Wake on unicast messages m Wake on multicast messages b Wake on broadcast messages a Wake on ARP g Wake on MagicPacket messages s Enable SecureOn™ password for MagicPacket™ f Wake on filter(s) d Disable (wake on nothing). This option clears all previous options.
Ostatnia opcja, na której ustawiono interfejs: d. Oznacza to (obudź się bez niczego). Ta opcja usuwa wszystkie poprzednie opcje. Teraz, gdy wiem, że karta to obsługuje, nadszedł czas, aby to wypróbować. Uruchamiamy zatem:
ethtool --change enp4s0 wol g
Opcja Wake-on powina zmienić cię na:
Wake-on: g
Teraz czas wyłączyć nasz komputer i z innej maszyny wysłac pakiet:
wakeonlan bc:24:11:09:9c:7d
Pamiętaj wcześniej o instalcji pakietu wakeonlan
na innej maszynie np:
apt install wakeonlan
Komputer obudził się, zatem:
Czas zrobić to trwalePrzyczynami nie działania WOL jest, to że karata po każdym restarcie włącza opcję:
Wake-on: d
Zatem utwórzmy serweri, który za każdym razem będzie przełączał kartę w tryb g
Komenda which ethtool
wskaże gdzie znajduje się polecenie ethtool. W Debianie będzie to: /usr/sbin/ethtool
, tworzymy zatem plik /etc/systemd/system/wol.service
. Wklejamy poniższą treść:
[Unit]
Description=Enable Wake On Lan
[Service]
Type=oneshot
ExecStart = /usr/sbin/ethtool --change enp4s0 wol g
[Install]
WantedBy=basic.target
Pamiętaj by podać nazwę interfejsu sieciowego w twoim komputerze u mnie to: enp4s0
, ścieżka do ethtool
może także się różnić, jeśli to Debian będzie taka sama
By uruchomić serwis wykonaj poniższe polecenia:
systemctl daemon-reload
systemctl enable wol.service
wol.service
jest nazwą swerisu i jednocześnie to nazwa pliku w którym go zdefiniowaliśmy. Możesz sprawdzić status:
systemctl status wol
To wszystko.