Flashen von Images unter Linux (mit Hilfe des Bootloaders)
Der Bootloader (im weiteren einfach BL genannt) der MCT Geräte erwartet das Image natürlich über das Netzwerk. Dazu initialisiert der BL die erste Schnittstelle der Geräte. Dies ist immer ETH0. Bei den Geräten die nur eine NIC Buchse haben (Claxan NAS110 und NAS200) hat man logischer Weise keine Wahl. Diese eine Buchse ist auch immer gleich ETH0.
Anders ist es bei den Geräten die auch noch den 4 fach Switch mit integriert haben. Hier ist der WAN Port immer ETH0 und alle Switchports führen auf ETH1. Also müsst Ihr immer über den WAN Port flashen.
prinzipieller Ablauf
- der PC muss eine IP aus dem Subnet 192.168.1.0 haben, allerdings muss diese ungleich 192.168.1.254 sein (diese IP benutzt das NAS)
- das NAS ist per Bootjumper dazu zu bringen nur den BL zu laden und zu starten
- im COM Terminal ist der Befehl load abzusetzen, so das der BL ETH0 initialisiert und dort per TFTP eine Datei empfangen kann
- am PC per TFTP Serverprogramm das Image an das NAS schicken
- im COM Terminal den Befehl flash absetzen und warten bis der Bootloader Finished meldet, bis dahin kann man sehen wie jeder Sektor geflasht wird
- das NAS neu starten
Vorbereitungen
Für diese Tätigkeiten müssen eventuell verschiedene Vorleistungen erbracht werden.
1. man benötigt ein COM Terminal
2. eine passende IP Adresse zum NAS flashen
Für letztere gibt es zwei Möglichkeiten. Entweder ihr benutzt den Subnetzbereich von 192.168.1.0 oder Ihr erstellt eine virtuelle Netzwerkarte mit einer IP aus diesem Bereich. Dazu muss die Datei /etc/network/interfaces angepasst werden.
Eine virtuelle Netzwerkarte kann immer nur an eine reelle NIC gebunden werden. Kabelgebundene NICs haben in der Regel die Bezeichnung eth plus eine Zahl für die logische Zuordnung der Karte, also 0, 1 und so weiter. Für WLAN Karten gelten je nach Hardware unterschiedliche Bezeichnungen. Wir nehmen nun mal an das wir eine Netzwerkarte eth0 im System haben und dieser eine virtuelle Netzwerkarte mit einer IP aus dem Subnet 192.168.1.0 zuweisen wollen.
Wie müssen wir vorgehen?
Um diese Einstellungen vornehmen zu können müssen wir nun folgende zusätzliche Einträge in /etc/network/interfaces erstellen:
... <schnipp> auto eth0:1 iface eth0:1 inet static address 192.168.1.253 netmask 255.255.255.0 gateway 192.168.1.1 ...<schnapp>Damit erstellen wir eine virtuelle Netzwerkkarte eth0:1 die die Adresse 192.168.1.253 mit der Subnetmask 255.255.255.0 zugewiesen bekommt. Damit dies geschieht starten wir das Netzwerk mit /etc/init.de/networking restart neu und kontrollieren die Ausgabe mit ifconfig.
root@yourpc:/home/yourhome# /etc/init.d/networking restart Reconfiguring network interfaces...done. root@yourpc:/home/yourhome# ifconfig ...<schnipp> eth0:1 Protokoll:Ethernet Hardware Adresse 00:18:F3:FE:86:9F inet Adresse:192.168.1.253 Bcast:192.168.1.255 Maske:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:17 ...<schnapp>Damit habt Ihr nun erfolgreich eine passende Netzwerkschnittstelle zum flashen erstellt.
Es gibt aber auch noch eine andere Möglichkeit!
Achtung! Hier wird im NAS die IP verstellt! Bei unsachgemäßem Vorgehen bekommt Ihr unter Umständen einen Briefbeschwerer.
Die IP vom BL der NAS Geräte kann man über den COM Port verändern. Per Default ist diese IP auf die 192.168.1.254 gesetzt. Nun ist dieses IP zwar leicht zu merken, allerdings ist so eine IP in einem Netzwerk mit dieser Netzmaske auch schon sehr oft vergeben. In Linuxumgebungen findet man nicht selten auf der IP x.x.x.254 das Standard Gateway oder Printserver. In so einem Falle kommt man dann ohne Umbauarbeiten an der eigenen Verkabelung nicht weiter. Dies kann man aber vermeiden!
Der Befehlsatz des BL erlaubt das setzen/verändern der IP vom internen TFTP Client. Der hierfür nötige Befehl lautet set. Fragen wir nun zuerst die IP des Bootloaders ab. Ohne weitere Parameter beim Befehl set wird die aktuell gültige Enviromenvariable ausgegeben.
Memory Test: OK Run on SDRAM: OK SA300 Boot Loader v1.09 (05/24/2005) List PCI device: bus 00 device 0c function 00: vendorid 10ec, deviceid 8139 bus 00 device 0d function 00: vendorid 10ec, deviceid 8139 bus 00 device 0e function 00: vendorid 1283, deviceid 8211 bus 00 device 0f function 00: vendorid 1131, deviceid 1561 bus 00 device 0f function 01: vendorid 1131, deviceid 1561 bus 00 device 0f function 02: vendorid 1131, deviceid 1562 flash 0: family code = c2cb IP address: 192.168.1.254 Please type 'h' to query supported commands. SA300> set IP address: 192.168.1.254 SA300>
Wie wir erkennen können ist die IP auf die 192.168.1.254 gesetzt.
Um nun die IP zu ändern müssen wir set noch mitteilen was wir geändert haben wollen. Für die IP Adresse ist dies ipaddr + unsere IP die wir setzen wollen. Wollen wir die IP z.B. auf 192.168.1.200 setzen müssen wir folgendes eingeben: set ipaddr 192.168.1.200. Nach dem absetzen des Befehls wird die geänderte Adresse in den Flash geschrieben. Zum überprüfen rufen wir wieder set ohne weitere Parameter auf.
SA300> set ipaddr 192.168.1.200 SA300> set IP address: 192.168.1.200 SA300>
Wenn Ihr die Adresse im BL ändert hat dies den Vorteil das man
- keine zusätzliche virtuelle Netzwerkkarte erstellen muss
- man muss sich nur eine IP Adresse merken für das NAS
3. das tftp Programm was das Image an das NAS übergibt Dieses Programm muss eventuell nachinstalliert werden. Per apt-get ist dies schnell erledigt. Also führen wir apt-get update und apt-get install tftp durch.
root@yourpc:/home/yourhome# apt-get update Hole:1 http://kanotix.com ./ Release.gpg [189B] Hole:2 http://acritox.de ./ Release.gpg [189B] ...<schnipp> ...<schnapp> OK http://security.debian.org etch/updates/contrib Sources OK http://security.debian.org etch/updates/non-free Sources Es wurden 377kB in 2s geholt (162kB/s) Paketlisten werden gelesen... Fertig root@yourpc:/home/yourhome# apt-get install tftp Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig root@yourpc:/home/yourhome#
Damit sind die Vorbereitungen schon abgeschlossen.
der Ablauf
Wenn wir den prinzipiellen Ablauf als Vorlage nehmen verbinden wir nun das NAS auf der Netzwerkseite mit unseren PC. Dies kann nun entweder über ein CrossOverkabel erfolgen oder über die vorhandene LAN Verkabelung (Switch). Zusätzlich verbinden wir nun noch den COM Port des NAS mit dem entsprechenden COM Port am PC. Startet nun Minicom wie hier beschrieben. Per Bootjumper muss das NAS beim Starten nun dazu gebracht werden am BL Prompt stehen zu bleiben. Nun gebt im COM Terminal load ein so das das NAS die Netzwerkschnittstelle initialisiert. Daraufhin müsst Ihr das NAS von Eurem PC aus anpingen können. Dies ist wichtig! Sollte ein Ping nicht möglich sein dann macht es keinen Sinn weiter zu machen da ab jetzt alles über das Netzwerk erfolgt.
Im Verzeichniss wo sich das Image befindet was geflasht werden soll gibt nun als normaler User (nicht als root!!! ) tftp 192.168.1.254 ein. Ihr gelang nun an den Eingabeprompt vom TFTP Programm. Wenn Ihr den Prompt vom TFTP Programm seht gebt als erstes binary ein!!! Dies ist sehr wichtig! Damit wird der Modus auf binär umgestellt. Wenn Ihr dies verpasst werden ein paar Bytes mehr übertragen wie das Image eigentlich groß ist! Danach könnt Ihr den nun den Transfer mit dem Befehl put OpenMCT_[irgendwas].bin starten.
Daraufhin startet die Übertragung die Ihr im COM Terminal an einen rotierenden Strich erkennen könnt. Nach erfolgreicher Übertragung meldet der BL im Com Terminal die übertragene Datenmenge total = 0x7d004 bytes und in der Konsole seht Ihr ebenfalls die Meldung vom TFTP Programm Sent 8192004 bytes in 5.8 seconds.
So sollte das im COM Terminal aussehen:

