Ethernet Loader: Unterschied zwischen den Versionen
Loddel (Diskussion | Beiträge) (→Handisches laden eines neuen Images (Ecmd_Reference)) |
Stella (Diskussion | Beiträge) K |
||
Zeile 1: | Zeile 1: | ||
− | = | + | = Bootloader einrichten = |
− | Da ich mindesten 6h mit Fehlersuche verschwendet habe, hier eine Anleitung wie man den | + | Da ich mindesten 6h mit Fehlersuche verschwendet habe, hier eine Anleitung wie man den TFTP-Bootloader verwendet.<br /> |
− | Ganz wichtig, es darf per tftp NIE das ethersex.hex File geladen werden | + | Ganz wichtig, es darf per tftp NIE das ''ethersex.hex'' File geladen werden. |
− | = Vorteile | + | = Vorteile des Bootloaders = |
− | * Durch den Einsatz | + | * Durch den Einsatz eines Bootloaders benötigt man (vom Flashen des Bootloaders einmal abgesehen) keine Flash-Hardware mehr. |
− | * Der ISP Port | + | * Der ISP-Port blockiert den Ethernet-Port (zumindesten bei der AVR NET-IO bzw. beim Einsatz bestimmter Programmieradapter) |
* Update und Entwicklungen können bequem vom Schreibtisch aus vorgenommen werden | * Update und Entwicklungen können bequem vom Schreibtisch aus vorgenommen werden | ||
− | == Benötigt | + | == Benötigt werden: == |
− | * | + | * Bootloader im ethersex.hex Format |
** [http://www.ethersex.de/firmware-builder/list.cgi Firmware Builder] | ** [http://www.ethersex.de/firmware-builder/list.cgi Firmware Builder] | ||
*** enc_mac = die MAC-Adresse vom Hardwareboard | *** enc_mac = die MAC-Adresse vom Hardwareboard | ||
Zeile 17: | Zeile 17: | ||
*** enc_ip4_netmask = passende Maske vom Netz | *** enc_ip4_netmask = passende Maske vom Netz | ||
*** etherrape_gateway = default GW | *** etherrape_gateway = default GW | ||
− | *** tftp_ip = die IP-Adresse vom tftpd Server, also | + | *** tftp_ip = die IP-Adresse vom tftpd Server, also des PCs auf dem der tftpd läuft |
− | *** tftp_image = Name des | + | *** tftp_image = Name des binaries, das im tftpboot-Verzeichnis liegt. z.B. esex.bin |
*oder | *oder | ||
** config-File für die AVR Net-IO | ** config-File für die AVR Net-IO | ||
− | * | + | * eigentliche Firmware im ethersex.bin Format |
− | ** das make erzeugt immer eine ethersex.hex und eine ethersex.bin und wird z.B. als esex.bin auf den tftpd-Server | + | ** das make erzeugt immer eine ethersex.hex und eine ethersex.bin und wird z.B. als esex.bin auf den tftpd-Server kopiert |
* [http://de.wikipedia.org/wiki/Trivial_File_Transfer_Protocol tfpd-Server] | * [http://de.wikipedia.org/wiki/Trivial_File_Transfer_Protocol tfpd-Server] | ||
** Linux: [http://www.debianadmin.com/atftp-server-and-client-installation-and-configuration.html atftpd], tftpd oder tftpd-hpt | ** Linux: [http://www.debianadmin.com/atftp-server-and-client-installation-and-configuration.html atftpd], tftpd oder tftpd-hpt | ||
Zeile 34: | Zeile 34: | ||
== Anpassung der FUSE-Bits == | == Anpassung der FUSE-Bits == | ||
− | Damit das | + | Damit das Ganze funktioniert, müssen die FUSE-Bits angepasst werden. |
Mit dem Tool [http://www.engbedded.com/fusecalc/ FUSE-Calc] kann man sich durch anklicken seine FUSE-Bits zusammenstellen. | Mit dem Tool [http://www.engbedded.com/fusecalc/ FUSE-Calc] kann man sich durch anklicken seine FUSE-Bits zusammenstellen. | ||
Für den atmega644(p) hier ein Beispiel. | Für den atmega644(p) hier ein Beispiel. | ||
Zeile 42: | Zeile 42: | ||
</source> | </source> | ||
− | == | + | == Flashen des Bootloaders == |
− | Der | + | Der Bootloader wird als .hex auf klasischem Weg geflasht. |
<source lang="text"> | <source lang="text"> | ||
avrdude -p m644p -c ponyser -P /dev/ttyS0 -U flash:w:<bootloader.hex> -v | avrdude -p m644p -c ponyser -P /dev/ttyS0 -U flash:w:<bootloader.hex> -v | ||
</source> | </source> | ||
− | Spätestens nach einem Reboot der Hardware versucht der | + | Spätestens nach einem Reboot der Hardware versucht der Bootloader per [http://de.wikipedia.org/wiki/Trivial_File_Transfer_Protocol tftp] die eigentliche Firmware zu laden und zu starten. |
− | Eine einmal auf diesem Weg installierte Firmware ist immer auf dem Board und der | + | Eine einmal auf diesem Weg installierte Firmware ist immer auf dem Board und der Bootloader holt nur auf händische Anfrage ein neues esex.bin vom tftp-Server |
== Händisches laden eines neuen Images ([[Ecmd_Reference]])== | == Händisches laden eines neuen Images ([[Ecmd_Reference]])== |
Version vom 13. August 2009, 19:26 Uhr
Inhaltsverzeichnis
Bootloader einrichten
Da ich mindesten 6h mit Fehlersuche verschwendet habe, hier eine Anleitung wie man den TFTP-Bootloader verwendet.
Ganz wichtig, es darf per tftp NIE das ethersex.hex File geladen werden.
Vorteile des Bootloaders
- Durch den Einsatz eines Bootloaders benötigt man (vom Flashen des Bootloaders einmal abgesehen) keine Flash-Hardware mehr.
- Der ISP-Port blockiert den Ethernet-Port (zumindesten bei der AVR NET-IO bzw. beim Einsatz bestimmter Programmieradapter)
- Update und Entwicklungen können bequem vom Schreibtisch aus vorgenommen werden
Benötigt werden:
- Bootloader im ethersex.hex Format
- Firmware Builder
- enc_mac = die MAC-Adresse vom Hardwareboard
- enc_ip = IP-Adresse vom Board
- enc_ip4_netmask = passende Maske vom Netz
- etherrape_gateway = default GW
- tftp_ip = die IP-Adresse vom tftpd Server, also des PCs auf dem der tftpd läuft
- tftp_image = Name des binaries, das im tftpboot-Verzeichnis liegt. z.B. esex.bin
- Firmware Builder
- oder
- config-File für die AVR Net-IO
- eigentliche Firmware im ethersex.bin Format
- das make erzeugt immer eine ethersex.hex und eine ethersex.bin und wird z.B. als esex.bin auf den tftpd-Server kopiert
- tfpd-Server
- Linux: atftpd, tftpd oder tftpd-hpt
- Windows: tftp32.exe
Installation
- auf dem klassischem Weg wird die ethersex.bin erstellt (make menuconfig; make)
- Der tftpd wird wie von der Distribution vorgesehen gestartet. Das ethersex.bin kommt in das /tftpboot Verzeichniss
Anpassung der FUSE-Bits
Damit das Ganze funktioniert, müssen die FUSE-Bits angepasst werden. Mit dem Tool FUSE-Calc kann man sich durch anklicken seine FUSE-Bits zusammenstellen. Für den atmega644(p) hier ein Beispiel.
avrdude -p m644p -c ponyser -P /dev/ttyS0 -U lfuse:w:0xff:m -U hfuse:w:0xd8:m -U efuse:w:0xfc:m
Flashen des Bootloaders
Der Bootloader wird als .hex auf klasischem Weg geflasht.
avrdude -p m644p -c ponyser -P /dev/ttyS0 -U flash:w:<bootloader.hex> -v
Spätestens nach einem Reboot der Hardware versucht der Bootloader per tftp die eigentliche Firmware zu laden und zu starten.
Eine einmal auf diesem Weg installierte Firmware ist immer auf dem Board und der Bootloader holt nur auf händische Anfrage ein neues esex.bin vom tftp-Server
Händisches laden eines neuen Images (Ecmd_Reference)
Per Telnet sich mit dem ethersex verbinden (telnet <IP-Ethersex> 2701). Dort "bootloader" eingeben.