So aktivieren Sie Wake On Lan (WOL) in Ubuntu 16.04

26

Wie aktiviere ich Wake On Lan (WOL) in Ubuntu 16.04 LTS?

nkef
quelle

Antworten:

21

Ich habe einen besseren Weg gefunden, der für mich funktioniert. Zumindest sauberer. Anscheinend hat Ubuntu den Upstart für systemd geändert , in Ubuntu 15.04, Ubuntu 16.04 und vermutlich auch in den nächsten Versionen. Ich bin neu in beiden Systemen, aber das hat bei mir funktioniert.

Ich poste dies, weil ich beim googeln von Ubuntu 16 wol und anderen ähnlichen Suchen mehrmals auf diesen Beitrag gestoßen bin. Das könnte jemand anderem helfen.

Damit WOL weiterhin funktioniert, musste ich es bei jedem Systemstart erneut aktivieren. Um dies nicht manuell zu tun, habe ich zu diesem Zweck systemd verwendet. Das habe ich gemacht:

  1. Erstellen Sie zunächst die Datei /etc/systemd/system/[email protected](behalten Sie das @ -Symbol bei). Gib das ein:

    [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. Aktivieren Sie dies für die Schnittstelle beim Booten, führen Sie den folgenden Befehl aus (ändern Sie eth3 mit Ihrer Schnittstelle):

    systemctl enable wol@eth3
    

    Sie sollten so etwas sehen:

    Created symlink from /etc/systemd/system/multi-user.target.wants/[email protected] to /etc/systemd/system/[email protected].
    
  3. Um zu überprüfen, ob es aktiviert ist, führen Sie den folgenden Befehl aus (ändern Sie eth3 mit Ihrer Schnittstelle) und es sollte zurückkehren enabled:

    systemctl is-enabled wol@eth3
    
  4. Um dies zu testen, starten Sie das Programm neu und führen Sie es aus (ändern Sie eth3 mit Ihrer Schnittstelle):

    ethtool eth3
    

    Sie sollten eine Zeile mit folgenden Angaben sehen:

    Wake-on: g
    

Quellen:

loco.loop
quelle
2
+1 das ist viel besser. sollte der Akzeptierte sein.
Stefanos Kalantzis
19

In Ubuntu 16.04 Satz WOL_DISABLE=Nin /etc/default/tlpWOL zu vermeiden , indem TLP Power - Management deaktiviert bekommen.

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

Fügen Sie NETDOWN=noin /etc/default/haltzu verhindern , beim Herunterfahren von der Netzwerkkarte einschalten

Aktivieren Sie Wake on LAN in, /etc/network/interfaceswenn die statische Netzwerkkonfiguration verwendet wird.

# 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

Aktivieren Sie Wake-on-LAN im BIOS, rufen Sie das BIOS-Setup auf und suchen Sie nach "Wake-up on PCI event", "Wake-up on LAN" oder ähnlichem. Ändern Sie es so, dass es aktiviert ist. Speichern Sie Ihre Einstellungen und starten Sie neu.

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

Warnung Einige Motherboards / Netzwerkcontroller unterstützen WOL nach dem Kaltstart nicht (S5-Status, in dem die Stromversorgung des Systems physisch aus- und wieder eingeschaltet wird). In diesem Fall muss mindestens ein Aus- und Wiedereinschalten (Einschalten, Ausschalten) durchgeführt werden. Um das Problem zu beheben, kann das BIOS so konfiguriert werden, dass es beim Wiederherstellen der Netzstromversorgung hochfährt und anschließend in Ubuntu heruntergefahren wird. Weitere Informationen finden Sie im Handbuch des Motherboards.

nkef
quelle
Das hat bei mir am 14.04 LTS geklappt. Vielen Dank!
TenLeftFingers
diese beiden Kommentare über WOL_DISABLE=Nund NETDOWN=nosollen Teil seines help.ubuntu.com/community/WakeOnLan
Alecz
3

Damit WOL funktioniert, stellen Sie sicher, dass Ihre Ethernet-Schnittstelle beim Ausschalten ordnungsgemäß von Ihrem System heruntergefahren wird.

Versuche Folgendes:

  1. Erstellen Sie ein Bash-Skript mit dem Namen wol_poweroff.sh im Verzeichnis /etc/rc6.d/ :

    sudo nano /etc/rc6.d/wol_poweroff.sh
    
  2. Gib diesen Code ein:

    #!/bin/bash
    ifconfig eth0 down
    poweroff
    
  3. Kopieren Sie es in das Verzeichnis /etc/rc0.d (so funktioniert es auch mit halt ):

    sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
    
  4. Machen Sie beide ausführbar:

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

Testen Sie nun, ob es funktioniert, indem Sie Ihren Computer mit sudo shutdown nowoder sudo poweroffausschalten und ein WOL-Tool verwenden, um ein magisches Paket an ihn zu senden.


Das war das einzige, was für mich funktioniert hat. Ich habe diese Schritte in einem Fehlerbericht auf launchpad.net gefunden.

Laut dem Autor Robbie Williamson funktioniert dies aus folgenden Gründen:

Damit WOL funktioniert, muss die Ethernet-Schnittstelle im Rahmen des Herunterfahrens des Systems ordnungsgemäß heruntergefahren werden. Dies sollte als Teil der Runlevel rc0 und rc6 durchgeführt werden, wobei zu beachten ist, dass Linux normalerweise 7 verschiedene Runlevel (oder Betriebsmodi) hat:

rc0.d - System angehalten

rc1.d - Einzelbenutzermodus

rc2.d - Einzelbenutzermodus mit Netzwerk

rc3.d - Multi-User-Modus - Booten Sie im Textmodus

rc4.d - Noch nicht definiert

rc5.d - Mehrbenutzermodus - Booten Sie in X Windows

rc6.d - Herunterfahren und Neustarten


Quelle: https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/981461

Edson Jr.
quelle
2

Führen Sie im Terminal Folgendes aus:

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

Nachdem Sie den zweiten Befehl geschrieben haben, sollten Sie ein g neben Wake-on-Lan sehen

Quelle

Marwan Nabil
quelle
2

Wenn Sie NetworkManager verwenden, können Sie WOL über Folgendes aktivieren nmcli:

nmcli connection show

Erinnern Sie sich an den NAMEN der Verbindung von "802-3-ehternet" TYP für GERÄT von Interesse. Sagen Sie, es heißt "Kabelverbindung 1". Dann ändern Sie es richtig:

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

So erhalten Sie die MAC-Adresse:

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

Von nun an können Sie es per wakeonlan 1a:2b:3c:4d:5e:6fBefehl von einem anderen Computer im selben LAN aus und wieder einschalten. Dabei handelt es sich 1a:2b:3c:4d:5e:6fum die MAC-Adresse der LAN-Karte aus dem vorherigen Schritt.

Orient
quelle
1

Neben den von @nkef vorgeschlagenen Parametern können Sie in / etc / network / interfaces Folgendes festlegen, wenn Sie DHCP anstelle von statischen IP-Einstellungen für den LAN-Adapter (hier eth0 genannt) verwenden:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
        ethernet-wol g

(getestet auf Ubuntu 16.04 LTS).

rpr
quelle
1

Dies hat mich auch unter Ubuntu 18.04 (kopflose / minimale Installation) gebissen. Leider bieten die hier bereits aufgeführten Antworten, obwohl sie manchmal zu funktionieren scheinen, keine verlässliche Lösung, da sie Rennbedingungen schaffen oder mit ähnlichen Systemen wie systemd kämpfen. netplan und udev.

Anfangs hatte ich auch diesen Ansatz ausprobiert, und es schien zu funktionieren. Ich plane, jeden Abend ein System über WakeOnLan zu booten, um Sicherungen auszuführen, da das System-BIOS keine geplante Option für das Einschalten von Wechselstrom bietet.

Es würde für ein paar Tage funktionieren und sich dann weigern aufzuwachen. Wenn man es manuell einschaltet und ethtool ausführt, sieht man, dass WoL deaktiviert wurde:

    Wake-on: d

Also nahm ich an, dass etwas anderes sein musste, um es wieder auszuschalten, und nachdem ich in den letzten Jahren viele solcher Probleme mit der Übernahme von Teilen des Systems durch systemd hatte, entschied ich mich, hier anzufangen, siehe da:

WakeOnLan = .. .. Standardmäßig deaktiviert.

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

Beispiele online zeigen etwas in der Art von:

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

[Match]
MACAddress=<MAC ADDRESS>

[Link]
WakeOnLan=magic

Wie auch immer, das funktionierte immer noch nicht. Dann bin ich auf folgendes gestoßen:

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

Was dazu geführt hat :

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

Und was finde ich in /run/systemd/network/10-netplan-eno1.link?

[Match]
MACAddress=<MAC ADDRESS>

[Link]
Name=eno1
WakeOnLan=off

Lösung Entweder:

  1. netplan entfernen,
  2. Einrichten der Vernetzung über eine Netplan-Konfiguration,
  3. oder setzen Sie die systemd .link-Datei auf eine höhere Priorität.

Da ich die systemd .link-Datei bereits hatte, habe ich sie einfach in 00-wired.link umbenannt, neu gestartet und jetzt meldet ethtool eno1:

    Wake-on: g

Ohne zusätzliche Dienste, die ausschließlich dazu dienen, WoL zu aktivieren.

Daniel Squires
quelle