Hallo,
ich würde gerne mit meinem ATMEGA ein Magic Packet (=Wake On Lan) im
lokalen Netzwerk empfangen. Die MAC Adressen will ich dann in meinem
Programm auswerten. Gesendet werden die Magic Packet's (mit beliebigen
MAC Adressen) von einem weiteren Rechner im Netzwerk. Ich habe vor -
wenn möglich - einfach nur den RX-Kanal auszuwerten.
Auf der Suche nach ähnlichen Projekten bin ich nur auf Webserver
gestossen. Die Webserverlösung wäre zwar sehr elegant und ausbaufähig,
ist mir jedoch viel zu aufwändig und zu groß. Ich will das Magic Packet
schliesslich nicht vom Internet aus senden, sondern nur aus dem lokalen
Netz.
Da ich mich mit Netzwerken nicht so gut auskenne hier meine Fragen an
diejenigen, die sich damit besser auskennen:
Kann man dieses Projekt ohne einen separaten Ethernetcontroller
realisieren?
Ich will ja nichts versenden, sondern nur etwas empfangen. Oder muss ich
mich im Netz anmelden?
Werden Magic Packet's verschickt, deren MAC Adressen im Netzwerk
unbekannt sind?
Ich könnte mir vorstellen, dass der Router das Magic Packet nicht
weiterschickt, weil ihm die MAC Adresse nicht bekannt ist.
Ich hoffe, Ihr könnt mir ein wenig bei der Aufwandsabschätzung helfen.
Viele Grüße
Cossy
1) Ich interpretiere das so: Du willst ALLE Wol Packete sehen, nicht nur
die für eine bestimmte Station.
A) Ohne einen Ethernetcontroller im Promisc... ääää..., einen der alle
Pakete empfängt ;-) wirst du nicht herumkommen. Es gibt zwar irgendwo
im Netz ein Projekt in dem ein AVR direkt am Netz hängt, aber das nur
bei 10MBit, mehr schafft ein AVR nicht.
B) Da in so ein Magic Packet ja nur mehrmals hintereinander die MAC
Adresse des Empfängers stehen muss (wie oft weiss ich jetzt nicht mehr)
wird auch ein Router ein gültiges IP Paket (mit dem "Magic" im
Datenteil) in das entsprechende Segment weiterleiten. Das funktioniert
(selbst ausprobiert).
C) Um Magic Packets zu erkennen, muss der AVRJEDES Paket untersuchen.
Das schafft ein AVR nur, wenn im Netz so gut wie nichts los ist.
Fazit 1: Vergiss es.
2) Magic paket nur für eine EINZIGE MAC Adresse.
A) s.o.
B) s.o.
C) Da du nur Multicast/Broadcast Pakete und Pakete and die an diese
spezielle MAC adressiert sind auswerten musst, KANN das evtl.
funktionieren. Wenn nicht zuviel Broadcast/Musticast Traffic im Netz
herrscht. Aber wenn Windows im Netz ist... "Windows is very chatty".
Fazit 2: Kann gehen.
Hey!
Ich habe ähnliches vor. Ich habe eine XBOX mit XBMC und würde sie gerne
über WOL (Wake on Lan) starten lassen. Leider unterstützt die XBOX kein
WOL. Dh eine kleine Box vor der XBox müsste dauerhaft am Netzwerk
lauschen und wenn ein Magic Packet mit der MAC-Adresse der XBOX ankommt
die Powertaste über ein Relais oder Transistor schalten. Jedoch wie?
Muss da ein kompletter Webserver her? Gibt es Ethernet-Chips die eine
Art Filterfunktion eingebaut haben? Dh dass nur solche Pakete
durchkommen und man dann via spi / rs232 o.Ä. die MAC-Adresse geschickt
bekommt?
Ich habe gerade viel gegoogled aber habe nur Lösungen gefunden die über
ein Webinterface Geräte an und ausschalten. Ich möchte jedoch dass die
kleine Box im Netzwerk quasi garnicht auffällt. Von außen sollte es dann
so wirken, dass die XBOX das WOL unterstützt. Hat da jemand Erfahrung
mit den Ethernetchips?
Gruß
Dominik
>Kann man dieses Projekt ohne einen separaten Ethernetcontroller>realisieren?
Nein, Empfangen ist cycle-intensiver wie Senden, die im Netz
kursierenden "AVR-SW-Ethernets" erlauben "nur" Senden und das
geht gerade soooo.
>Muss da ein kompletter Webserver her? Gibt es Ethernet-Chips die eine>Art Filterfunktion eingebaut haben? Dh dass nur solche Pakete>durchkommen und man dann via spi / rs232 o.Ä. die MAC-Adresse geschickt>bekommt?
Wenn man einen Ethernetchip verwendet, geht natuerlich alles
was man gewoehnlicherweise mit einem Ethernetchip anfangen kann.
Also ein UDP-Server oder ein TCP basierter Server (HTTP setzt auf
TCP auf). Mit den vorhandenen (freien) embedded (AVR-)Webservern
waeren die Aenderungen zum EIn/Ausschalten von Geräten wohl
minimal, alles andere waere "Arbeit" ohne einen (offensichtlichen!?)
Mehrwert zu erhalten!
Jepp, die "Art Filterfunktion" ist quasi die eigene MAC Adresse, ein
Ethernetcontroller nimmt Pakete an, welche an seine MAC und auf
die Broadcast Adresse geschickt werden... (fuer die Multicasts muss
man spezielle Dinge tun :-)
VG,
Hans
Hallo,
ich hatte mir schon mal folgendes überlegt, aber bisher nicht
ausprobiert: eine billige PCI-Netzwerkkarte für 5 Euro müsste eigentlich
an ihrem WOL-Kabel ein Signal abgeben, wenn sie angesprochen wird, und
dazu dürfte sie nicht mehr brauchen als die Versorgung mit der
Standby-Spannung - im abgeschalteten PC ist der Bus ja auch nicht in
Betrieb.
Gilt natürlich nur für die eigentliche Weckfunktion, nicht für eine
Überwachung des Netzes. Aber z.B. ein ferngesteuertes Starten eines
Netzwerkdruckers sollte realisierbar sein.
Gruss Reinhard
tonni schrieb:> geht leider nicht Karte muss vom OS initialisiert sein.
Sicher? Das würde ja im Normalbetrieb heissen, nach einem Stromausfall
funktioniert WOL nicht.
Gruss Reinhard
Werden die Konfigurationsdaten in einem EEPROM gespeichert? Dann könnte
man ja die Karte einmal in einen PC einbauen, konfigurieren und wieder
ausbauen. Wenn das in einem SRAM o.ä. gespeichert wird, geht das
natürlich nicht.
Michael Frangenberg schrieb:> Werden die Konfigurationsdaten in einem EEPROM gespeichert? Dann könnte> man ja die Karte einmal in einen PC einbauen, konfigurieren und wieder> ausbauen. Wenn das in einem SRAM o.ä. gespeichert wird, geht das> natürlich nicht.
dann würde ja auch die IP nach einem aus/einbau gespeichert sein?
osby schrieb:> dann würde ja auch die IP nach einem aus/einbau gespeichert sein?
eine Netzwerkkarte hat selbst keine IP-Adresse!
Demzufolge sollte WOL auch bei einer nicht initialisierten Karte
funktionieren. Es geht ja nur um die MAC-Adresse, und die filtert die
Karte ja selbstständig heraus und gibt dann den WOL Schaltbefehl durch.
Reinhard Kern schrieb:>> geht leider nicht Karte muss vom OS initialisiert sein.> Sicher? Das würde ja im Normalbetrieb heissen, nach einem Stromausfall> funktioniert WOL nicht.
Kommt auf die Karte an, bei einigen muss in der Tat WOL explizit vom OS
oder BIOS aktiviert werden, und bleibt dann nur solange aktiv, wie die
(Standby-)Stromversorgung der Karte nicht komplett unterbrochen wird.
Hans schrieb:> Nein, Empfangen ist cycle-intensiver wie Senden, die im Netz> kursierenden "AVR-SW-Ethernets" erlauben "nur" Senden und das> geht gerade soooo.
Für WOL ist allerdings kein vollwertiger Empfang mit Dekodierung von
Ethernet-Frames etc. nötig. Es müssen Link-Pulse gesendet werden, damit
der Switch den Port nicht deaktiviert, und es muss die magische
Bitsequenz (48 1-Bits gefolgt von 16 Wiederholungen der MAC-Adresse)
erkannt werden.
Dürfte aber dennoch grenzwertig werden, das auf einem AVR in Software zu
implementieren.
Andreas