Jak włączyć Wake On Lan (WOL) w Ubuntu 16.04

26

Jak włączyć Wake On Lan (WOL) w Ubuntu 16.04 LTS?

nkef
źródło

Odpowiedzi:

21

Znalazłem lepszy sposób, który działał dla mnie. Przynajmniej czystszy sposób. Najwyraźniej Ubuntu zmieniło upstart na systemd , w Ubuntu 15.04, Ubuntu 16.04 i prawdopodobnie także w kolejnych wersjach. Jestem nowy w obu systemach, ale to zadziałało dla mnie.

Ja opublikowania tego powodu podczas googlowania Ubuntu 16 WOL i innych podobnych wyszukiwań natknąłem z tym ogłoszeniem kilka razy. To może pomóc komuś innemu.

Aby WOL działał, musiałem włączać go ponownie przy każdym uruchomieniu systemu. Aby tego uniknąć ręcznie, w tym celu użyłem systemd. Oto co zrobiłem:

  1. Najpierw utwórz plik /etc/systemd/system/[email protected](zachowaj symbol @). Umieść to w tym:

    [Unit]
    Description=Wake-on-LAN for %i
    Requires=network.target
    After=network.target
    
    [Service]
    ExecStart=/sbin/ethtool -s %i wol g
    Type=oneshot
    
    [Install]
    WantedBy=multi-user.target
    
  2. Włącz to dla interfejsu podczas uruchamiania, uruchom następującą komendę (zmień eth3 w swoim interfejsie):

    systemctl enable wol@eth3
    

    Powinieneś zobaczyć coś takiego:

    Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected] to /etc/systemd/system/[email protected].
    
  3. Aby sprawdzić, czy jest włączony, uruchom następującą komendę (zmień interfejs eth3 w interfejsie) i powinien on zwrócić enabled:

    systemctl is-enabled wol@eth3
    
  4. Aby to przetestować, uruchom ponownie i uruchom (zmień eth3 za pomocą interfejsu):

    ethtool eth3
    

    Powinieneś zobaczyć linię z następującymi informacjami:

    Wake-on: g
    

Źródła:

loco.loop
źródło
2
+1 to jest o wiele lepsze. powinien być zaakceptowany.
Stefanos Kalantzis
19

W Ubuntu 16.04 zestawu WOL_DISABLE=Nw /etc/default/tlpcelu uniknięcia coraz WOL wyłączony przez zarządzanie energią TLP.

http://linrunner.de/en/tlp/docs/tlp-configuration.html

Dodaj NETDOWN=now /etc/default/haltcelu zapobieżenia wyłączeniu karty sieciowej podczas zamykania

Włącz Wake on LAN w, /etc/network/interfacesgdy używana jest statyczna konfiguracja sieci.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface

auto lo
iface lo inet loopback
# The primary network interface

auto eth0
iface eth0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
        gateway 192.168.0.1
        dns-nameservers 192.168.0.1
        up ethtool -s eth0 wol g

Włącz budzenie w sieci LAN w BIOS, wejdź do konfiguracji BIOS i poszukaj czegoś o nazwie „Wake up on PCI event”, „Wake up on LAN” lub podobne. Zmień go, aby był włączony. Zapisz ustawienia i uruchom ponownie.

https://help.ubuntu.com/community/WakeOnLan

Ostrzeżenie: niektóre płyty główne / kontrolery sieciowe nie obsługują WOL od zimnego rozruchu (stan S5, w którym zasilanie systemu jest fizycznie wyłączane i ponownie włączane). W takim przypadku należy wykonać co najmniej jeden cykl zasilania (włączenie, wyłączenie). Aby złagodzić ten problem, BIOS można skonfigurować tak, aby włączał się po przywróceniu zasilania prądem przemiennym, a następnie zaplanował wyłączenie w Ubuntu. Więcej informacji można znaleźć w instrukcji płyty głównej.

nkef
źródło
To działało dla mnie 14.04 LTS. Dziękuję Ci!
TenLeftFingers
te dwa komentarze na temat WOL_DISABLE=Ni NETDOWN=nopowinny być częścią help.ubuntu.com/community/WakeOnLan
Alecz
3

Aby WOL działał, upewnij się, że Twój interfejs Ethernet jest poprawnie zamykany przez system po wyłączeniu zasilania.

Spróbuj wykonać następujące czynności:

  1. Utwórz skrypt bash o nazwie wol_poweroff.sh w katalogu /etc/rc6.d/ :

    sudo nano /etc/rc6.d/wol_poweroff.sh
    
  2. Umieść w nim ten kod:

    #!/bin/bash
    ifconfig eth0 down
    poweroff
    
  3. Skopiuj go do katalogu /etc/rc0.d (więc działa również z zatrzymaniem ):

    sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
    
  4. Niech oba będą wykonywalne:

    sudo chmod 755 /etc/rc6.d/wol_poweroff.sh
    sudo chmod 755 /etc/rc0.d/wol_poweroff.sh
    

