Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Pogo E02 uboot auf aktuelle Version updaten

joerg_999

Stamm User
Registriert
11. Mai 2010
Beiträge
1.041
Reaktionspunkte
758
Punkte
273
Update 12.01.2022 - uboot.2017.07-tld-1 für Pogoplug E02
und auch der enviroment Variablen:
aktuell immer noch: uboot.2016.05-tld-1.environment.bodhi
Diese können, wie in der Beschreibung weiter unten, genauso einfach geflasht werden wie das uboot selber.

Falls es doch Probleme gibt beim Starten (sehr alter Kernel) könnte das helfen:
Kernelupdate Pogo E02 auf aktuellen FDT Kernel

Welche zusätzlichen Funktionen bekomme ich durch ein uboot Update beim Pogo?
Zusätzliche Funktionen ab 2017.07-tld-1
New/updated in 2017.07-tld-1 version:
- Rebase u-boot code to track mainline 2017.07.
- Incorporated patch to fix "EHCI timed out on TD" error with USB drives.
- SD cards: Use the mainline version of MMC driver for Pogo V4/Mobile and Sheevaplug
- Improve internal defautl envs.

Zusätzliche Funktionen ab 2016.05-tld-1 :
-fix security bugs

Zusätzliche Funktionen ab 2014.07-tld-3 :
- Mit dieser Version ist wäre es möglich das original POGO OS zu booten, wenn es nicht bereits ersetzt wurde (zb. durch: OscamWRT oder das alte Rescue-System)
- outdated - das alte POGO OS ist seit Jahren tot, aktuell wäre ein aktuelles openwrt (zb. )

Zusätzliche Funktionen ab 2014.07-tld-2:
- man hat die Möglichkeit U-Boot envs in eine Datei (uEnv.txt) ins /boot Verzeichnis zu legen um so entweder bad Blocks oder falsch konfigurierten envs im nand zu begegnen:Verwendung der /boot/uEnv.txt Die Vorgangsweise ist simpel, beim nächsten booten lädt er aus dem Verzeichnis /boot/uEnv.txt.
# möglicher Inhalt der Datei /boot/uEnv.txt

