Meinen Raspberry Pi (RPi, Model B) wollte ich aus der Ferne mit Wake On LAN (WOL) wecken. Doch leider musste ich feststellen, dass das „Out of the Box“ nicht funktioniert. Deswegen wollte ich verstehen, warum es nicht funktioniert und ob zukünftig eine Lösung in Sicht ist.
Überprüft man die Funktionalität der Netzwerkkarte mit ethtools (muss bei einigen Systemen erst installiert werden), stellt man folgendes fest:
ethtool eth0 | grep Wake-on
Supports Wake-on: g
Wake-on: d
Auf der man-page von ethtool kann man lesen, was diese zwei Optionen bedeuten:
g Wake on MagicPacket(tm)
d Disable (wake on nothing). This option clears all previous options.
Konkret bedeutet das, dass die Netzwerkkarte grundsätzlich WOL über MagicPacket unterstützt, dieses aber abgeschaltet (disabled) ist. Diese Funktion kann softwareseitig so eingeschaltet und überprüft werden:
ethtool -s eth0 wol g
ethtool eth0 | grep Wake-on
Noch sicherstellen, dass die Karte nicht abgeschaltet wird:
sudo vi /etc/init.d/halt
NETDOWN=no
und falls vorhanden:
sudo vi /etc/default/acpi-support
STOP_SERVICES="networking"
Jetzt haben wird einen Netzwerkkarte, welche softwareseitig WOL unterstützt. Installiert man per „apt-get“ pm-utils auf XBian, funktionieren jedoch pm-hibernate, pm-suspend noch ein anderer pm-Befehl. Noch ein anderer Versuch: shutdown now -h. Jetzt fährt der Rechner zumindest herunter. Aber er fährt nicht hoch, wenn man ihn von einem anderen Rechner aus via WOL wecken will (MAC-Adresse durch die eigene ersetzen):
ifconfig eth0 | grep "HWaddr"
wol 00:00:00:00:00:00
Sucht man ein wenig nach dem Grund, wird man hier oder hier fündig. Die Netzwerkkarte ist beim RPi intern über USB „angeschlossen“. Für WOL wird eine mit Strom versorgte LAN-Karte benötigt. Leider unterstützt das der RPi nicht. Deswegen kann man softwareseitig tun, was man will – die Hardware scheint hier die Grenze zu sein.
Eine Lösung, die dort vorgestellt wird, ist es den RPi immer an zu lassen – er verbraucht ja „kaum“ Strom. Da ich das leider nicht quantifizieren kann und mir Referenzwerte fehlen, schalte ich die Kiste doch lieber manuell (bzw. zeitgleich mit meinem Fernseher über dessen USB Port) an und aus. Wer ihn an lassen will, kann den CPU Governor ein wenig modifizieren und die Mindesttaktzahl des RPi (lt. vorigem Link auf 100? Hz) herunterstellen.
Eine Alternative ist eine aus der Ferne steuerbare Steckdose. Hier kenne ich beispielsweise die AVM Fritz!DECT 200 oder ein komplettes Heimautomatisierungssystem wie der Z-Wave Gateway VERA / MIOS von Micasaverde.
Über Hinweise, wie man den RPi doch über WOL wecken kann, freue ich mich natürlich sehr =)
EDIT 2019-08-10
Auf Heise gibt es seit kurzem eine schöne Lösung, wie man den „an“ Knopf des PC fernsteuern kann:
https://www.heise.de/ratgeber/ESP8266-PCs-per-WLAN-einschalten-ausschalten-und-neustarten-4417866.html
Problem hier: Der RPi hat keinen solchen An / Aus Knopf.
Da ich mittlerweile mein gesamtes Netzwerk mit PoE Switches ausgestattet ist, kann ich hier über den entsprechenden PoE Splitter den RPis mit Strom versorgen und eben damit auch den RPi an oder ausschalten und ggf. auch neustarten.