[PoC]: WakeMeUp - beliebige (VDR-)Rechner lassen sich per WoL wecken...

  • Hi,


    da mir das nvram-Gefummel mit diversen bereits betagten Boards mittlerweile ziemlich auf die Nerven ging, habe ich mir jetzt meine eigene Lösung gebastelt.


    Im Prinzip ist es ein kleiner TCP-Server, der bei einer TCP-Anfrage vom Client einen gültigem Timestamp übergeben bekommt und diesen dann benutzt, um den jeweiligen Rechner aufzuwecken.
    Ein einfaches

    Code
    echo $[`date +%s`+600] | nc -n 10.1.1.6 9999


    genügt, um wenige Minuten später ein Wake-on-Lan-Paket zu empfangen :)


    Die VDR-Rechner bekommen einen Shutdown-Hook, welcher o.g. Kommando mit dem nächsten Timer absetzt, der Rechner mit dem Server kümmert sich ums Aufwecken.
    Das Ganze setzt natürlich voraus, dass man einen Rechner im Netz hat, der immer läuft - bei mir ist es z.B. die Linux-Firewall...


    Das Script habe ich mal eben in einer Stunde hingefrickelt, also keine Wunder erwarten ;)
    Vielleicht kanns ja jemand gebrauchen...


    Entsprechendes allgemeines Interesse vorausgesetzt, würde ich das natürlich mal noch ordentlich machen - für mich allein lohnt der Aufwand nicht.


    Gruß,
    Matze



    Edit:
    Es gibt wieder eine neue Version.
    Da das Projekt mittlerweile dem anfänglichen "Frickelstatus" entwachsen ist, gibts diesmal auch ein Announcement dazu: [Announce] WakeMeUp - Server / Client.


    Stand: 17.02.2008

  • würde das vielleicht auch mit einem router als server funktionieren. die laufen doch auch teilweise mit einer linux-distribution!
    wie z.b. die fritz.box. oder?


    wäre echt cool...

    my VDR...
    VDR 1.7.10 | XBMC | Ubuntu Karmic |MSI G45M Digital | Pentium Dual-Core E5200 2.50GHz | 6GB RAM | TT S-2300 + Speichermod + Full TS Mod (selfmade) | TT S-1600


    my SZ-VDR...
    VDR 1.7.10 | XBMC als Frontend | Ubuntu Karmic | Aspire Revo | Intel Atom 230 1,6 Ghz | 2GB RAM | Streamdevclient


    myProjects...
    iVDR - VDR-Frontend and LiveTV for TouchDevices

  • Hi Phill,


    klar doch, sofern sie Perl drauf haben und die Socket-Bibliothek :)
    Die Fritzbox hat m.W. alles benötigte drauf.


    Gruß,
    Matze


    Edit: Nicht ganz, leider fehlt mir bei der Fritzbox die Möglichkeit, MAC-Adressen manuell einzutragen - aber vielleicht bin ich ja nur blind.

  • also ich hätte interesse wenn es mit der fritzbox laufen würde.
    nur kann ich dir mit dem problem der mac adresse nicht weiterhelfen.


    weiss sonst jemand wie man das problem lösen könnte???

    my VDR...
    VDR 1.7.10 | XBMC | Ubuntu Karmic |MSI G45M Digital | Pentium Dual-Core E5200 2.50GHz | 6GB RAM | TT S-2300 + Speichermod + Full TS Mod (selfmade) | TT S-1600


    my SZ-VDR...
    VDR 1.7.10 | XBMC als Frontend | Ubuntu Karmic | Aspire Revo | Intel Atom 230 1,6 Ghz | 2GB RAM | Streamdevclient


    myProjects...
    iVDR - VDR-Frontend and LiveTV for TouchDevices

  • Hmm, außer Phill scheints ja bisher keiner zu brauchen :(


    Nunja, ich habe das Script nun doch mal noch etwas erweitert und verbessert.
    Unter Anderem hat es jetzt einen lokalen Cache, diverse Kommandozeilen-Optionen, Syslog-Support und kann als Dämon im Hintergrund laufen...


    Im Paket sind folgende Dateien:


    1. /etc/default/wakemeup (Client)
    2. /usr/share/vdr/shutdown-hooks/S99.wakemeup (Client)
    3. /usr/local/bin/wakemeup.pl (Server)


    Auf dem Server-Rechner sind - sofern noch nicht vorhanden - folgende Pakete einzuspielen:
    libgetopt-mixed-perl, libsys-syslog-perl, at, net-tools, perl, wakeonlan


    Auf dem Client ist in der Datei /etc/default/wakemeup noch IP und Port des Servers einzutragen und ENABLED=1 zu setzen.
    Testen kann man das dann z.B. so:


    Code
    /bin/bash /usr/share/vdr/shutdown-hooks/S99.wakemeup $[`date +%s`+900]


    Viele Grüße,
    Matze



    PS.: Läuft bei mir bereits seit einigen Tagen sehr zuverlässig :)



    Edit: neueste Version im ersten Posting...

  • Hi,


    ich habe das Ganze nun mal "debianisiert" :)


    Folgende Vorgehensweise beim Installieren ist empfohlen:


    Server:

    Code
    apt-get update && apt-get install libgetopt-mixed-perl libsys-syslog-perl at net-tools perl wakeonlan
    dpkg -i wakemeup-server_0.4_i386.deb


    Dann noch "/etc/default/wakemeup-server" anpassen (ENABLED auf 1 setzen) und den Dienst mittels "/etc/init.d/wakemeup-server start" starten.


    Client:

    Code
    apt-get update && apt-get install netcat
    dpkg -i vdr-addon-wakemeup_0.3_i386.deb


    Dann noch "/etc/default/vdr-addon-wakemeup" anpassen (Server-IP eintragen und ENABLED auf 1 setzen).


    So sollte es laufen :)
    Bei mir läuft auf dem Server und einem VDR ein Debian testing (lenny) und auf dem anderen VDR ein Debian stable (etch).


    Gruß,
    Matze



    PS.: Bin zwar kein Debian-Maintainer, hoffe jedoch, dass die Pakete der Policy entsprechen.

  • Hi,
    Also ichhabe einen fli4l - router auf Basis eines alten P1 permanent laufen. Ich gehe avon aus das das dann möglich ist.
    Jetzt muß nur noch einer Ahnung haben wie ich denn modifiziere (ich habs nicht :-)) )


    Aber ich werde mir das sicher anschauen...


    Danke

    HD: yaVDR 0.3, AT3IONT-I, CINE2S, NVRAM, X10, 2.5´ 320GHDD
    SD: ctvdr 7 vdr 1.6.0, MSI 6318 (Medion2000), 667MHz, NVRRAM, WOL 500G HD
    TV: Sharp LC52XL2E (100Hz), Beamer: Sanyo Z5

  • Hi,


    es gibt eine neue Client-Version.


    Gestern war mir beim Herunterfahren meines Wohnzimmer-VDRs aufgefallen, dass der Server wohl einen ungültigen Timestamp empfangen hat und infolgedessen keine Aufwachzeit gesetzt wurde.
    Nachdem ich eine Weile den vermeintlichen Fehler gesucht habe, fiel es mir wie Schuppen von den Augen - ich hatte keinen Timer ;)
    Dem Server wurde also 0 als Zeitstempel übergeben, was dieser logischerweise mit einer entsprechenden Fehler-Meldung quittierte.


    Das hat mich auf die Idee gebracht, dass noch ein wichtiges Feature fehlt - das Aufwachen zu regelmäßigen Uhrzeiten, um z.B. die EPG-Daten zu aktualisieren - so wie es sich auch für nvram-wakeup einstellen lässt.


    - Timer=0 (also kein Timer) wird nun abgefangen
    - regelmäßige Aufwachzeiten sind genauso wie bei nvram-wakeup einstellbar
    - Eigentümer und Gruppe des Shutdown-hooks wird nun auf vdr gesetzt (war vorher root)


    Gruß,
    Matze



    ToDo:
    - Server mit Switch "-T" (Tainted-Mode) laufen lassen
    - User/Group des Servers nach dem Start auf nobody:nogroup setzen
    - zweiten Zeitstempel übermitteln, um Zeitabweichungen zwischen Server und Client zu korrigieren (optional)

  • Matzetronic
    Ja also das Paket kenn ich, hab ich noch nicht installiert.
    Allerdings geb ichs hiermit offen zu, daß ich mich mit wget eigentlich nicht auskenne und naja eher noch in die tiefen von Linux einsteigen muß.
    Kurz ich habe keine Ahnung wie das geht :deppenalarm


    Naja wenn mein schlaues Linux für Dummies was hergibt mach ich mich dran, weil, fli4l und vdr ja eigentlich ideal zusammen sind.

    HD: yaVDR 0.3, AT3IONT-I, CINE2S, NVRAM, X10, 2.5´ 320GHDD
    SD: ctvdr 7 vdr 1.6.0, MSI 6318 (Medion2000), 667MHz, NVRRAM, WOL 500G HD
    TV: Sharp LC52XL2E (100Hz), Beamer: Sanyo Z5

  • videoman: Soviel Ahnung ist ja vielleicht gar nicht notwendig.
    Du solltest mal das OPT-Paket bei Dir installieren und es Dir mal ansehen. Vielleicht werden dort ja sogar alle benötigten Informationen "nur" in einem GET-Request übertragen... in diesem Fall wäre es recht einfach umzusetzen.


    Gruß,
    Matze

  • videoman:
    Ich hab mir das OPT-Paket grad mal angesehen. Scheinbar kann man da wirklich sehr einfach mittels HTTP-GET einen Rechner per WoL einschalten, im Quellcode sehe ich zumindest so etwas:

    Code
    ...<a href=\"wol.cgi?$host\">...


    Sieht also gut aus - nun bist Du am Zug, denn ich brauche die korrekte URL und weitere Parameter des OPT-Paketes (z.B. Weck-Zeiten).


    Gruß,
    Matze

  • Hi,


    es gibt wieder mal neue Versionen :)
    Schade, dass bisher nur wenig Feedback kam...


    Changelog 'wakemeup-server_0.6':
    - der Dienst läuft nun im "Tainted Mode" (-T Switch)
    - extreme Zeitabweichungen zwischen Server und Client können nun fast sekundengenau ausgeglichen werden - sinnvoll, falls man ungenaue Rechneruhren hat bzw. kein NTP o.ä. benutzt
    (das ist voll abwärtskompatibel zu älteren Versionen des vdr-shutdown-hooks !)
    - bei einer Abweichung von mehr als 24 Stunden zwischen Server und Client wird zusätzlich eine Warnung ausgegeben
    - diverse Bugfixes, u.a. wurden die Startup-Links in /etc/rcX.d/ nicht korrekt angelegt sowie der Dienst bei Update/Deinstallation nicht korrekt gestoppt


    Changelog 'vdr-addon-wakemeup_0.5':
    - Support für die Übermittlung eines zweiten Zeitstempels zum Server eingebaut (optional)


    Gruß,
    Matze



    PS.: Die Dateien - Debian-Pakete und $Source.tar.gz - befinden sich im ersten Posting.

  • Zitat

    Original von Matzetronic
    es gibt wieder mal neue Versionen :)
    Schade, dass bisher nur wenig Feedback kam...


    Ich finde es eine klasse Idee!


    Allerdings bin ich davon nicht betroffen, da mein Aufnahme VDR 24/7 laeuft (und sich auch problemlos ueber Timer aufwecken laesst).
    Dennoch: weiter so!

    Glotze: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
    Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

  • knebb
    Danke für die Blumen :)
    Ja, bei den meisten funktioniert wohl nvram-wakeup sehr zuverlässig...


    Was ich doch ganz vergessen hatte zu erwähnen - meine Methode funktioniert (theoretisch) auch über Router bzw. Netzgrenzen hinweg - sollte also auch über das Internet funktionieren...
    Allerdings habe ich das noch nicht getestet.


    Gruß,
    Matze

  • ich werds mal testen wenn ich zeit dazu habe
    hört sich auf jeden fall interessant an

  • Hi alle,


    also ich muss sagen: So einfach wie genial!
    ich hab dies NVRAM gefrickel auch satt! Ich weiss nicht genau warum, aber das Bios in meinem PCCHIPS M861G mit Mobile AthlonXP ist die Wurst in Tueten.. Nach dem Setzen des NVRAM hat es nicht mehr gebootet :) Ich wollte eigentlich auch aus dem Netzwerk booten aber PXE funktioniert genausowenig! Nun bootet es von nem 2GB USB-Stick. Und auch das klappte nicht mit jedem Stick...


    Wollte jetzt eigentlich wieder depricated ACPI in den Kernel pfuschen, aber diese Loesung gefaellt mir eigentlich noch besser, weil sie auch fuer weitere VDR´s problemlos anwendbar ist und hier sowieso noch n Fileserver brummt..


    Supersache - echt! Danke nochmal...


    Gruesse...

  • Hi MAtze,
    nachdem du mir ja geholfen hast beim NVRAM und das auch super klappt, brauche ich WOL aufwecken ja nicht mehr :)
    Spass beiseite, mir würde eine Lösung über meinen Router eigentlich viel besser gefallen der sowieso 14/7 läuft, deshalb schau ich mir das WOL Paket nochmal genauer an.
    Ich hab nur von Linux generell erstmal sowenig Ahnung das ich nicht weis wie der router die Daten vom VDR bekommen soll.
    (Das mit der Ahnung ändert sich hoffentlich wenn ich meinen Debian endlich mal parallel zu meinem XP am laufen habe .. auch da bin ich dran)

    HD: yaVDR 0.3, AT3IONT-I, CINE2S, NVRAM, X10, 2.5´ 320GHDD
    SD: ctvdr 7 vdr 1.6.0, MSI 6318 (Medion2000), 667MHz, NVRRAM, WOL 500G HD
    TV: Sharp LC52XL2E (100Hz), Beamer: Sanyo Z5

  • Hi,


    nach einigen Frustrationen mit MSI Boards und einem Selbstversuch in Sachen WoL über Server, bin ich auf das hier gestoßen.
    Server läuft unter Sarge, vdr auf Etch, bis jetzt kann ich nur sagen, geniale Sache.
    Mal schauen, was diese Woche bringt, da geht's wieder richtig los mit Timern.


    Digges dange auf jeden Fall, sehr gute Arbeit.


    Solemn

    Client: Silverstone LaScala LC17 -- MSI 945PL Neo3 -- Core2 Duo E4400 -- 2GB RAM -- Zotac GeForce GT 220 Zone Edition -- Harmony 650 -- OpenELEC 3.0.6
    Server: Gigabyte 970A-UD3 -- AMD Phenom II X4 955 -- 6GB RAM -- TT1600-S2 -- DVBSKy S952 Dual DVB-S/S2

    VG system: md-raid 2x160GB RAID1

    VG data: md-raid 6x1TB RAID5

    Ubuntu Server 13.04 -- yaVDR unstable -- xvdr

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!