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 ethtoolWyświetlamy konfigurację interfejsu poleceniem:
ip lPonieważ 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 1000Ethtool 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: dStrona 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:
Opcja Wake-on powina zmienić cię na:
Wake-on: gTeraz czas wyłączyć nasz komputer i z innej maszyny wysłac pakiet:
wakeonlan bc:24:11:09:9c:7dPamiętaj wcześniej o instalcji pakietu wakeonlan
na innej maszynie np:
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: dZatem 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ść:
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:
wol.service
jest nazwą swerisu i jednocześnie to nazwa pliku w którym go zdefiniowaliśmy. Możesz sprawdzić status:
To wszystko.