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?
Die Ausgangsbasis
könnte ein Pogo mit original uboot/Pogo OS sein dann hier weiter:
oder aber ein Pogo E02 der bereits eine uboot "Behandlung" erhalten hatte wie zb.:
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 :
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:
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 ,-)
# 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 ,-)
# 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
# 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
# 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!
Gutes Gelingen, joerg_999
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 Versionist 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.
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).
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
- outdated - das alte POGO OS ist seit Jahren tot, aktuell wäre ein aktuelles openwrt (zb.
Sie müssen registriert sein, um Links zu sehen.
)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
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:
# 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
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
- 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
wget
Sie müssen registriert sein, um Links zu sehen.
wget
Sie müssen registriert sein, um Links zu sehen.
wget
Sie müssen registriert sein, um Links zu sehen.
wget
Sie müssen registriert sein, um Links zu sehen.
wget
Sie müssen registriert sein, um Links zu sehen.
wget
Sie müssen registriert sein, um Links zu sehen.
wget
Sie müssen registriert sein, um Links zu sehen.
chmod +x *
# Achtung:fw_printenv kann nur korrekt benutzt werden nach dem flashen von uBoot and uBoot envs
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
Pogo ohne Stick durchbooten (bei neuem Pogo: User = root PW = ceadmin)
cd /tmp
wget
Sie müssen registriert sein, um Links zu sehen.
chmod +x install_uboot_mtd0.sh
./install_uboot_mtd0.sh
# 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
# 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.
# 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.
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.
<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
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.
# 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!
# 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!):
# wenn der Pogo in debian hochgefahren ist kann man von hier aus neue uboot-envs flashen.
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
Gutes Gelingen, joerg_999
Zuletzt bearbeitet: