Wake on LAN bei Raspberry Pi's

  • Hi,


    jetzt fragt sich sicherlich jemand, warum ich bei Stromversorgung das Thema Wake on LAN aufmache. Diejenigen, die sich damit schon ein wenig näher befasst haben wissen, dass dies zusammenhängt. Eine Wake on LAN Funktionalität würde nur funktionieren, wenn die Netzwerkkarte dauerhaft mit Strom versorgt wird. Dies ist bei den Raspberry Pi Modellen standardmäßig nicht der Fall. Die Netzwerkkarte ist mit dem USB-Hub verbunden. Bedeutet eine Raspberry Pi startet erst, wenn ich den Stecker (wieder) einstecke.


    Softwareseitig bin ich nicht sicher, was ich lösen müsste. Ich müsste vermutlich den Kernel umschreiben, oder? Die Konfiguration wäre wie bei jedem Gerät bspw. wie folgt machbar:


    Code
    sudo apt-get install ethtool
    sudo apt-get install etherwake
    
    sudo ethtool -s eth0 wol g


    Kann man auch tatsächlich so installieren und konfigurieren. Jedoch kann man nicht über


    Code
    sudo etherwake -i eth0 [MAC]


    die Raspberry Pi aufwecken, da eben die Netzwerkkarte nicht mit Strom versorgt ist oder eine eingeschaltene Raspberry Pi noch einmal aufgeweckt werden kann.


    Eine Lösung sind Funkschaltsteckdosen, die man davor setzt (bzw. die Raspberry Pi in einer dieser einsteckt und diese in die eigentliche Steckdose steckt) und entsprechend anschält. Das ist für mich aber nicht der Punkt. Alternativen für eine USV wären sicherlich auch mal interessant, löst aber nicht die Problematik, dass die Raspberry Pi, nachdem sie (versehentlich) heruntergefahren wurde, wieder angeschalten werden kann.


    Klar kann man sagen: "Junge, steh auf, beweg dich und ziehe den Stecker und stecke ihn wieder ein!"


    Haha, denkst du. Ich spreche hier von Raspberry Pi`s, die unter Umständen gar nicht so leicht erreichbar sind, je nachdem, wo sie installiert wurden. Da kommt man entsprechend nur einmal hin oder nur ungeschickt usw. und die LAN-Verkabelung würde in diesem Szenario einmal installiert werden und bleiben. Meinetwegen müsste man sonst jedes mal eine Leiter holen oder hinter einer (künstlichen) Wand klettern oder sonst etwas.


    Genug Motivation und hätte, wäre, wenn für dieses Thema. Was nicht geht und warum es nicht geht, ist jetzt jedem klar und welche Vorteile man sich erhoffen könnte. Eine Raspberry Pi kostet vielleicht nur 6 bis 7 € Strom pro Jahr. Schaltsteckdosen würden dahingehend den Preis noch einmal erhöhen.


    Ich spreche ja nicht grundlos an, dass man softwareseitig vermutlich den Kernel umschreiben müsste. Der entscheidenere Part ist jedoch, was könnte ich auf der Hardwareseite tun? Wir basteln doch alle an Raspberry Pi`s öfter rum. Löten irgendwelche Stecker oder auch meinetwegen Platinen oder sonst etwas, was wir mit der Raspberry Pi verbinden. Wenn ich die Raspberry Pi herunterfahre (über SSH), dann stecke ich den Stecker ja nicht aus und wenn ich Stunden oder Tage später wieder ran will, dann wäre es ja durchaus elegant, wenn ich eben den Stecker nicht noch einmal einstecken müsste. Kurz: Die rote LED leuchtet ja weiterhin und die Raspberry Pi hat in gewissermaßen doch auch eine Stromversorgung. Nur eben nicht der USB-Hub bzw. für diesen Use Case die Netzwerkkarte. Mein theoretischer Ansatz wäre es, dass ich die Stromversorgung der Netzwerkkarte eben nicht mehr über den USB-Hub realisiere. Bleiben wir einfach mal in diesem Szenario ohne mögliche Nachteile zu bedenken. Was müsste ich genau dafür tun? Welche Bauteile würde ich benötigen? Und an welchem Punkt, müsste ich einen Schalter oder einen Widerstand umgehen und wo entsprechend neu anlegen? (Ich kann ja unmöglich der Erste sein, der sich darüber Gedanken macht). Und als nächstes müsste man dann doch auch bedenken, wie schaffe ich es, die Netzwerkkarte sauber mit dem Rest der Raspberry Pi zu integrieren. Hätte die Abkapselung der Stromversorgung zur Folge, dass Daten nicht mehr mit der Raspberry Pi ausgetauscht werden würden? Daten- und Stromleitungen liegen ja manchmal zusammen. Kann ich dies separat voneinander verkabeln? Wenn ja, wie? Wenn Daten- und Stromleitung nicht voneinander trennbar wären, was wäre die Folge? Normalerweise würde ich ja davon ausgehen, dass dies geht. Im Zweifel Kabel aus der Isolierung rausnehmen und die Ader für die Stromversorung abzwicken. Die Datenleitung nutzt ja auch verschiedene Spannungen für die Signale, nur die Stromleitung würde konstant genug Spannung zur Verfügung stellen, dass die Netzwerkkarte betrieben werden kann. Was würde aber passieren, wenn es wirklich nicht trennbar wäre, ich eine zweite Stromleitung anlege, die die Netzwerkkarte dauerhaft mit Strom versorgt? Ich müsste nach dem Einschalten diese Stromzufuhr wieder unterbinden, da die Netzwerkkarte nun wieder über den USB-Hub mit Strom versorgt werden würde. Ergo müsste ich ebenfalls einen "Schalter" berücksichtigen. Und wie erkennt dieser, dass die Raspberry Pi nun geweckt werden würde? Ich meine man sollte ja vermeiden, dass man die Netzwerkkarte grillt... Das wäre jetzt aber nur die Überlegung zur Stromversorgung der Netzwerkkarte. Eine weitere Kleinigkeit dürfte man nicht außer Acht lassen. Die Platine ist ja grundlegend nicht dafür konzipiert worden. Was müsste sich ändern, dass die Netzwerkkarte dann tatsächlich die Raspberry Pi aufwecken könnte? Sie alleine mit Strom zu versorgen, wäre ja vermutlich nicht die Lösung. Da fehlt noch etwas.


    Mich interessiert daher die technische Frage, wie ich die Platine "umbauen" müsste. Und vielleicht hat da sogar jemand mal die Lust gehabt, ein wenig zu experimentieren. Für verschiedene Lösungen, bin ich gerne offen. Bevor jetzt jemand sagt, dass man einfach den Stecker ziehen könnte, an dem später die Raspberry Pi eingesteckt wird, wie bspw. bei Verlängerungskabeln oder Mehrfachsteckdosenleisten, dem verneine ich schon direkt. Auch wenn man Wände oder was weiß ich hochzieht, sind manchmal schon auch Steckdosen an "unmöglichen" Stellen verbaut.


    Mir geht es da um die Alternative und ehrlicherweise verstehe ich auch nicht, warum man dies nicht gleich von Werk aus bedacht hat. Wenn wir jetzt an Smart Home denken, dann wird dies ja auch bei jedem noch so unbedeutendem Kleingerät (gewisse Wecker, Uhren etc.) berücksichtigt. Warum also nicht auch bei Raspberry Pi`s.


    (Trotz einiger Einwände, ein ernst gemeintes Thema. Ich meine ich weiß ja schon vorab, was da teilweise wie kommen würde).


    Liebe Grüße

    • Official Post

    Am Kernel rumfummeln bringt garnichts, weil der RPi in diesem Moment runtegefahren ist und somit keine Software mehr läuft.

    Einen ESP32 (o.ä.) daneben setzen und diesen per WLAN mittels Optokoppler oder Transistor den Pin5 / GPIO03 des RPi kurz gegen GND schalten lassen, wäre ggf. eine Möglichkeit, wenn man zu faul ist aufzustehen oder der RPi hinter der Schrankwand hängt. :conf:

  • Der Pi, welches Modell auch immer, ist und bleibt ein Lern- und Bastelgerät, der einem breiten Publikum preiswert die IT näherbringen soll.

    Wenn der Pi selbst kein WoL (technisch/hardwaremässig) kann, musst Du Dir ein Workaround selbst erbasteln, z.B. über die freien Adern des Netzwerkkabels, oder einen Microprozessor, der den Netzwerktraffic ständig überprüft.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Man könnte den RPI z.B. über einen ESP8266/ESP32 einschalten lassen. Der Mikrocontroller muss sich dann nur mit WLAN verbinden.


    • UDP-Socket auf Port 9 öffnen
    • Bei ankommenden Magic Packets die MAC-Adresse mit einer im uC hinterlegten Adresse vergleichen
    • Wenn der Vergleich positiv ist, dann z.B. über ein GPIO ein Relais schalten, dass dann den RPI einschaltet


    Alternativ: Hardware kaufen, die das kann.