Und so in der Konsole:
you@yourpc:~$ cd openmct/ you@yourpc:~/openmct$ tftp 192.168.1.254 tftp> binary tftp> put OpenMCT_0x100_0x00_0x1001.bin Sent 8192004 bytes in 5.8 seconds tftp>
Achtung! Solltet Ihr eine Datenmenge größer als 8192004Byte übertragen bekommen (bei NAS200 und SA200) dann auf keinen Fall dieses Image flashen! Mit ziemlicher Sicherheit ist Euer NAS danach ein Türstopper. Man kann dies zwar mit Bootloaderbefehlen wieder richten, allerdings gibt es hierzu bisher noch keine Anleitung!
Damit war die Übertragung erfolgreich und wir können nun dieses Image flashen.
Dazu geben wir nun im COM Terminal flash ein. Der Bootloader löscht nun jeweils einen Sektor und beschreibt diesen dann mit dem neuen Image. Wenn der BL fertig mit flashen ist erscheint die Meldung Finished.
In der Konsole beenden wir das TFTP Programm mit der Eingabe von quit.
Damit ist das flashen abgeschlossen. Nun das NAS neu starten und im COM Terminal dem Bootvorgang zuschauen. Wer ein COM Terminal hat kann den Bootvorgang mit fg anstossen.
Attachments
-
minicom_flash1.png
(15.7 KB) - added by carsten
5 years ago.
flashing a complett image
