Antworten:
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:
Erstellen Sie zunächst die Datei /etc/systemd/system/wol@.service
(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
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/wol@eth3.service to /etc/systemd/system/wol@.service.
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
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:
Emporkömmling:
Upstart ist ein ereignisbasierter Ersatz für den Daemon / sbin / init, der das Starten von Tasks und Diensten während des Startvorgangs, das Stoppen während des Herunterfahrens und das Überwachen dieser Tasks während des Systembetriebs übernimmt.
- upstart - ereignisbasierter Init-Daemon
systemd:
systemd ist eine Reihe grundlegender Bausteine für ein Linux-System. Es bietet einen System- und Service-Manager, der als PID 1 ausgeführt wird und den Rest des Systems startet. (...)
- systemd
In Ubuntu 16.04 Satz WOL_DISABLE=N
in /etc/default/tlp
WOL zu vermeiden , indem TLP Power - Management deaktiviert bekommen.
http://linrunner.de/tlp/docs/tlp-configuration.html
Fügen Sie NETDOWN=no
in /etc/default/halt
zu verhindern , beim Herunterfahren von der Netzwerkkarte einschalten
Aktivieren Sie Wake on LAN in, /etc/network/interfaces
wenn 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.
WOL_DISABLE=N
und NETDOWN=no
sollen Teil seines help.ubuntu.com/community/WakeOnLan
Damit WOL funktioniert, stellen Sie sicher, dass Ihre Ethernet-Schnittstelle beim Ausschalten ordnungsgemäß von Ihrem System heruntergefahren wird.
Versuche Folgendes:
Erstellen Sie ein Bash-Skript mit dem Namen wol_poweroff.sh im Verzeichnis /etc/rc6.d/ :
sudo nano /etc/rc6.d/wol_poweroff.sh
Gib diesen Code ein:
#!/bin/bash
ifconfig eth0 down
poweroff
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
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 now
oder sudo poweroff
ausschalten 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
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
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:6f
Befehl von einem anderen Computer im selben LAN aus und wieder einschalten. Dabei handelt es sich 1a:2b:3c:4d:5e:6f
um die MAC-Adresse der LAN-Karte aus dem vorherigen Schritt.
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).
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:
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.