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

Dockstar uboot update per tftp und LEDE ins nand

joerg_999

Stamm User
Registriert
11. Mai 2010
Beiträge
1.041
Reaktionspunkte
758
Punkte
273
Aufgrund einer Nachfrage stelle ich euch eine knackige Kurzanleitung rein wie man auf der Dockstar ein neues uboot + aktuell ubootenvs + LEDE im nand realisieren kann:
Voraussetzung ist allerdings, das ihr eine serielle Konsole (TTY/USB Adapter zur Verfügung habt)
Sinngemäß funktioniert diese Anleitung auch für alle anderen Kirkwood Plugs mit den passenden Files.

# am Windows Rechner tftp.zip runterladen
( )
# am Windows PC ein Verzeichnis erstellen c:/TFTP und hier alles rein kopieren
# entpacken und starten
# die kwb files, die enviroment.img und die LEDE Files ins c:/TFTP kopieren
# am Windows Rechner IP ermitteln:
cmd
ipconfig
# z.b. 192.168.1.100
--------------------------------------------------------------------------------
# auf der Dockstar @console ip's entsprechen setzen:
# set tftp-server ip
Code:
setenv serverip <ip_von_ipconfig>

# mac adresse von Dockstar auslesen: <ethaddr Userbox> hier notieren!
Code:
printenv ethaddr                                         z.b. 00:25:31:04:xx:xx

###. TFTP bootng - this works:
#set Dockstar net ip (beliebig aber im selben Nummernkreis wie serverip)
Code:
setenv ipaddr 192.168.1.240

# test auf bad nand-blocks
Code:
nand info
nand bad
# Wenn die Zahl größer ist als "0x00100000" ist das kein Problem!!
# sonst nicht flashen - es besteht Gefahr die Dockstar zu bricken.
--------------------------------------------------------------------------------
# original uboot.2017.07-tld-1.dockstar.mtd0.kwb # Dockstar
--------------------------------------------------------------------------------
Nun solltet ihr spätestens den tftp Server aufrufen den wir zuvor heruntergeladen habt,
es geht weiter mit:
Code:
tftpboot 0x800000 uboot.2017.07-tld-1.dockstar.mtd0.kwb
nand erase 0 0x80000
nand write.e 0x800000 0x0 0x80000
--------------------------------------------------------------------------------
# original uboot-envs uboot.2016.05-tld-1.environment.img # universal
--------------------------------------------------------------------------------
zur Sicherheit Dockstar neu durchstarten mit
Code:
reset
und danach wieder den Startvorgang unterbrechen.
Code:
tftpboot 0x800000 uboot.2016.05-tld-1.environment.img
nand erase 0xc0000  0x20000
nand write.e 0x800000 0xc0000 0x20000
# @uboot Dockstar:

Code:
setenv ethaddr <ethaddr Userbox>
setenv arcNumber 2998
setenv machid
setenv dtb_file '/boot/dts/kirkwood-dockstar.dtb'
saveenv
reset

# fertich das wars mit uboot und envs
--------------------------------------------------------------------------------
# wenn du LEDE im nand hast (oder willst) dann diese envs noch eingeben:
--------------------------------------------------------------------------------
# @bootloader 0xe0000@0x0
Code:
setenv mtdparts 'mtdparts=orion_nand:0xe0000@0x0(u-boot),-@0x100000(ubi)'
setenv partition 'nand0,0'
setenv set_bootargs_lede 'setenv bootargs console=ttyS0,115200 $mtdparts'
setenv bootcmd_lede 'run set_bootargs_lede; 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_lede'
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

# Achtung hier wird der nand Speicher gelöscht und vorbereitet für LEDE Installation!
nand erase.part ubi

reboot (or unplug Dockstar)
# fertich das wars mit den envs für LEDE/debian dualboot

--------------------------------------------------------------------------------
# LEDE Installation auf der Dockstar:
--------------------------------------------------------------------------------
# Run the following code for starting the process:
# ladet euch die Datei lede-kirkwood-dockstar-initramfs-uImage auf einen fat32 formatierten USB Stick
# steckt ihn an der Dockstar an starten, und in der seriellen Konsole den Start abbrechen, von hier geht es so weiter:

# @bootloader run LEDE from usb pendrive
Code:
usb reset; fatload usb 0 0x800000 lede-kirkwood-dockstar-initramfs-uImage; bootm 0x800000
# sobald die Dockstar hochgefahren ist (dauert ca. 1Minute) einmal enter Taste dann weiter mit sysupgrade über WIF in LEDE:

# log in a Webbrowser session @Dockstars ipadress:
# Empfehlung: Google Chrome oder FireFox, der Edge von Mircosoft geht nicht!
# (nehmt den upgrade-File von meinem Download .)

lede-17.01.4-kirkwood-dockstar-squashfs-sysupgrade.tar

in LEDE Menü nach Upgrade device/router suchen den obigen File auswählen und
upgrade drücken und warten.....
Sollte jetzt im nand sein und nach reboot ohne Stick im LEDE landen.