Code:
# arcNumber=3542   #/ nicht mehr erforderlich ab Kernel 3.17+
# machid=dd6     #/ nicht mehr erforderlich ab Kernel 3.17+
dtb_file=/boot/dts/kirkwood-pogo_e02.dtb
devices=usb
disks=0 1 2 3
dabei ist nur das Format zu beachten
das gleich ist wie bei fw_printenv Ausgabe, also mit IstGleich(=) und ohne Hochkomma (')

Die entsprechenden Einstellungen in den uboot envs sind schon mit drinnen oder können einfach im "bootcmd" als erster Eintrag mit eingefügt werden.
--> Funktioniert aber erst ab uboot 2014.7-tld-2
Code:
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec
Neue Funktionen ab 2014.07-tld-1:
- both FDT and non-FDT kernel booting
- supports EFI/GPT partition > 2TB (SATA and USB) either for booting or just attached.
- boot Ext4 rootfs
- SNTP (Simple NTP to set date time during U-Boot booting)
- bootz (boot with zImage).

Die Ausgangsbasis
könnte ein Pogo mit original uboot/Pogo OS sein dann hier weiter:
cd /tmp
wget
wget
wget
wget
wget
wget
wget
chmod +x *

# Achtung:fw_printenv kann nur korrekt benutzt werden nach dem flashen von uBoot and uBoot envs
oder aber ein Pogo E02 der bereits eine uboot "Behandlung" erhalten hatte wie zb.:
neues uboot installieren uboot 2011.12 (Feb 20 2012 - 21:21:59)
Pogo ohne Stick durchbooten (bei neuem Pogo: User = root PW = ceadmin)

cd /tmp
wget
chmod +x install_uboot_mtd0.sh
./install_uboot_mtd0.sh
In beiden Fällen, aber auch bei neueren u-boots (zb.2013.xx-tld-x) geht es hier weiter:

# START update uboot:
Wir booten von einem Debian Stick
und haben auch brav die
folgenden 3 Pakete installiert: mtd-utils, bzip2, ca-certificates

wenn noch nicht, bitte vorher installieren :
Code:
apt-get update && apt-get install mtd-utils bzip2 ca-certificates

Installation Version: new uboot 2017.07-tld-1 + uboot.2016.05-tld-1.environment
Info: reboot erst durchführen
wenn alles ohne Fehler abgelaufen ist und ihr die relevanten boot envs kontrolliert habt!
so geht's weiter :
# Installation uboot + envs:
# How to install new uboot 2017.07-tld-1:
# entweder wir sind schon dort oder wir wechseln in das Verzeichnis
cd /tmp

# MAC Adresse kontrollieren, die muss gesetzt sein! (vorerst egal welche) sonst bootet er nicht.
# -> später kann man seine eigene eingeben: siehe Boden Pogo E02
fw_printenv ethaddr

# Sicherung der bestehenden boot Variablen (zur Info bei Fehlersuche hilfreich...)
fw_printenv > old_current_envs.txt

# Flashen des neuen uboot bzw. der neuen uboot-envs
Code:
cd /tmp
wget -c www.dropbox.com/s/vgbshmiq3o14btp/uboot.2017.07-tld-1.pogo_e02.bodhi.tar
wget -c https://www.dropbox.com/s/4smmw2wr4ugayz9/uboot.2016.05-tld-1.environment.bodhi.tar
tar -xf uboot.2017.07-tld-1.pogo_e02.bodhi.tar
tar -xf uboot.2016.05-tld-1.environment.bodhi.tar

# flash new uboot:
flash_erase /dev/mtd0 0 4
nandwrite /dev/mtd0 uboot.2017.07-tld-1.pogo_e02.mtd0.kwb

# flash new uboot envs:
#(The MAC address will be set to a valid randomly generated local address.
# you can change it later in debian)
/usr/sbin/flash_erase /dev/mtd0 0xc0000 1
/usr/sbin/nandwrite -s 786432 /dev/mtd0 uboot.2016.05-tld-1.environment.img

# Konfigurieren der uBoot envs in /etc/fw_env.config
Dies ist unbedingt erforderlich, da man sonst keinen Zugriff aus Lede/openwrt auf seine uboot-envs hat.

Code:
cat /etc/fw_env.config

# MTD device name    Device offset    Env. size    Flash sector size    Number of sectors

/dev/mtd0 0xc0000 0x20000 0x20000

Ergänzung des uboot.2016.05-tld-1.environment.img für folgende Fälle:
Diese zusätzlichen Eingaben sind reine Ergänzungen des oben geflashten environment.img und ersetzen es nicht!
(die Ergänzungen für NC und openwrt im nand sollten unbedingt gemacht werden - helfen im Notfall und schaden nicht bei nicht benutzung!)
# Variablen für Netconsole (NC) setzen:
# sehr empfelenswert ,-)
wobei
<ipaddr> eine frei (wählbare) IP Adresse für den Pogo (im Bsp.100) in eurem Netz sein soll und
<serverip> die IP Adresse eures PCs (im Bsp.10) sein muss.
Code:
fw_setenv preboot_nc 'setenv nc_ready 0; for pingstat in 1 2 3 4 5; do; sleep 1; if run if_netconsole; then setenv nc_ready 1; fi; done; if test $nc_ready -eq 1; then run start_netconsole; fi'
fw_setenv preboot 'run preboot_nc'
fw_setenv ipaddr 192.168.1.100
fw_setenv serverip 192.168.1.10
Wenn alles geklappt hat:
könnt ihr beim Hochfahren im NetCat (Windows cmd Fenster, Aufruf mit c:\nc>nc -lu -p 6666 )
den Start-Countdown unterbrechen, er meldet sich dann mit "PogoE02> "
und ihr könnt euch eine Liste der möglichen uboot-Befehle mit "help" anzeigen lassen.

# Wenn man LEDE (17.01x) oder openwrt im nand hat - oder in Zukunft haben möchte
# (dualboot: debian vom stick / openwrt vom nand):

# sehr empfelenswert ,-)
# Variablen für openwrt im nand setzen:
# siehe Beitrag -> HowTo Installation von LEDE auf Pogoplug E02
NetCat (Windows cmd Fenster, Aufruf mit c:\nc>nc -lu -p 6666 )
den Start-Countdown unterbrechen, er meldet sich dann mit "PogoE02> "
wir sind nun im uboot und geben hier Zeile für Zeile ein.
Zum Schluss "saveenv" nicht vergessen, damit auch alles gespeichert wird.
Code:
# envs PogoE02 @debian (checked with uboot.2016.05-tld-1.environment):

setenv mtdparts 'mtdparts=orion_nand:0x100000@0x0(u-boot),-@0x100000(ubi)'
setenv partition 'nand0,0'
setenv set_bootargs_nand 'setenv bootargs console=ttyS0,115200 $mtdparts'
setenv bootcmd_nand 'run set_bootargs_nand; ubi part ubi; ubi read 0x800000 kernel; bootm 0x800000'
setenv bootcmd 'run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec; run bootcmd_nand'
setenv bootcmd_exec 'if run load_uimage; then; if run load_initrd; then if run load_dtb; then bootm $load_uimage_addr $load_initrd_addr $load_dtb_addr; else bootm $load_uimage_addr $load_initrd_addr; fi; else if run load_dtb; then bootm $load_uimage_addr - $load_dtb_addr; else bootm $load_uimage_addr; fi; fi; fi'
saveenv


# Wenn man das alte Rescue-System im nand hat (sollte mittlerweilen gegen openwrt ausgetauscht werde - bessere Funktionalität!):
# nicht mehr bei Neuinstallationen nur zur Info --> nimm hier openwrt
# Variablen für rescue System setzen, wenn ihr dieses bereits statt des Pogo OS im nand habt (mtd1, mtd2):
# Das alte Rescue-System sollten aber mittlerweile gegen LEDE oder besser (new OpenWRT 21.02.x) ausgetauscht werde,
da man hier durch die Paket Verwaltung wesentlich mehr Möglichkeiten hat!
Code:
fw_setenv set_bootargs_rescue 'setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts'
fw_setenv bootcmd_rescue 'run set_bootargs_rescue; nand read.e 0x800000 0x100000 0x400000; bootm 0x800000'
fw_setenv bootcmd 'run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec; run bootcmd_rescue; reset'
reboot
bzw. (cold reboot - Strom weg)

# Wenn man OscamWRT (CC) im nand hat benötigt folgende Ergänzung der uboot-envs:
# nicht mehr bei Neuinstallationen nur zur Info --> nimm hier openwrt
Code:
fw_setenv arcNumber '3542'    # nicht mehr erforderlich ab Kernel 3.17+
fw_setenv machid 'dd6'    # nicht mehr erforderlich ab Kernel 3.17+
fw_setenv bootcmd 'run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec; run bootcmd_nand; reset'
fw_setenv bootcmd_nand 'echo " "; echo "trying openwrtboot from internal flash"; echo " "; run set_bootargs_nand; run nand_boot'
fw_setenv mtdparts 'mtdparts=orion_nand:1M(u-boot),-(rootfs)'
fw_setenv nand_boot 'ubi part rootfs; ubifsmount ubi0:rootfs; ubifsload 0x2000000 /boot/uImage; bootm 0x2000000'
fw_setenv partition 'nand0,0'
fw_setenv set_bootargs_nand 'setenv bootargs console=ttyS0,115200 ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs rootwait=10 $mtdparts'

# Hier ein minimal Satz uboot-envs um vom bootloader aus einem debian-Stick booten zu können:
# man benötigt hierzu entweder NC (siehe oben) oder Consolenzugang über TTL-USB Adapter (Pogoöffnung erforderlich!)
# ist zb. gedacht für Erstinstallation um ein aktuelles debian-root-filesystem vom Stick booten zu booten
# (hierbei werden die envs nicht permanent gespeichert)
# oder wenn man seine uboot-ens versaut hat kann man immer noch einen funktionierenden debian Stick booten
# wird nicht benötigt wenn man aktuelle uboot-envs im nand hat!
minimalen boot-envs zum starten eines debian Sticks aus dem u-boot (Console oder NetCat erforderlich!):
Code:
setenv load_dtb 'ext2load usb 0:1 0x1c00000 /boot/dts/kirkwood-pogo_e02.dtb'
setenv load_initrd 'ext2load usb 0:1 0x1100000 /boot/uInitrd'
setenv load_uimage 'ext2load usb 0:1 0x800000 /boot/uImage'
setenv usb_boot 'run load_dtb; run load_uimage; if run load_initrd; then bootm 0x800000 0x1100000 0x1c00000; else bootm 0x800000 - 0x1c00000; fi'

# gestartet wird mit:

usb reset; run usb_boot
# wenn der Pogo in debian hochgefahren ist kann man von hier aus neue uboot-envs flashen.

Gutes Gelingen, joerg_999
 
Zuletzt bearbeitet:
AW: Pogo E02 uboot auf aktuelle Version updaten

Besserer Funktionsumfang im Bootloader

siehe hier:

Im Detail (Kurzform):
These images support the following latest U-Boot features (among others):

New feature in 2014.07-tld-3 :(Der ist aktuell --> siehe Update Beitrag 1)
Mit dieser Version ist es auch möglich das original POGO OS zu booten, wenn es nicht bereits durch ein rescue-system ersetzt wurde.

New feature in 2014.07-tld-2:
- Ability to customize u-boot envs in a script (uEnv.txt) during boot, without committing changes to NAND
This feature also can be used for rescue purpose where the u-boot envs were messed up,
or when the NAND envs block is bad.

New feature in 2014.07-tld-1
- both FDT and non-FDT kernel b<script id="gpt-impl-0.6921429839871018" src="http://partner.googleadservices.com/gpt/pubads_impl_79.js"></script>ooting
- supports EFI/GPT partition > 2TB (SATA and USB) either for booting or just attached.
- boot Ext4 rootfs
- SNTP (Simple NTP to set date time during U-Boot booting)
- bootz (boot with zImage).
 
Zuletzt bearbeitet:
AW: Pogo E02 uboot auf aktuelle Version updaten

und wie überprüfe ich welche Version ich habe?
Das ist schon ne weile her das ich das eingerichtet habe.
Danach werde ich prüfen/fragen ob sich das update lohnt.

Hab gerade Urlaub und hab auf Debian 7.7 und dem neuen Kernel upgedatet.
Wenn uboot update sin macht, werde ich das aus machen.

Eigentlich habe ich die Einstellung: don't touch a running system :)
 
Zuletzt bearbeitet von einem Moderator:
AW: Pogo E02 uboot auf aktuelle Version updaten

Kommt darauf an was du mit deinem Pogo alles machst, wenn er momentan vom Stick bootet und alles läuft ist kein unmittelbarer Handlungsbedarf.
(Update des uboot ist immer mit gewissen Gefahren verbunden!)

Wenn das hingegen ein neu zu bespielender Pogo oder Bastel-Pogo ist würde ich mich sehr wohl ein wenig einlesen um die Vorzüge des neuen uboots zu nutzen.

Wenn du ihn als reinen CS Server laufen hast, gibt es vom user "derdigge" auch ne tolle Lösung, stöbere ruhig mal ein wenig im Forum.... zb: https://www.digital-eliteboard.com/...ssen-keine-posts-post1728331.html#post1728331
Ist die Bechreibung wie du openWRT (eigentlich OscamWRT) im nand laufen lassen kannst und bei angestecktem Stick Debian.

PS: Version des uboot siehst du nur mit NC (Netcat) oder in der seriellen Konsole
 
Zuletzt bearbeitet:
AW: Pogo E02 uboot auf aktuelle Version updaten

Hallo zusammen,


so langsam mag ich den kleinen nicht mehr so.
Nachdem ich die Environment so gesetzt habe:
Code:
fw_setenv arcNumber '2097'
fw_setenv bootcmd_exec 'mw 0x800000 0 1; run load_uimage; if run load_initrd; then if run load_dtb; then bootm 0x800000 0x1100000 0x1c00000; else bootm 0x800000 0x1100000; fi; else if run load_dtb; then bootm 0x800000 - 0x1c00000; else bootm 0x800000; fi; fi'
fw_setenv bootcmd 'run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec'
fw_setenv bootcmd_uenv 'run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi'
fw_setenv bootdelay '10'
fw_setenv bootdev 'usb'
fw_setenv device '0:1'
fw_setenv devices 'usb'
fw_setenv disks '0 1 2 3'
fw_setenv ethact 'egiga0'
fw_setenv ethaddr '??:??:??:??:??:??'
fw_setenv if_netconsole 'ping $serverip'
fw_setenv ipaddr '192.168.178.???'
fw_setenv led_error 'orange blinking'
fw_setenv led_exit 'green off'
fw_setenv led_init 'green blinking'
fw_setenv dtb_file '/boot/dts/kirkwood-pogo_e02.dtb'
fw_setenv load_dtb 'echo loading DTB $dtb_file ...; ext2load $bootdev $device 0x1c00000 $dtb_file'
fw_setenv load_initrd 'echo loading uInitrd ...; ext2load $bootdev $device 0x1100000 /boot/uInitrd'
fw_setenv load_uimage 'echo loading uImage ...; ext2load $bootdev $device 0x800000 /boot/uImage'
fw_setenv machid '0x831'
fw_setenv mainlineLinux 'yes'
fw_setenv mtdids 'nand0=orion_nand'
fw_setenv mtdparts 'mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)'
fw_setenv partition 'nand0,2'
fw_setenv preboot_nc 'run if_netconsole start_netconsole'
fw_setenv scan_disk 'echo running scan_disk ...; scan_done=0; fw_setenv scan_usb "usb start"; fw_setenv scan_ide "ide reset"; fw_setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if ext2load $dev $disknum:1 0x800000 /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; fw_setenv device $disknum:1; fw_setenv bootdev $dev; fi; fi; done; fi; done'
fw_setenv serverip '192.168.178.???'
fw_setenv set_bootargs 'fw_setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params'
fw_setenv start_netconsole 'fw_setenv ncip $serverip; fw_setenv bootdelay 10; fw_setenv stdin nc; fw_setenv stdout nc; fw_setenv stderr nc; version;'
fw_setenv stderr 'serial'
fw_setenv stdin 'serial'
fw_setenv stdout 'serial'
fw_setenv uenv_import 'echo importing envs ...; env import -t 0x810000'
fw_setenv uenv_init_devices 'fw_setenv init_usb "usb start"; fw_setenv init_ide "ide reset"; fw_setenv init_mmc "mmc rescan"; for devtype in $devices; do run init_$devtype; done;'
fw_setenv uenv_load 'run uenv_init_devices; fw_setenv uenv_loaded 0; for devtype in $devices; do for disknum in 0; do run uenv_read_disk; done; done;'
fw_setenv uenv_read_disk 'if test $devtype -eq mmc; then if $devtype part; then run uenv_read; fi; else if $devtype part $disknum; then run uenv_read; fi; fi'
fw_setenv uenv_read 'echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 0x810000 /boot/uEnv.txt; then fw_setenv uenv_loaded 1; fi'
fw_setenv usb_ready_retry '15'

bootet er nicht mehr.
Hatte vorher u-boot neu geflasht:
Code:
[COLOR=#3E3E3E]neues uboot installieren [/COLOR][COLOR=#0000ff]uboot 2011.12 (Feb 20 2012 - 21:21:59)[/COLOR]
[COLOR=#3E3E3E]Pogo ohne Stick durchbooten [/COLOR][COLOR=#0000ff](bei neuem Pogo: User = root PW = ceadmin)
[/COLOR]
[COLOR=#3E3E3E]cd /tmp[/COLOR]
[COLOR=#3E3E3E]wget [/COLOR][URL]http://projects.doozan.com/uboot/install_uboot_mtd0.sh[/URL]
[COLOR=#3E3E3E]chmod +x install_uboot_mtd0.sh[/COLOR]
[COLOR=#3E3E3E]./install_uboot_mtd0.sh[/COLOR]


Dann wollte ich u-boot updaten.
Hatte wohl nicht geklappt.

Kann ich den Pogo jetzt noch retten?
 
AW: Pogo E02 uboot auf aktuelle Version updaten

Pogo kann man immer retten - also keine Panik.

Ich hoffe du hast das entsprechend angepasst und nicht so gelassen:
fw_setenv ethaddr '??:??:??:??:??:??'
fw_setenv ipaddr '192.168.178.???'
fw_setenv serverip '192.168.178.???'

wenn, nicht brauchst du die serielle Konsole sprich tty/usb Adapter um das zu ändern

PS: jetzt sehe ich gerade was willst du den für steinaltes uboot laden?
wir sind momentan bei uboot.2015.10-tld-1.pogo_e02.bodhi.tar

LG
joerg_999
 
AW: Pogo E02 uboot auf aktuelle Version updaten

Hi Jörg,

ich hoffe, das DU meine Rettung bist.
Die drei habe ich richtig gesetzt.

Ich komm aber nicht mehr per SSH drauf. BZW mein Router erkennt ihn nur als offline.
Und vergibt auch keine IP.

Jetzt hab ich noch einen zweiten. Der läuft und muß laufen. Kann ich vom Stick eine 1:1 Kopie machen?
Oder wie würdest du vorgehen?
 
AW: Pogo E02 uboot auf aktuelle Version updaten

muss mal ne Stunde oder zwei weg (arbeiten) dann bin ich wieder da
LG
Joerg_999
 
AW: Pogo E02 uboot auf aktuelle Version updaten

@schetin
uups hat doch länger gedauert, melde dich die Woche mal.

Zuerst solltest du mal mindestens ein uboot >= 2014.7-tld-2 oder besser gleich 2015.10-tld-1 drauf machen.
Die Methode die du oben angeführt hast ist nicht mehr aktuell, die knallt dir ein altes uboot drauf.

Du kannst dir aber mal einen 2.Stick mit Filesystem 3.18.5 nach Anleitung erstellen:
Ps: das kannst du auch auf deinem gesunden Pogo oder irgend einer anderen Linux Kiste machen denen passiert dabei nichts.

https://www.digital-eliteboard.com/...update-durchgang-post2819610.html#post2819610

das sollte dann der 2.Pogo mit deinen aktuellen uboot envs booten.

Das Update der Beschreibung auf die aktuelle Version mit Kernel 4.4 und Filesystem 4.4 mache ich die Woche mal....

-joerg_999
 
Zuletzt bearbeitet:
AW: Pogo E02 uboot auf aktuelle Version updaten

...das sollte dann der 2.Pogo mit deinen aktuellen uboot envs booten.
So, endlich mal geschafft.
Stick mit Filesystem 3.18.5 rein, aber es klappt nicht. Der USB Stick leuchtet kurz auf, dann war es das aber auch schon wieder.
Der "guckt" nicht wirklich auf den Stick.
Ist ja das alte uboot mit den neuen envs.
Gibt es noch ein Plan B?

Danke vorab.
 
AW: Pogo E02 uboot auf aktuelle Version updaten

Hallo zusammen,

bin noch nicht wirklich weiter gekommen.
Hab meinen Pogo E02 jetzt über einen PL2303HX Adapter an meinem Mac im Terminal eingelesen und den Bootvorgang gestoppt.
Code:
[FONT=Menlo]
[/FONT]
[FONT=Menlo]U-Boot 2011.12 (Feb 20 2012 - 21:21:59)[/FONT]
[FONT=Menlo]Pogoplug E02[/FONT]
[FONT=Menlo]
[/FONT]
[FONT=Menlo]SoC:   Kirkwood 88F6281_A0[/FONT]
[FONT=Menlo]DRAM:  256 MiB[/FONT]
[FONT=Menlo]WARNING: Caches not enabled[/FONT]
[FONT=Menlo]NAND:  128 MiB[/FONT]
[FONT=Menlo]In:    serial[/FONT]
[FONT=Menlo]Out:   serial[/FONT]
[FONT=Menlo]Err:   serial[/FONT]
[FONT=Menlo]Net:   egiga0[/FONT]
[FONT=Menlo]88E1116 Initialized on egiga0[/FONT]
[FONT=Menlo]Hit any key to stop autoboot:  0 [/FONT]
[FONT=Menlo]u-boot>>[/FONT]
Hab schon lange gesucht aber nichts gefunden.
Wie setze ich denn jetzt wieder meinen alten STANDARD Envs der 2011.12 Version damit er erstmal wieder bootet?

Hier die Terminalausgabe wenn ich den Bootvorgang nicht abbreche:
Code:
[FONT=Menlo]U-Boot 2011.12 (Feb 20 2012 - 21:21:59)[/FONT]
[FONT=Menlo]Pogoplug E02[/FONT]
[FONT=Menlo]
[/FONT]
[FONT=Menlo]SoC:   Kirkwood 88F6281_A0[/FONT]
[FONT=Menlo]DRAM:  256 MiB[/FONT]
[FONT=Menlo]WARNING: Caches not enabled[/FONT]
[FONT=Menlo]NAND:  128 MiB[/FONT]
[FONT=Menlo]In:    serial[/FONT]
[FONT=Menlo]Out:   serial[/FONT]
[FONT=Menlo]Err:   serial[/FONT]
[FONT=Menlo]Net:   egiga0[/FONT]
[FONT=Menlo]88E1116 Initialized on egiga0[/FONT]
[FONT=Menlo]Unknown command '=' - try 'help'[/FONT]
[FONT=Menlo]Hit any key to stop autoboot:  0 [/FONT]
[FONT=Menlo]Unknown command 'fw_setenv' - try 'help'[/FONT]
[FONT=Menlo]Unknown command 'fw_setenv' - try 'help'[/FONT]
[FONT=Menlo]Unknown command 'fw_setenv' - try 'help'[/FONT]
[FONT=Menlo]## Error: "init_usb" not defined[/FONT]
[FONT=Menlo]Unknown command 'fw_setenv' - try 'help'[/FONT]
[FONT=Menlo]USB is stopped. Please issue 'usb start' first.[/FONT]
[FONT=Menlo]importing envs ...[/FONT]
[FONT=Menlo]## Warning: Input data exceeds 1048576 bytes - truncated[/FONT]
[FONT=Menlo]## Info: input data size = 1048578 = 0x100002[/FONT]
[FONT=Menlo]ERROR: Environment import failed: errno = 12[/FONT]
[FONT=Menlo]
[/FONT]
[FONT=Menlo]at cmd_nvedit.c:890/do_env_import()[/FONT]
[FONT=Menlo]running scan_disk ...[/FONT]
[FONT=Menlo]Unknown command 'fw_setenv' - try 'help'[/FONT]
[FONT=Menlo]Unknown command 'fw_setenv' - try 'help'[/FONT]
[FONT=Menlo]Unknown command 'fw_setenv' - try 'help'[/FONT]
[FONT=Menlo]Scan device usb[/FONT]
[FONT=Menlo]## Error: "scan_usb" not defined[/FONT]
[FONT=Menlo]device usb 0:1[/FONT]
[FONT=Menlo]** Block device usb 0 not supported[/FONT]
[FONT=Menlo]device usb 1:1[/FONT]
[FONT=Menlo]** Block device usb 1 not supported[/FONT]
[FONT=Menlo]device usb 2:1[/FONT]
[FONT=Menlo]** Block device usb 2 not supported[/FONT]
[FONT=Menlo]device usb 3:1[/FONT]
[FONT=Menlo]** Block device usb 3 not supported[/FONT]
[FONT=Menlo]Unknown command 'fw_setenv' - try 'help'[/FONT]
[FONT=Menlo]loading uImage ...[/FONT]
[FONT=Menlo]** Block device usb 0 not supported[/FONT]
[FONT=Menlo]loading uInitrd ...[/FONT]
[FONT=Menlo]** Block device usb 0 not supported[/FONT]
[FONT=Menlo]loading DTB /boot/dts/kirkwood-pogo_e02.dtb ...[/FONT]
[FONT=Menlo]** Block device usb 0 not supported[/FONT]
[FONT=Menlo]Wrong Image Format for bootm command[/FONT]
[FONT=Menlo]ERROR: can't get kernel image![/FONT]
[FONT=Menlo]u-boot>>[/FONT]

Hier meine aktuellen Envs
Code:
[SIZE=2]
[/SIZE][FONT=Menlo][SIZE=2]u-boot>> printenv[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]arcNumber== 3542[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]baudrate=115200[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]bootcmd_exec=mw 0x800000 0 1; run load_uimage; if run load_initrd; then if run load_dtb; then bootm 0x800000 0x1100000 0x1c00000; else bootm 0x800000 0x1100000; fi; else if run load_dtb; then bootm 0x800000 - 0x1c00000; else bootm 0x800000; fi; fi[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]bootdelay=10[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]bootdev=usb[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]console=ttyS0,115200[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]device=0:1[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]devices=usb[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]disks=0 1 2 3[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]dtb_file=/boot/dts/kirkwood-pogo_e02.dtb[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]ethact=egiga0[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]ethaddr=00:25:31:04:9A:B4[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]force_rescue=0[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]force_rescue_bootcmd=if test $force_rescue -eq 1 || ext2load usb 0:1 0x1700000 /rescueme 1 || fatload usb 0:1 0x1700000 /rescueme.txt 1; then run rescue_bootcmd; fi[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]if_netconsole=ping $serverip[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]ipaddr=192.168.178.25[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]led_error=orange blinking[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]led_exit=green off[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]led_init=green blinking[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]load_dtb=echo loading DTB $dtb_file ...; ext2load $bootdev $device 0x1c00000 $dtb_file[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]load_initrd=echo loading uInitrd ...; ext2load $bootdev $device 0x1100000 /boot/uInitrd[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]load_uimage=echo loading uImage ...; ext2load $bootdev $device 0x800000 /boot/uImage[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]machid== dd6[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]mainlineLinux=yes[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]mtdids=nand0=orion_nand[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]partition=nand0,2[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]preboot== run if_netconsole start_netconsole[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]preboot_nc=run if_netconsole start_netconsole[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]rescue_bootcmd=if test $rescue_installed -eq 1; then run rescue_set_bootargs; nand read.e 0x800000 0x100000 0x400000; bootm 0x800000; else run pogo_bootcmd; fi[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]rescue_installed=1[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]rescue_set_bootargs=setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts $rescue_custom_params[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]scan_disk=echo running scan_disk ...; scan_done=0; fw_setenv scan_usb "usb start"; fw_setenv scan_ide "ide reset"; fw_setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if ext2load $dev $disknum:1 0x800000 /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; fw_setenv device $disknum:1; fw_setenv bootdev $dev; fi; fi; done; fi; done[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]serverip== 192.168.178.35[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]set_bootargs=fw_setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]start_netconsole=fw_setenv ncip $serverip; fw_setenv bootdelay 10; fw_setenv stdin nc; fw_setenv stdout nc; fw_setenv stderr nc; version;[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]stderr=serial[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]stdin=serial[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]stdout=serial[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]ubifs_bootcmd=run ubifs_set_bootargs; if ubi part data && ubifsmount rootfs && ubifsload 0x800000 /boot/uImage && ubifsload 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; fi[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]ubifs_mtd=3[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]ubifs_set_bootargs=setenv bootargs console=$console ubi.mtd=$ubifs_mtd root=ubi0:rootfs rootfstype=ubifs $mtdparts $ubifs_custom_params[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]uenv_import=echo importing envs ...; env import -t 0x810000[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]uenv_init_devices=fw_setenv init_usb "usb start"; fw_setenv init_ide "ide reset"; fw_setenv init_mmc "mmc rescan"; for devtype in $devices; do run init_$devtype; done;[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]uenv_load=run uenv_init_devices; fw_setenv uenv_loaded 0; for devtype in $devices; do for disknum in 0; do run uenv_read_disk; done; done;[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]uenv_read=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 0x810000 /boot/uEnv.txt; then fw_setenv uenv_loaded 1; fi[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]uenv_read_disk=if test $devtype -eq mmc; then if $devtype part; then run uenv_read; fi; else if $devtype part $disknum; then run uenv_read; fi; fi[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_device=0:1[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_init=run usb_scan[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_ready_retry=15[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_root=/dev/sda1[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_rootdelay=10[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_rootfstype=ext2[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 && ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_scan_1=usb=0:1 dev=sda1[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_scan_2=usb=1:1 dev=sdb1[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_scan_3=usb=2:1 dev=sdc1[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_scan_4=usb=3:1 dev=sdd1[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_scan_list=1 2 3 4[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]usb_set_bootargs=setenv bootargs console=$console root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $mtdparts $usb_custom_params[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]
[/SIZE][/FONT]
[FONT=Menlo][SIZE=2]Environment size: 4636/131068 bytes[/SIZE][/FONT]

Was muß ich jetzt ändern?

------------------------------

EDIT

so, Fehler gefunden
Code:
[COLOR=#333333][FONT=Menlo]machid== dd6[/FONT][/COLOR]
ist wohl ein "=" zuviel.
Er bootet jetzt wieder.
 
Zuletzt bearbeitet:
AW: Pogo E02 uboot auf aktuelle Version updaten

Na siehst, es ist meist nur eine Kleinigkeit, hat er dir im bootlog aber auch angezeigt:
88E1116 Initialized on egiga0
Unknown command '=' - try 'help'
Übrigens der Fehler mit den doppelten "==" den hast du mehrmals drinnen, das würde ich mir nochmal genauer ansehen!
Ich habe im ersten Beitrag sehr genau beschrieben wie die envs sowohl vom uboot als auch von Debian oder rescue einzugeben sind.
Würde ich noch mal vergleichen.
arcNumber== 3542
baudrate=115200
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec
bootcmd_exec=mw 0x800000 0 1; run load_uimage; if run load_initrd; then if run load_dtb; then bootm 0x800000 0x1100000 0x1c00000; else bootm 0x800000 0x1100000; fi; else if run load_dtb; then bootm 0x800000 - 0x1c00000; else bootm 0x800000; fi; fi
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootdelay=10
bootdev=usb
console=ttyS0,115200
device=0:1
devices=usb
disks=0 1 2 3
dtb_file=/boot/dts/kirkwood-pogo_e02.dtb
ethact=egiga0
ethaddr=00:25:31:04:9A:B4
force_rescue=0
force_rescue_bootcmd=if test $force_rescue -eq 1 || ext2load usb 0:1 0x1700000 /rescueme 1 || fatload usb 0:1 0x1700000 /rescueme.txt 1; then run rescue_bootcmd; fi
if_netconsole=ping $serverip
ipaddr=192.168.178.25
led_error=orange blinking
led_exit=green off
led_init=green blinking
load_dtb=echo loading DTB $dtb_file ...; ext2load $bootdev $device 0x1c00000 $dtb_file
load_initrd=echo loading uInitrd ...; ext2load $bootdev $device 0x1100000 /boot/uInitrd
load_uimage=echo loading uImage ...; ext2load $bootdev $device 0x800000 /boot/uImage
machid== dd6 # doppelt
mainlineLinux=yes
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)
partition=nand0,2
pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi
preboot== run if_netconsole start_netconsole
preboot_nc=run if_netconsole start_netconsole # so ist der Aufruf in den neuen envs
rescue_bootcmd=if test $rescue_installed -eq 1; then run rescue_set_bootargs; nand read.e 0x800000 0x100000 0x400000; bootm 0x800000; else run pogo_bootcmd; fi
rescue_installed=1
rescue_set_bootargs=setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts $rescue_custom_params
scan_disk=echo running scan_disk ...; scan_done=0; fw_setenv scan_usb "usb start"; fw_setenv scan_ide "ide reset"; fw_setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if ext2load $dev $disknum:1 0x800000 /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; fw_setenv device $disknum:1; fw_setenv bootdev $dev; fi; fi; done; fi; done
serverip== 192.168.178.35
set_bootargs=fw_setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params
start_netconsole=fw_setenv ncip $serverip; fw_setenv bootdelay 10; fw_setenv stdin nc; fw_setenv stdout nc; fw_setenv stderr nc; version;
stderr=serial
stdin=serial
stdout=serial
ubifs_bootcmd=run ubifs_set_bootargs; if ubi part data && ubifsmount rootfs && ubifsload 0x800000 /boot/uImage && ubifsload 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; fi
ubifs_mtd=3
ubifs_set_bootargs=setenv bootargs console=$console ubi.mtd=$ubifs_mtd root=ubi0:rootfs rootfstype=ubifs $mtdparts $ubifs_custom_params
uenv_import=echo importing envs ...; env import -t 0x810000
uenv_init_devices=fw_setenv init_usb "usb start"; fw_setenv init_ide "ide reset"; fw_setenv init_mmc "mmc rescan"; for devtype in $devices; do run init_$devtype; done;
uenv_load=run uenv_init_devices; fw_setenv uenv_loaded 0; for devtype in $devices; do for disknum in 0; do run uenv_read_disk; done; done;
uenv_read=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 0x810000 /boot/uEnv.txt; then fw_setenv uenv_loaded 1; fi
uenv_read_disk=if test $devtype -eq mmc; then if $devtype part; then run uenv_read; fi; else if $devtype part $disknum; then run uenv_read; fi; fi
usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot
usb_device=0:1
usb_init=run usb_scan
usb_ready_retry=15
usb_root=/dev/sda1
usb_rootdelay=10
usb_rootfstype=ext2
usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 && ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done
usb_scan_1=usb=0:1 dev=sda1
usb_scan_2=usb=1:1 dev=sdb1
usb_scan_3=usb=2:1 dev=sdc1
usb_scan_4=usb=3:1 dev=sdd1
usb_scan_list=1 2 3 4
usb_set_bootargs=setenv bootargs console=$console root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $mtdparts $usb_custom_params
Solltest aber trotzdem eine neueres uboot draufspielen da dein altes von 2012 noch andere Fehlermeldungen liefert und du zum Beispiel keine externe "env" Datei vom Stick einlesen könntest, was in Notfall oder bei defekten Nand Sektoren sehr praktisch wäre.
Problematisch ist auch dein Mix zwischen neuen und alten boot envs, da hier manche Dinge anders aufgerufen werden bzw. gar nicht vorhanden sind.
Dein NC dürfte so wie du es konfiguriert hast nie gelaufen sein..... darum hast du auch nur mehr mit dem TTY/USB Adapter Zugriff gehabt.
(aber den sollte man sowieso im Hause haben wenn man am Pogo rumbastelt ,-)

--joerg_999
 
Zuletzt bearbeitet:
AW: Pogo E02 uboot auf aktuelle Version updaten

Hi Jörg,


zum Glück hat man ja einen TTY/USB Adapter im Haus.
Hatte den Pogo erstmal wieder zum booten gebracht.
Hab auch gesehen das da noch einiges im Argen war. Deshalb hab ich das alte u-boot erstmal neu drüber gebügelt und die envs überschreiben lassen. Dann hatte ich wieder eine saubere Ausgangssituation.
Im Anschluß habe ich Debian-3.16.0-kirkwood-tld-2 auf den Stick entpackt und lief auch.
Dadurch konnte ich u-boot auf Version 2014.07-tld-3 updaten. Hat auch alles super geklappt.


Nun wollte ich einfach mal zum Testen Debian Wheezy "normal" installieren.
Bin so vorgegangen:
Code:
mount -o remount,rw / 
chmod 666 /usr/bin/microperl 
rm /usr/sbin/debootstrap 
rm -rf /usr/share/debootstrap 




cd /tmp 
wget http://projects.doozan.com/debian/kirkwood.debian-wheezy.sh 
chmod +x kirkwood.debian-wheezy.sh 
export PATH=$PATH:/usr/sbin:/sbin 
./kirkwood.debian-wheezy.sh


Ist auch fehlerfrei durchgelaufen.
Aber er bootet dann nicht mehr vom Stick.
Muß ich noch etwas im u-boot einstellen?


Hier meine aktuellen environment:
Code:
rescue:~# fw_printenv
arcNumber=2097
bootcmd_exec=mw 0x800000 0 1; run load_uimage; if run load_initrd; then if run load_dtb; then bootm 0x800000 0x1100000 0x1c00000; else bootm 0x800000 0x1100000; fi; else if run load_dtb; then bootm 0x800000 - 0x1c00000; else bootm 0x800000; fi; fi
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootdelay=10
bootdev=usb
device=0:1
devices=usb ide mmc
disks=0 1 2 3
ethact=egiga0
ethaddr=52:3b:20:9c:11:51
if_netconsole=ping $serverip
led_error=orange blinking
led_exit=green off
led_init=green blinking
dtb_file=/boot/dts/kirkwood-pogo_e02.dtb
load_dtb=echo loading DTB $dtb_file ...; ext2load $bootdev $device 0x1c00000 $dtb_file
load_initrd=echo loading uInitrd ...; ext2load $bootdev $device 0x1100000 /boot/uInitrd
load_uimage=echo loading uImage ...; ext2load $bootdev $device 0x800000 /boot/uImage
machid=0x831
mainlineLinux=yes
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)
partition=nand0,2
preboot_nc=run if_netconsole start_netconsole
scan_disk=echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start";  setenv scan_ide "ide reset";  setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if ext2load $dev $disknum:1 0x800000 /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv bootdev $dev; fi; fi; done; fi; done
set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
stderr=serial
stdin=serial
stdout=serial
uenv_import=echo importing envs ...; env import -t 0x810000
uenv_init_devices=setenv init_usb "usb start";  setenv init_ide "ide reset";  setenv init_mmc "mmc rescan"; for devtype in $devices; do run init_$devtype; done;
uenv_load=run uenv_init_devices; setenv uenv_loaded 0; for devtype in $devices;  do for disknum in 0; do run uenv_read_disk; done; done;
uenv_read_disk=if test $devtype -eq mmc; then if $devtype part; then run uenv_read;  fi; else if $devtype part $disknum; then run uenv_read; fi;  fi
uenv_read=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 0x810000 /boot/uEnv.txt; then setenv uenv_loaded 1; fi
usb_ready_retry=15
preboot=run preboot_nc
ipaddr=192.168.178.25
serverip=192.168.178.35
set_bootargs_rescue=setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts
bootcmd_rescue=run set_bootargs_rescue; nand read.e 0x800000 0x100000 0x400000; bootm 0x800000
bootcmd_pogo=run bootcmd_rescue
rescue_installed=1
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec; run bootcmd_pogo; reset
 
AW: Pogo E02 uboot auf aktuelle Version updaten

Ist natürlich mit etwas Handarbeit theoretisch möglich, nur was macht es für einen Sinn wenn du vom doozan Forum ein perfekt angepasstes Filesystem und Kernel für den Pogo und sämtlichen anderen Plugs zur Verfügung hast.
Ich habe nicht unbedingt vor Entwicklungsarbeit doppelt zu machen außer es gibt einen wichtigen Grund dafür (wenn zb. etwas nicht angesprochen würde oder ein Treiber für eine Komponente fehlen würde).
Gutes Beispiel ist der Raspi, hier wurde auch aus dem mainline Linux eine spezielle Version erstellt die auf den Raspi und all seine verbauten Komponenten auf dem Board abgestimmt wurde.
Hier würdest du auch kaum auf die Idee kommen Raspian neu zu entwickeln/ zu konfigurieren.

Also funktionieren tut es, aber du musst einiges per Hand um-konfigurieren um es problemlos den vorkonfigurierten Bootparametern des neuen uboots anzupassen.
Dazu solltest du die Fehlermeldungen im Bootlog studieren, sie sollten Hinweise geben wo er hängt. (mittels seriell Konsole /oder Netcat)

Die bootlog war aber leider nicht im Anhang. (oft liegt es an falscher arcNumber oder machid , welche vom Kernel abhängt) siehe hier:
# für Pogo E02 ab Kernel 3.8.11 (die machid unterstützen):
fw_setenv arcNumber 3542
fw_setenv machid dd6

# für Pogo E02 mit älteren Kernel
# die in 2014.07-tld-3.environment.img belassen!
fw_setenv arcNumber 2097
fw_setenv machid 0x831

Original Auszug aus dem doozan Forum:
Note that setting arcNumber is optional if you are booting with . But it's required for non-FDT kernel. (old way to boot kernel)

Also note that only some boxes need machid, some don't (so the command fw_setenv machid below clears them). --> Pogo E02 Needs!

PS: ich weiß auch nicht ob die Wheezy installations Scripts noch ohne Fehler/Probleme laufen. (dafür gäbe es vermutlich eine install-log)

LG
--joerg_999
 
Zuletzt bearbeitet:
Zurück
Oben