Teraz sprawdź, czy działa, wyłączając komputer za pomocą narzędzia WOL i wysyłając do niego magiczny pakiet sudo shutdown nowlub sudo poweroffużywając narzędzia WOL.


To była jedyna rzecz, która działała dla mnie. Znalazłem te kroki w zgłoszeniu błędu na launchpad.net.

Według autora, Robbie Williamson, działa to z powodu:

Aby WOL działał, interfejs Ethernet musi zostać poprawnie wyłączony w ramach zamykania systemu. Należy to wykonać jako część poziomów uruchamiania rc0 i rc6, zwracając uwagę, że Linux zwykle ma 7 różnych poziomów uruchamiania (lub trybów działania):

rc0.d - System zatrzymany

rc1.d - Tryb jednego użytkownika

rc2.d - Tryb jednego użytkownika z obsługą sieci

rc3.d - Tryb wielu użytkowników - uruchamia się w trybie tekstowym

rc4.d - Jeszcze nie zdefiniowane

rc5.d - Tryb wielu użytkowników - uruchamianie w X Windows

rc6.d - Wyłącz i uruchom ponownie


Źródło: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/981461

Edson Jr.
źródło
2

Uruchom następujące polecenie w terminalu:

sudo ethtool -s {your network interface} wol g 
sudo ethtool {your network interface}

powinieneś zobaczyć g obok budzenia się po lan po napisaniu drugiego polecenia

źródło

Marwan Nabil
źródło
2

Jeśli używasz NetworkManager, możesz włączyć WOL poprzez nmcli:

nmcli connection show

Zapamiętaj NAZWĘ połączenia TYPU „802-3-ehternet” dla interesującego urządzenia. Powiedzmy, że nazwa to „Połączenie przewodowe 1”. Następnie zmodyfikuj go poprawnie:

nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic

Aby uzyskać adres MAC:

nmcli connection show "Wired connection 1" | grep 802-3-ethernet.mac-address

Od teraz możesz go wyłączyć i włączyć z innego komputera w tej samej sieci LAN za pomocą wakeonlan 1a:2b:3c:4d:5e:6fpolecenia, gdzie 1a:2b:3c:4d:5e:6fjest adres MAC karty LAN z poprzedniego kroku.

Orient
źródło
1

Oprócz parametrów sugerowanych przez @nkef możesz ustawić następujące ustawienia w / etc / network / interfaces, jeśli używasz DHCP zamiast statycznych ustawień IP dla karty LAN (tutaj o nazwie eth0):

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
        ethernet-wol g

(testowany na Ubuntu 16.04 LTS).

rpr
źródło
1

To właśnie mnie ugryzło pod Ubuntu 18.04 (instalacja bezgłowa / minimalna), niestety odpowiedzi już tutaj wymienione, chociaż mogą się wydawać, że czasami działają, nie zapewnią niezawodnego rozwiązania, ponieważ tworzą warunki wyścigowe lub walczą z takimi jak systemd, netplan i udev.

Próbowałem też tego podejścia na początku i wydawało się, że działa, planuję system uruchamiać każdego wieczora za pomocą WakeOnLan, aby uruchamiał kopie zapasowe, ponieważ system BIOS nie zapewnia zaplanowanej opcji włączenia.

Będzie działał przez kilka dni, a następnie odmówi przebudzenia, ręcznego włączenia go i uruchomienia ettoola ujawniło, że WoL został wyłączony:

    Wake-on: d

Uznałem więc, że coś innego musiało zostać wyłączone i miałem wiele takich problemów w ciągu ostatnich kilku lat, kiedy systematycznie przejmowałem części systemu, postanowiłem tu zacząć, oto:

WakeOnLan = .. .. Domyślnie wyłączone.

https://www.freedesktop.org/software/systemd/man/systemd.link.html

Przykłady online pokazują coś w stylu:

/etc/systemd/network/50-wired.link

[Match]
MACAddress=<MAC ADDRESS>

[Link]
WakeOnLan=magic

Jakkolwiek to wciąż nie działało. Potem natrafiłem na to:

udevadm test-builtin net_setup_link  /etc/systemd/network/50-wired.link

co spowodowało:

Load module index
Parsed configuration file /lib/systemd/network/99-default.link
Parsed configuration file /etc/systemd/network/50-wired.link
Parsed configuration file /run/systemd/network/10-netplan-eno1.link

A co mogę znaleźć w /run/systemd/network/10-netplan-eno1.link?

[Match]
MACAddress=<MAC ADDRESS>

[Link]
Name=eno1
WakeOnLan=off

Rozwiązanie Albo:

  1. usuń netplan,
  2. konfiguracja sieci przez konfigurację netplan,
  3. lub ustaw systemowy plik .link na wyższy priorytet.

Ponieważ miałem już systemowy plik .link, po prostu zmieniłem jego nazwę na 00-wired.link, ponownie uruchomiłem i teraz raporty ento1 ethtool:

    Wake-on: g

Bez żadnych dodatkowych usług wyłącznie w celu próby włączenia WoL.

Daniel Squires
źródło