Magic-Paket versenden - Lösung gesucht

  • Hi, Leute,

    ich ahbe einen AVR32 Grasshopper geschenkt bekommen, aber leider absolut keinen Plan, wie das Teil zu handhaben ist.

    Nun möchte ich damit die Funktion realisieren, dass er Rechner per Wake on Lan aufwecken kann.
    Dazu muss ich ihn irgendwie dazu bringen, ein magic paket zu versenden.

    Die ansteuerung durch den User soll per web-Oberfläche erfolgen.

    Da mir die entsprechende Software noch fehlt, die ich mir wohl in Dresden erst noch besorgen werde, wenn ich wiedereinmal dort bin, gestalltet sich das [mir] als mehr als schwierig.

    hat jemand eine Idee, wie ich den dazu bringe, ein magic paket zu verseenden. Die mögliche (funktionsfähige) Anbindung wäre über die cgi-bin.

    Und weiter?
    wol installieren geht nicht, und bash gibts auch keine - nur simple sh.

  • java. in ruby sollte es glaub ich auch gehen. hab in den downloads den "netzschalter", ist nen java programm das nen magic paket versendet. theoretisch könnte man auch nen webinterface dazu bauen. die frage ist nur der server dazu steht. weil ein magic paket ist doch eigentlich ein breitband paket. schließlich weiß man ja nicht wer der empfänger ist, das muss der selber wissen. ergo müsste der server fürs wlan im lokalen lan wo die maschine steht, stehen. ob es über irgendnen rechner im internet einfach so funktioniert???? da bin ich skeptisch.

    update: man kann auch direkt ne karte ansprechen. vermutlich per MAC. evtl. ginge es doch auch durch nen router. empfänger und inhalt müssen nur nicht gleich sein. und portforwarding aktiv sein.

  • Zitat von klemmi

    mit C?
    ich habe gerade (auf einem anderen Rechner) ether-wake kompiliert und dann rüber kopiert, aber das kann er nicht ausführen....


    Weil auf Embedded-Systemen meistens die uclibc verwendet wird, während du auf Desktop-System die glibc verwendest: Etherwake wird mit glibc kompiliert worden sein. Müsste man dementsprechend für die uclibc oder gar statisch kompilieren.

    Zitat von Dirk

    ob es über irgendnen rechner im internet einfach so funktioniert????.


    Wenn du dich im Internet umschaust, findest du hier und dort ein paar Tutorials, wie man Magic Pakets übers Internet kriegt. Man muss über Portforwarding das Paket ins lokale Netzwerk holen und dann wenn möglich an die Broadcast-Adresse schicken. Manchmal gehts auch über IP, hängt aber stark vom Router und der Ziel-Netzwerkfirmware ab.

    Alternativ stellst du den Sender ins lokale Netz und aktivierst den Trigger über Internet, das Paket bleibt ja dann trotzdem ins lokale Netz.

    Einmal editiert, zuletzt von gandro (30. August 2009 um 22:39)

  • Zitat von Dirk

    java. in ruby ob es über irgendnen rechner im internet einfach so funktioniert???? da bin ich skeptisch.


    java unnd ruby gibts natürlich auch nicht...
    Er selbst ist ja hier im lokalen netz! Der soll einfach n Paket an ne broadcast-Adresse raushauen - nicht mehr und nicht weniger.

    Zitat von Dirk


    update: man kann auch direkt ne karte ansprechen. vermutlich per MAC. evtl. ginge es doch auch durch nen router. empfänger und inhalt müssen nur nicht gleich sein. und portforwarding aktiv sein.

    Schließen wir diese Methode einfach mal aus, das Paket direkt an den router zu schicken, da der nicht an ne Broadcast-Adresse schicken kann. Also ich kann den forward nicht auf .255 legen.


    Zitat von gandro


    Weil auf Embedded-Systemen meistens die uclibc verwendet wird, während du auf Desktop-System die glibc verwendest: Etherwake wird mit glibc kompiliert worden sein. Müsste man dementsprechend für die uclibc oder gar statisch kompilieren.

    mal schauen!

  • Ansonsten, anstatt dass du das Teil mühsam in einer uclibc-Umgebung kompilierst, kannst du schnell und einfach es auch statisch probieren: Die benötigten Teile der glibc werden dann direkt in die Datei miteinkompiliert. Macht das Binary zwar rund 700KB anstatt 15KB gross, aber ist weniger mühsam zu kompilieren.

    Code
    wget [url]ftp://ftp.scyld.com/pub/diag/ether-wake.c[/url]
    gcc [b]-static[/b] -o etherwake ether-wake.c

    (Lass dich nicht durch "etherwake" und "ether-wake" verwirren - das bekannte Debian-Paket verwendet die gleiche Quellcode-Datei)

    Einmal editiert, zuletzt von gandro (1. September 2009 um 14:33)

  • beim Ausführen leider folgendes:

    Code
    # ./etherwake 
    ./etherwake: line 1: syntax error: "(" unexpected


    (wenn ich es auf dem rechner ausführe, auf dem es kompiliert wurde, funktionierts.

  • Hihi, lol. Hab ich total vergessen. Der will hier ein C-Binary über einen Interpreter ausführen.

    Natürlich muss das System auf dem die Binary kompiliert wurde die gleiche Prozessorarchitektur wie die das Zielsystem haben, was hier ja nicht gegeben ist. Da benötigst du nach wie vor eine Umgebung wie buildroot oder einen Crosscompiler, egal ob statisch oder nicht.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!