Recovery-UBoot: Unterschied zwischen den Versionen
(initial) |
(→Uboot) |
||
Zeile 22: | Zeile 22: | ||
aktiviert werden. Man erhält einen Prompt. | aktiviert werden. Man erhält einen Prompt. | ||
− | + | Uboot besitzt eine Hilfe zu den unterstützen Kommandos | |
# help | # help | ||
− | + | Anzeige IP Adressen, | |
# printenv | # printenv | ||
+ | bootcmd=tftp | ||
+ | bootdelay=1 | ||
+ | baudrate=57600 | ||
+ | ethaddr="00:C0:02:12:35:88" | ||
+ | ipaddr=192.168.1.1 | ||
+ | serverip=192.168.1.123 | ||
+ | stdin=serial | ||
+ | stdout=serial | ||
+ | stderr=serial | ||
+ | |||
+ | Anpassen und Speichern von IP Adressen, wenn notwendig. | ||
+ | # setenv <variable> <wert> | ||
+ | # saveenv | ||
+ | |||
+ | Wenn der Kernel kaputt ist und der Router nicht mehr startet, um eine Firmware zu installieren, kann man das kernel image via tftp | ||
+ | in den Speicher laden und direkt aus UBoot starten. <br> | ||
+ | Wenn das funktioniert, kann man via ssh und sysupgrade die freifunk-firmware (openwrt) installieren.<br> | ||
+ | |||
+ | tftpboot verwendet die serverip, um sich mit einem tftp-server (port 69) zu verbinden. Wurde kein Filename konfiguriert, so | ||
+ | wird dieser angezeigt. | ||
+ | <pre> | ||
+ | # tftpboot | ||
+ | |||
+ | *** Warning: no boot file name; using 'test.bin' | ||
+ | TFTP from server 192.168.1.123; our IP address is 192.168.1.1 | ||
+ | Filename 'test.bin'. | ||
+ | |||
+ | TIMEOUT_COUNT=10,Load address: 0x0 | ||
+ | Loading: Got ARP REPLY, set server/gtwy eth addr (20:1a:06:fe:4e:29) | ||
+ | Got it | ||
+ | Got ARP REQUEST, return our IP | ||
+ | T T T checksum bad | ||
+ | T checksum bad | ||
+ | checksum bad | ||
+ | T T T Got ARP REQUEST, return our IP | ||
+ | T T ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ################################################################# | ||
+ | ###################### | ||
+ | done | ||
+ | Bytes transferred = 7099592 (6c54c8 hex) | ||
+ | NetBootFileXferSize= 006c54c8 | ||
+ | </pre> | ||
+ | |||
+ | Das Kernel.image wurde in den Speicher geladen, wo bei die Adresse via 'printenv' angezeigt werden. | ||
+ | Gibt es hier keine Angabe, so findet man die Speicheradresse (was auch die Startadresse ist) | ||
+ | normalerweise bei den Ausschriften von `tftpboot` (TIMEOUT_COUNT=10,Load address: 0x80100000) | ||
+ | |||
+ | Der Kernel liegt im RAM und kann direkt gestartet werden. | ||
+ | # bootm 0x80100000 |
Version vom 22. Januar 2022, 19:48 Uhr
Einleitung
Jeder Router hat einen Loader, meist UBoot. Über diesen kann man alternative ebenso
seinen Router retten.< br/>
Dazu ist aber eine Serielle Konsole notwendig, die die meisten Router nur auf der
Leiterplatte haben (manche sogar garnicht).
Eine Anleitung zum Öffnen und Verbinden eines Seriellen-Usb-Adapters ist
routerabhängig.
Achtung: KEINE direkte Verbindung vom Serial-Port vom PC (oder USB-Serial-Adapter) !!! ---> Zerstörung des Routers möglich !
Die Serielle Schnittstelle am PC oder im USB-Serial-Adapter haben zu hohe Spannungen, welche von -15V (für low) und +15V (high) reichen.
Es gibt aber USB Adapter, die für low 0V und high 3.3V liefern. Nur diese dürfen
verwendet werden.
Kennt man die Belegung der seriellen Schnittstelle nicht, so muss man einfach probieren.
Uboot
Funktioniert die serielle Konsole, kann der UBoot meist mit "Ctrl-C" gleich nach dem Start/Boot aktiviert werden. Man erhält einen Prompt.
Uboot besitzt eine Hilfe zu den unterstützen Kommandos
# help
Anzeige IP Adressen,
# printenv bootcmd=tftp bootdelay=1 baudrate=57600 ethaddr="00:C0:02:12:35:88" ipaddr=192.168.1.1 serverip=192.168.1.123 stdin=serial stdout=serial stderr=serial
Anpassen und Speichern von IP Adressen, wenn notwendig.
# setenv <variable> <wert> # saveenv
Wenn der Kernel kaputt ist und der Router nicht mehr startet, um eine Firmware zu installieren, kann man das kernel image via tftp
in den Speicher laden und direkt aus UBoot starten.
Wenn das funktioniert, kann man via ssh und sysupgrade die freifunk-firmware (openwrt) installieren.
tftpboot verwendet die serverip, um sich mit einem tftp-server (port 69) zu verbinden. Wurde kein Filename konfiguriert, so wird dieser angezeigt.
# tftpboot *** Warning: no boot file name; using 'test.bin' TFTP from server 192.168.1.123; our IP address is 192.168.1.1 Filename 'test.bin'. TIMEOUT_COUNT=10,Load address: 0x0 Loading: Got ARP REPLY, set server/gtwy eth addr (20:1a:06:fe:4e:29) Got it Got ARP REQUEST, return our IP T T T checksum bad T checksum bad checksum bad T T T Got ARP REQUEST, return our IP T T ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ################################################################# ###################### done Bytes transferred = 7099592 (6c54c8 hex) NetBootFileXferSize= 006c54c8
Das Kernel.image wurde in den Speicher geladen, wo bei die Adresse via 'printenv' angezeigt werden. Gibt es hier keine Angabe, so findet man die Speicheradresse (was auch die Startadresse ist) normalerweise bei den Ausschriften von `tftpboot` (TIMEOUT_COUNT=10,Load address: 0x80100000)
Der Kernel liegt im RAM und kann direkt gestartet werden.
# bootm 0x80100000