U-Boot Update - linuxu3er

linux
u3er
Direkt zum Seiteninhalt
U-Boot Update
Nachdem der USB Stick mit mit dem Debian Grundsystem vorhanden ist, kommt nun der eigentliche Bootmanager anteil dran. Dazu gehen wir die Punkte von Doozan U-Boot Tutorial durch.

ACHTUNG dieser Anteil kann zum Defekt des NAS führen, wenn er falsch ausgeführt wird. Daher ganz genau die Anleitung von Doozan im Original lesen. Bei mir handelt es sich nur um einen begleitende Erklärung.

Download des für das Zyxel NAS325v2 passenden u-Boot Images von der Doozan Seite. Bei mir ist das aktuelle Image, dass "uboot.2017.07-tld-1.nsa325.bodhi.tar". Download des Skriptes "uboot.2016.05-tld-1.environment.scr" von der folgenden Doozan Seite im Anhang aus dem Post vom August 07, 2016 02:57PM. Die Dateien müssen jetzt als root auf den USB Stick kopiert werden.
 sudo -i  
 cp /home/icke/Download/uboot.2017* /media/sdb/    [Image]  
 cp /home/icke/Download/uboot.2016* /media/sdb/boot/   [Skript]  

Jetzt den USB Stick auf der NAS Platine in einen der hinterer Port stecken und mit Verbindung über das UART USB Kabel starten. Wenn man schon einen neueren Bootmanager z.B. U-Boot 2016.05 drauf hat kann man mit dem präparierten USB Stick alle gleich genanten Schritte durchgehen und Schritt 8 überspringen, da man sich schon in einem Debian System befindet und alle Befehle funktionieren. Anmeldung als root mit Passwort "root".

Wenn noch die Originalfirmware von Zyxel drauf ist klappen die folgenden Schritte nicht so ohne weiteres, da die Befehle nicht erkannt werden. Man muss den Bootvorgang unterbrechen und die Umgebungsvariablen temporär festgelegt bevor man im Debian System ist.
 usb start  
 ext2load usb 0:1 0x800000 /boot/uboot.2016.05-tld-1.environment.scr  
 source 0x800000  
 printenv  
 setenv devices 'usb ide'  
 setenv ethaddr xx:xx:xx:xx:xx:xx (replaced with my adress)  
 setenv dtb_file '/boot/dts/kirkwood-nsa325.dtb'  
 boot  
Anschließend kann man sich auch hier als root anmelden und falls notwendig mit apt-get install mtd-utils die Toolsammlung zum Schreiben des Speichers installieren. Der Schritt 8 ist dann unbedingt durchzuführen.

Nun gehen wir Schritt für Schritt die Punkte die A. Flashing Instruction ab:
1. Kontrolle bestimmter Konfigurationsdateien. Bei mir passten die Default Werte.
 cat /etc/fw_env.config  
 cat /proc/mtd  
2. Kontrolle ob die MAC Adresse gesetzt ist. Bei mir ist die Adress mit 00:50:43:00:02:02 gesetzt.
 fw_printenv ethaddr  
3. Sichern des aktuelle Bootmanagers und der Umgebungsvariablen
 nanddump --noecc --omitoob -l 0x80000 -f mtd0 /dev/mtd0  
 fw_printenv > current_envs.txt  
4. Kontrolle, ob defekte Blöcke im 1 MB des Speichers sind. Es dürfen keine Fehler zwischen dem Block 0 und Block 7 sein. bei mir ist ein fehler in Block 100, daher kein Problem.
 dmesg | grep -i 'bad'  
[    2.413231] Scanning device for bad blocks
[    2.417731] Bad eraseblock 100 at 0x0000000c80000
5. Auspacken des neuen Bootmanagers
 mv /uboot.2017.07-tld-1.nsa325.bodhi.tar /tmp/
 cd /tmp  
 tar -xf uboot.2017.07-tld-1.nsa325.bodhi.tar  
6. Löschen von mtd0 (Achtung hier kann das Gerät beschädigt werden)
 flash_erase /dev/mtd0 0 4  
Erase Total 4 Units
Performing Flash Erase of length 131072 at offset 0x60000 done
7. Neuen Bootmanager in Speicher schreiben (Achtung hier kann das Gerät beschädigt werden)
 nandwrite /dev/mtd0 uboot.2017.07-tld-1.nsa325.mtd0.kwb  
Writing data to block 0 at offset 0x0  Writing data to block 1 at offset 0x20000  Writing data to block 2 at offset 0x40000  Writing data to block 3 at offset 0x60000
8. Neue Umgebungsvariablen in den Speicher schreiben, wenn man ein Upgrade von u-Boot 2016.05 durchführt kann man diesen Schritt überspringen. X ersetzten durch die Werte aus der current_envs.txt.
 fw_printenv > current_envs.txt  
 /usr/sbin/flash_erase /dev/mtd0 0xc0000 1  
 /usr/sbin/nandwrite -s 786432 /dev/mtd0 uboot.2017.07-tld-1.environment.img  
 fw_setenv arcNumber 4495  
 fw_setenv machid  
 fw_setenv mtdparts 'xxxxxxxxx'  
 fw_setenv ethaddr 'xx:xx:xx:xx:xx:xx'  
 fw_setenv dtb_file '/boot/dts/kirkwood-nsa325.dtb'    
9. Umgebungsvariablen prüfen
 fw_printenv  
10. Überspringen, da eine UART USB Verbindung besteht
11. Neustart der Platine und Kontrolle der Ausgabe
 reboot  
U-Boot 2017.07-tld-1 (….)
Der Bootmanager ist nun aktualisiert auf U-Boot 2017.07 und das Debian System vom USB-Stick sollte starten. Wenn alles geklappt hat könnt ihr euch per SSH als root Nutzer mit dem Passwort "root" unter dem Hostnamen "debian" einloggen.
Zurück zum Seiteninhalt