Installation einiger wichtiger Pakete:
Code:
opkg update
opkg install ca-bundle ca-certificates libustream-openssl ubi-utils kmod-mtd-rw nano

Wichtiger Nachtrag:
In LEDE bitte folgendes kontrollieren:
Code:
# wichtiger Punkt und oft Fehlerquelle:

# so sieht es aus wenn es FALSCH ist:
root@LEDE:/# cat /etc/fw_env.config
/dev/mtd1 0x0 0x20000 0x20000

# Mit dem neuen u-boot, /etc/fw_env.config sollte es so aussehen:
# MTD device name    Device offset    Env. size    Flash sector size    Number of sectors
/dev/mtd0 0xc0000 0x20000 0x20000

# wenn nicht bitte ändern mit:
nano /etc/fw_env.config
# ändern auf
/dev/mtd0 0xc0000 0x20000 0x20000

# speichern und schließen (Strg o Strg x)

Dann ist auch ein Anzeigen/Ändern und Bearbeiten der envs von LEDE aus möglich!


Alle Files dafür in folgendem Link auf meiner Dropbox:


und hier die Pinbelegung für die serielle Konsole der Dockstar:


Grüsse
joerg_999
 
Zuletzt bearbeitet:
Wow...wahnsinn, alles perfekt gelaufen ohne einzigen Fehler!

Respekt - Herzichst Dank für deine Hilfe & Arbeit!
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
Zuletzt bearbeitet:
Freut mich wenn es geklappt hat, ich selber habe nämlich keine Dockstar, habe es also nicht testen können...
--joerg_999
 
Sorry...da habe ich noch eine Frage: mit deinen aktuelle image "PogoE02_Stretch_Kernel_4.14.1_IPC_emb_dtb_joerg_211217_2G" bootet mein Dockstar nicht - ist es nur für Pogo-E2?
 
wie du im Titel lesen kannst steht da PogoE02_Stretch_Kernel_4.14.1_IPC_emb_dtb_joerg_211217_2G was soviel heißt das es nur für einen PogoE02 sein kann.
Bei embedded legt man sich bei der Kernelerstellung auf einen Plug fest (alte Methode)

Darum wird jetzt bei aktuellen images von mir nur mehr ext_dtb verwendet. (neue Methode)
Der Vorteil liegt auf der Hand: ein Image für alle Plugs

Die Images lauten dadurch auch nur mehr Kirkwood_kernelversion_ext_dtb_erstellungsdatum_Imagegröße in GB wie zb Bsp. mein neues:

kirkwood_stretch_Kernel_4.16.1_ext_dtb_service_150418_3G.img

bedeutet es läuft auf allen Plugs es muss nur der dtb File in den bootenvs angepasst werden da er jetzt getrennt geladen wird und nicht mehr im Kernel mit verpackt ist:

Code:
# vom debian aus wahlweise einen davon setzen:
fw_setenv dtb_file '/boot/dts/kirkwood-pogo_e02.dtb'
fw_setenv dtb_file '/boot/dts/kirkwood-dockstar.dtb'
fw_setenv dtb_file '/boot/dts/kirkwood-goflexnet.dtb'

# oder von uboot aus wahlweise einen davon setzen:
setenv dtb_file '/boot/dts/kirkwood-pogo_e02.dtb'
setenv dtb_file '/boot/dts/kirkwood-dockstar.dtb'
setenv dtb_file '/boot/dts/kirkwood-goflexnet.dtb'

# wenns dann noch permanent sein soll
saveenv

Warum das ganze Theater:
Das Ziel war ein Image für alle Kirkwood-Plugs,
weil aber die alten uboots mit dieser neuen Methode den dtb File extern zu laden nicht umgehen konnten ist ein Update des uboots + envs erforderlich.

wenn du also ein altes Image mit emb_dtb starten möchtest, geht das natürlich auch (vorausgesetzt es ist der selbe Plugtyp POGOE02....),
du musst nur den Eintrag
Code:
dtb_file=/boot/dts/kirkwood-pogo_e02.dtb
# auf null setzen sprich
fw_setenv dtb_file
# aufpassen dann funktionieren die neuen Images nicht mehr!

Ich hoffe das Ganze somit einigermaßen verständlich erklärt zu haben.

Grüße
joerg_999
 
Zuletzt bearbeitet:
# von uboot aus:
setenv dtb_file '/boot/dts/kirkwood-dockstar.dtb'
# wenns dann noch permanent sein soll
saveenv

siehe Bild...trotzdem bootet der Docktart immer noch Lede. Wo ist bitte mein Fehler?
Du musst Regestriert sein, um das angehängte Bild zusehen.
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
wenn du also ein altes Image mit emb_dtb starten möchtest, geht das natürlich auch (vorausgesetzt es ist der selbe Plugtyp POGOE02....),Bei embedded legt man sich bei der Kernelerstellung auf einen Plug fest (alte Methode)
Du musst genauer lesen .....

bei embedded dtb ist nichts zu machen wenn erstellt für Pogo gehts nun mal nicht für die Dockstar da kannst du machen was du willst.

