Etherrape/ErsteSchritte

From Lochraster

Jump to: navigation, search

Diese Seite geht von einem Etherrape v9 - Bausatz mit fertigem Bootloader aus und dokumentiert meine Fortschritte, um ggf. anderen eine Hilfestellung bieten zu können. Wenn du etwas beitragen möchtest, würde ich mich freuen. Benutzt, wo sinnvoll, die Signatur-Funktion. :) --Took 18:12, 20 January 2007 (CET)

Contents

[edit] Erstes Einschalten

Als erstes sollte man mal die 'offizielle' Seite komplett lesen. Und dann kann man wie folgt vorgehen:

Nachdem man alles zusammengelötet und sich überzeugt hat, das man dabei auch keine Kurzschlüsse o.ä. Fehler eingebaut hat, kann man mal 7,5V aus dem Netzteil an die PWR-Klemmen legen. Nun sollte die grüne Power-LED leuchten. Ausserdem sollte am Ethernet-Anschluss die orange LED im 0,5-Sekunden-Takt blinken oder zumindest einmal kurz aufleuchten.

[edit] Netzwerk-Anschluss

Wenn man mit einem Netzwerkkabel den Bausatz (ohne aufgesteckten Atmel) an einen Switch hängt, sollte die grüne LED am Ethernet-Anschluss leuchten (und am Switch die entsprechende LED).

Nochmal zur Klarstellung (--Bergeruw 11:20, 22 February 2007 (CET)):

  • kein Atmel gesteckt und Netzwerkkabel drin: nur die grüne LED leuchtet
  • Atmel gesteckt, noch keine Firmware geflasht, egal ob Netzwerkstecker drin oder nicht: gelbe LED blinkt (als Zeichen, dass man sich im Bootloader-Modus befindet)
  • Firmware geflasht und diese läuft:
    • kein Netzwerkstecker drin: gar keine LED leuchtet
    • Netzwerkstecker drin: grüne LED leuchtet, gelbe LED geht nur dann an, wenn Traffic auf der Netwerkleitung ist
    • Etherrape wieder im Bootloader-Modus geschaltet (z.B. ein 'p' via serielle Schnittstelle gesendet): grüne LED aus, gelbe LED blinkt

[edit] Test: Bootloader ok?

(Diesen Abschnitt kann man überspringen) Da bei meinem Bausatz die orange LED am Ethernet-Anschluss nicht im 0,5-Sekunden-Takt blinkt, sondern nur einmal kurz aufleuchtet und dann dunkel bleibt, habe ich zunächst folgende Tests durchgeführt:

[edit] serialclient

Mit dem serialclient von http://github.com/fd0/serialclient (einfach entpacken und mit make compilieren) erste Versuche, mit dem Bootloader zu reden:

./serialclient -r 115200 /dev/ttyS0

(da kommst du mit strg+c wieder raus)
"p" gedrückt halten und gleichzeitig den etherrape einschalten (ein "p" muss in den ersten 10ms nach dem einschalten gesendet werden - daher einfach gedrückt halten und dadurch ganz viele "p"'s senden). Ach ja: Die beiden Jumper wie auf dsc_0032.jpg unten links setzten und den Bausatz mit einem 9-Pol-COM-Kabel an den PC anschliessen nicht vergessen ;)

[edit] screen

Alternativ kann man auch screen (bei den meisten Linux-Distris bereits installiert, sonst im tree) statt dem serialclient benutzen:

screen /dev/ttyS0 115200 8N1

(da kommst du mit strg+a k wieder raus)
und wieder "p" gedrückt halten beim einschalten. Hier bekomme ich dann z.B. "SSSS" zurück.


Wenn das alles soweit funktioniert, ist dein atmel und dein bootloader und deine serielle schnittstelle schonmal ok.

Bei mir war ein Pin von dem SMD-Bauteil nicht 100% richtig angelötet - dadurch blieb der Bootloader meistens hängen und ist nicht richtig gestartet. Thx2fd0 fürs fixen :)


[edit] Etherrape-Firmware installieren

Zuerst sollte man sich das Kapitel Etherrape#Installieren der Firmware_2 der Etherrape-Dokumentation in diesem Wiki durchlesen. Hier sind vorallem die notwendigen Programmpakete (für Linux) aufgelistet, die man zum Übersetzen und Installieren der Firmware benötigt. Ein Tipp, wer kein Paket für avrdude in seiner Distribution findet, kann den Quelltext dieses Tool auch von der Projektseite (downloadbereich der seite ist allerdings zZt down :-/ ) laden. Das Übersetzen und Installieren geht problemlos.

Das Übersetzen der Firmware erfolgt mit folgenden Kommandos:

cd /in/das/etherrapeverzeichnis
make

Erfolgte die Übersetzung der Firmware fehlerfrei, kann man mit einem

make install

die Firmware ins Etherrape laden. Dieses muß dazu angeschaltet (;-)) und u.U. noch vorhandene serielle Verbindungen zu diesem unterbrochen sein.

Falls sich avrdude mit .avrduderc:14 unrecognized character: "s" meldet, ist die avrdude Version zu alt. Es wird avrdude >=5.2 benötigt! Mit

avrdude -vv

oder

avrdude -vvv

verrät dir avrdude, welche Version du vorliegen hast...


[edit] Tests mit der Firmware

Nach dem erfolgreichen Laden der Firmware auf das Etherrape und einem Ab-/Anschalten der Stromversorgung sollte nun (auch bei eingestecktem Atmel) die grüne Link-LED des MagJack leuchten. Die gelbe LED blinkt nicht mehr, was ja ein Zeichen dafür war, dass man sich im Bootloader befand.

Verbindet man sich jetzt wieder mit einer seriellen Konsole mit dem Bausatz, sollte jedes gesendete Zeichen, ausser 'p' ein '?' als Rückgabe produzieren. Das 'p' schaltet das Etherrape wieder in den Bootloader-Modus. Es fängt dann auch wieder die gelbe LED an zu blinken.

Etwas mehr kann man testen, wenn man die Firmware im Debug-Modus übersetzt und installiert. Dazu ruft man entweder "make DEBUG=1" auf, oder erstellt die Datei 'config.mk' mit Inhalt

DEBUG=1

ein und übersetzt/installiert die Firmware neu.

Gleich beim Starten des Etherrape wird es über die serielle Schnittstelle gesprächiger:

disabling watchdog
booting etherrape firmware 0.2...
initializing filesystem...
done
enc28j60 revision 0x04
ip: 010.001.001.010
net: got link!
uip: icmp: not icmp echo.

Weiterhin stehen auch ein paar Testfunktionen zur Verfügung (wobei ich mal denke, dass dies wirklich nur Testfunktionen sind, die sich in neueren Versionen der Firmware ändern können -> im Zweifelsfall mal in der Quelldatei etherrape.c nachschauen, was es so gibt...). Auf jeden Fall sind sie ganz hilfreich, um die Funktion seines Etherrape zu überprüfen und sollten in irgendeiner Form beibehalten werden.


[edit] Dataflash/Filesystem

U.a. kann man z.B. auch die Funktion des Dataflash und des darauf befindlichen Filesystemes testen. Im Quelltext vom 09.02.2007 habe ich dazu folgende Funktionen gefunden:

  • Taste 'f': initialisiert/formatiert das Filesystem
  • Taste 'l': Dateien auflisten (also quasi ls bzw. dir)
  • Tasten 'n', 'm': legen die Dateien test1 und test2 an
  • Taste 'W': schreibt den Text fnord23 in Datei test1
  • Taste 'R': liest Datei test1 aus


[edit] Netzwerkschnittstelle

Nun stellt sich ja auch die Frage, ob die Ethernetschnittstelle funktioniert! Wenn nach dem Start der Firmware die grüne LED am MagJack leuchtet, ist es schon mal ein gutes Zeichen. Per Default hat das Etherrape die IP-Adresse 10.0.0.5. Hängt der Bausatz an einem Switch und pingt ihn von einem Rechner aus dem gleichen Subnet an, sollte dies schon mal funktionieren.

Ein optimistischer URL-Aufruf http://10.0.0.5 in einem WEB-Browser sollte ein, in diesem Fall freundliches, File Not Found hervorbringen. Wer in einem vorhergehenden Test des Filesystemes die Datei test1 mit Inhalt fnord23 angelegt, wird mit entsprechender URL erfolgreich sein.

Abschließend sollte man seine IP-Konfiguration in den EEPROM des Etherrape brennen. Ich hatte dazu das Makefile (ganz unten Abschnitt eeprom-default.raw; Checksumme muß auch jeweils angepaßt werden) mit meinen Werten modifiziert und via

make install-eeprom-default

an das Etherrape übertragen. Über die Bedeutung der Werte kann man z.B. in der Datei doc/eeprom etwas erfahren.

Trägt man u.a. auch die IP-Adresse seines Syslog-Servers ein, meldet sich das Etherrape beim Booten im Syslog des angegebenen Rechners:

Feb 20 20:08:13 10.1.1.10 etherrape booted

Voraussetzung ist natürlich, dass syslogd das Eintragen von Meldungen eines Remote-Rechners zuläßt (Option -r beim Start von syslogd).

[edit] ... und jetzt?

nun kann es mit eigenen Implementierungen losgehen, viel Spaß!