BOOTP: Unterschied zwischen den Versionen

Aus Ethersex_Wiki
Wechseln zu: Navigation, Suche
K (Was macht BOOTP)
(Was macht BOOTP)
Zeile 3: Zeile 3:
 
Jeder kennt das Problem, wenn man eine Firmware erstellt hat, muss sie irgendwie in die Hardware kommen. Der gängige Weg, man flasht die Hardware mit einem Programmieradapter über [[SPI]] oder [[JTAG]]. In der Firmware muss die [[MAC]]- Adresse und die IP-Adresse für die Hardware (µC} einkompiliert sein. Sie ist damit erstmal fix und kann nur nachträglich über das [[ECMD]]-Kommandos ip geändert werden. Schön wäre es, wenn man sich um die IP- Adresse nicht kümmern müsste und sie selbständig zum Bootzeitpunkt geladen wird. Und noch schöner wäre es, wenn die Hardware sich auch gleich die aktuelle Firmware selbst laden und flashen würde. Genau dies macht jetzt BOOTP.<br />
 
Jeder kennt das Problem, wenn man eine Firmware erstellt hat, muss sie irgendwie in die Hardware kommen. Der gängige Weg, man flasht die Hardware mit einem Programmieradapter über [[SPI]] oder [[JTAG]]. In der Firmware muss die [[MAC]]- Adresse und die IP-Adresse für die Hardware (µC} einkompiliert sein. Sie ist damit erstmal fix und kann nur nachträglich über das [[ECMD]]-Kommandos ip geändert werden. Schön wäre es, wenn man sich um die IP- Adresse nicht kümmern müsste und sie selbständig zum Bootzeitpunkt geladen wird. Und noch schöner wäre es, wenn die Hardware sich auch gleich die aktuelle Firmware selbst laden und flashen würde. Genau dies macht jetzt BOOTP.<br />
  
== Was macht BOOTP ==
+
== BOOTP Startsequenz ==
  
 
BOOTP ist der Vorläufer von DHCP mit dem einem Netzwerkgerät wie z.B. unserem µC eine IP-Adresse zugeordnet werden kann. Falls das Netzwerkgerät nicht über einen eigenen Festspeicher verfügt, kann auch die Firmware oder das Betriebssystem auf Anfrage des Netzwerkgerätes übertragen werden. Damit BOOTP funktioniert, muss ein Minimalprogramm mit dem BOOTP-Client auf dem Netzwerkgerät als Bootloader gespeicher sein. Bei einem PC liegt dieses Programm in der Netzwerkkarte. Auf unserem µC muss der Ethernet Bootloader geflasht sein. Dieser enthält eine eindeutige MAC-Adresse für das Netzwerkgerät, damit es adressiert werden kann.<br />
 
BOOTP ist der Vorläufer von DHCP mit dem einem Netzwerkgerät wie z.B. unserem µC eine IP-Adresse zugeordnet werden kann. Falls das Netzwerkgerät nicht über einen eigenen Festspeicher verfügt, kann auch die Firmware oder das Betriebssystem auf Anfrage des Netzwerkgerätes übertragen werden. Damit BOOTP funktioniert, muss ein Minimalprogramm mit dem BOOTP-Client auf dem Netzwerkgerät als Bootloader gespeicher sein. Bei einem PC liegt dieses Programm in der Netzwerkkarte. Auf unserem µC muss der Ethernet Bootloader geflasht sein. Dieser enthält eine eindeutige MAC-Adresse für das Netzwerkgerät, damit es adressiert werden kann.<br />

Version vom 28. Juni 2011, 17:33 Uhr

Warum BOOTP?

Jeder kennt das Problem, wenn man eine Firmware erstellt hat, muss sie irgendwie in die Hardware kommen. Der gängige Weg, man flasht die Hardware mit einem Programmieradapter über SPI oder JTAG. In der Firmware muss die MAC- Adresse und die IP-Adresse für die Hardware (µC} einkompiliert sein. Sie ist damit erstmal fix und kann nur nachträglich über das ECMD-Kommandos ip geändert werden. Schön wäre es, wenn man sich um die IP- Adresse nicht kümmern müsste und sie selbständig zum Bootzeitpunkt geladen wird. Und noch schöner wäre es, wenn die Hardware sich auch gleich die aktuelle Firmware selbst laden und flashen würde. Genau dies macht jetzt BOOTP.

BOOTP Startsequenz

BOOTP ist der Vorläufer von DHCP mit dem einem Netzwerkgerät wie z.B. unserem µC eine IP-Adresse zugeordnet werden kann. Falls das Netzwerkgerät nicht über einen eigenen Festspeicher verfügt, kann auch die Firmware oder das Betriebssystem auf Anfrage des Netzwerkgerätes übertragen werden. Damit BOOTP funktioniert, muss ein Minimalprogramm mit dem BOOTP-Client auf dem Netzwerkgerät als Bootloader gespeicher sein. Bei einem PC liegt dieses Programm in der Netzwerkkarte. Auf unserem µC muss der Ethernet Bootloader geflasht sein. Dieser enthält eine eindeutige MAC-Adresse für das Netzwerkgerät, damit es adressiert werden kann.

Zum Bootzeitpunkt verfügt der µC nur über die MAC-Adresse. Er stellt also als erstes eine Broadcast-Anfrage an alle Netzwerkteilnehmer mit der Bitte ihm eine IP-Adresse zu geben. Gibt es im Netzwerk einen anderen Rechner, der einen BOOTP- oder DHCP-Server enthält, so antwortet dieser Server und gibt ihm, sofern erlaubt, eine IP-Adresse. Ab nun an kann der µC unter dieser Adresse erreicht werden. Als nächstes fragt der µC den BOOTP-Server nach einer aktuellen Firmware. Dieser teilt ihm den Server und den Port mit, von dem die Firmware per TFTP geladen werden kann.

Mit dieser Art des bootens, kann sehr elegant der µC geflasht und gleichzeitig eine IP-Adresse zugeordnet werden. Das eigentliche flashen der Firmware macht der µC damit selbständig. Mit dem Ethernet Bootloader und BOOTP ist es möglich, beliebige Firmware zu laden ohne ein Programmieradapter zu benutzen. Es muss lediglich die aktuelle Firmware auf dem BOOTP-Server hinterlegt sein und einmal der µC neu gestartet werden und schon flasht er sich selbständig ohne weiteres zutun nur über das Netzwerk. Diese Art des "flashens" geht schneller als mit einem Programmieradapter. In gut 10s ist die Firmware geladen, geflasht und gestartet.

Seite ist in Bearbeitung