@ switch zieh dir das neue image von mir das kannst du überall draufklatschen, POGO, Dockstar, Goflexnet usw...

siehe hier: Infos - Aktuelles Kirkwoodimage (POGO,Dockstar,Goflex usw) mit Kernel 4.16.1
 
Zuletzt bearbeitet von einem Moderator:
Das habe ich schon gemacht...Auf dem screenshot ist der Versuch mit deinen image von heute:) also mit ext_dtb. Das habe ich verstanden, aber es bootet auch nicht.
 
auf welcher kiste willst du es den laufen lassen Dockstar oder Pogo?
welches image von mir genau?
gib mir printenv von der Konsole..
und eventuell bootlog

zur Info: ich habe bisher nur emb_dtb Images für den Pogo gebaut die laufen auch nur auf dem Pogo.
Die neuen Images die mit kirwood.... beginnen laufen nach anpassung des dtb files in den uenvs auf allen Plugs.
 
Zuletzt bearbeitet:
gerne möchte ich das image von heute auf dem Dockstar probieren
#
U-Boot 2017.07-tld-1 (Oct 24 2017 - 22:32:36 -0700)
Seagate FreeAgent DockStar

SoC: Kirkwood 88F6281_A0
DRAM: 128 MiB
WARNING: Caches not enabled
NAND: 256 MiB
In: serial
Out: serial
Err: serial
Net: egiga0
88E1116 Initialized on egiga0
Hit any key to stop autoboot: 0
DockStar> printenv
arcNumber=2998
arcnumber=2998
baudrate=115200
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec; run bootcmd_lede
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_uimag e_addr - $load_dtb_addr; else bootm $load_uimage_addr; fi; fi; fi
bootcmd_lede=run set_bootargs_lede; ubi part ubi; ubi read 0x800000 kernel; boot m 0x800000
bootdelay=3
console=ttyS0,115200
dtb_file=/boot/dts/kirkwood-dockstar.dtb
ethact=egiga0
ethaddr=00:10:75:1A:xx:xx
fileaddr=800000
filesize=20000
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
ipaddr=192.168.178.99
led_error=orange blinking
led_exit=green off
led_init=green blinking
mainlineLinux=yes
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:0x100000@0x0(u-boot),-@0x100000(ubi)
nand_erasesize=20000
nand_oobsize=40
nand_writesize=800
partition=nand0,2
pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi
rescue_bootcmd=if test $rescue_installed -eq 1; then run rescue_set_bootargs; na nd 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
serverip=192.168.178.2
set_bootargs_lede=setenv bootargs console=ttyS0,115200 $mtdparts
stderr=serial
stdin=serial
stdout=serial
ubifs_bootcmd=run ubifs_set_bootargs; if ubi part data && ubifsmount rootfs && u bifsload 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
usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext 2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; el se 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_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 t est $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; se tenv 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

Environment size: 2970/131068 bytes
DockStar>
 
Zuletzt bearbeitet:
ja genau habe ich das probiert - nach dem du mir geschrieben hast, dass das image für Pogo.E2 auf Dockstar nicht funzt.
 
wenn ich deine uboot envs sehe denke ich du hast nur die Änderungen drübergespielt die erforderlich sind um LEDE zu booten.

Ich gehe immer davon aus das man das komplette Paket: uboot.2016.05-tld-1.environment.img zuerst flasht und das als Ausgangsbasis dient.
(das sollte ab nun der Standard sein, sonst müsste ich alle Einträge einzeln zerpflücken, was ich nicht vor habe...)
Von hier dann erst die Änderungen einspielen wie:
passenden dtb Pfad
die LEDE/debian bootenvs
die eigene mac adresse
machid und arcNumber passend zum jeweiligen Plug
usw.
Dann bootet das Image auch korrekt, egal welcher Plug.

Zu erwähnen wäre noch:
zur Sicherheit nach jedem Einspielen per tftp den Plug neu booten, start abbrechen und dort weitermachen wo man aufgehört hat
d.h. uboot einspielen
neu booten
uboot environment einspielen
neu booten
dann alle anderen Änderungen
neu booten

PS und pass auf deine Schreibweise auf Groß Kleinbuchstaben beachten das ist nicht windoof
wenn ich schreibe :
setenv arcNumber 2998
setenv machid
setenv dtb_file '/boot/dts/kirkwood-dockstar.dtb'

dann gehörts auch genau so rein ....

Da hast du Mist gebaut bei deinen envs......

--joerg_999

Nachtrag zur Info:
switch dockstar läuft jetzt, seine envs waren nicht korrekt!
 
Zuletzt bearbeitet:
@joerg_999

alles perfekto:) - Vielen Dank für alles, was du für mich getan hast!

Sinngemäß funktioniert diese Anleitung auch für alle anderen Kirkwood Plugs mit den passenden Files

Absolut empfehlenswert...nur durch Ersetzen paar Files und per Copy/Paste konnte sogar ich als Ahnungsloser gerade meinen "defekten" Pogo-E2 auf neuen uboot updaten und lede ins nand installieren, also quasi gleicher Zustand wie der Dockstar.

Super tolle Arbeit!
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben