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

uboot ENV's

  • Ersteller Ersteller Deleted member 130877
  • Erstellt am Erstellt am
    Nobody is reading this thread right now.
AW: uboot ENV's

1.) env so lassen wie sie jetzt sind. erledigt!
2.) mit deinem 4.2.0 Debian Stick mit ext. DBT File booten erledigt!
3.) neuen ext3 formatierten stick anstecken und rootfs nennen erledigt!
4.) Option 1a lt.Beschreibung erledigt!
5.) Vor dem reboot boot envs ändern auf booten mit integriertem DTB File erledigt!
6.) mit neu erstelltem Stick booten FAIL! >Siehe Kommentar unten
7.) bestehenden Kernel darauf von Version 3.x.x auf aktuelle Version 4.2.0 mit integriertem DTB updaten Option 1b
8.) alten Stick (ehemaliger boot- Stick aus 2.)) löschen und wie ab Pos3.) ebenfalls neu installieren.

Hallo joerg_999,

nach dem ich die env's geändert habe, startet er von dem neuen debian mit intergriertem DTM nicht.
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported machine ID (r1 = 0x00000dd6).
Available machine support:
ID (hex) NAME
ffffffff Generic DT based system
ffffffff Marvell Kirkwood (Flattened Device Tree)
Please check your kernel config and/or bootloader.
Woran kann das liegen? Habe es mit zwei Sticks Probiert.

So sieht printenv jetzt aus:
arcNumber=3542baudrate=115200
bootcmd=run bootcmd_uenv; run bootcmd_usb; run bootcmd_mmc; run bootcmd_sata; run force_rescue_bootcmd; run rescue_bootcmd; reset
bootcmd_mmc=run mmc_init; run set_bootargs_mmc; run mmc_boot
bootcmd_sata=run sata_init; run set_bootargs_sata; run sata_boot
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootcmd_usb=run usb_init; run set_bootargs_usb; run usb_boot
bootdelay=10
console=ttyS0,115200
device=0:1
devices=usb
ethact=egiga0
ethaddr=00:25:31:04:94:DD
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.1.5
led_error=orange blinking
led_exit=green off
led_init=green blinking
machid=dd6
mainlineLinux=yes
mmc_boot=mw 0x800000 0 1; run mmc_load_uimage; if run mmc_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
mmc_init=mmc rescan
mmc_load_uimage=ext2load mmc $device 0x800000 /boot/uImage
mmc_load_uinitrd=ext2load mmc $device 0x1100000 /boot/uInitrd
mmc_root=/dev/mmcblk0p1
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)
nc_ready=1
ncip=192.168.1.13
partition=nand0,2
pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi
preboot=run preboot_nc
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
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
rootdelay=10
rootfstype=ext3
sata_boot=mw 0x800000 0 1; run sata_load_uimage; if run sata_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
sata_init=ide reset
sata_load_uimage=ext2load ide $device 0x800000 /boot/uImage
sata_load_uinitrd=ext2load ide $device 0x1100000 /boot/uInitrd
sata_root=/dev/sda1
serverip=192.168.1.13
set_bootargs_mmc=setenv bootargs console=$console root=$mmc_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
set_bootargs_sata=setenv bootargs console=$console root=$sata_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
set_bootargs_usb=setenv bootargs console=$console root=$usb_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
stderr=nc
stdin=nc
stdout=nc
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=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 0x810000 /boot/uEnv.txt; then 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; run usb_load_uimage; if run usb_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
usb_init=usb start
usb_load_uimage=ext2load usb $device 0x800000 /boot/uImage
usb_load_uinitrd=ext2load usb $device 0x1100000 /boot/uInitrd
usb_root=/dev/sda1
Environment size: 3788/131068 bytes
PogoE02>
 
AW: uboot ENV's

Sorry das könnte mein Fehler gewesen sein, schau dir nochmals Option 1a an hab da was zurückgeändert - probiere das mal, ich bin leider jetzt 6h offline.

joerg_999
 
Zuletzt bearbeitet:
AW: uboot ENV's

Wenn dann heßt das auch apt-get install logrotate
Danke al-x83.
Nach dem ich Rsyslog und Logrotate installiert habe, kann ich jetzt IPC auf den debian mit externen DTB installiert werden.
apt-get install logrotate
apt-get install Rsyslog

EDIT: Ich musste zusätzlich noch
apt-get install apt-transport-https
installieren.
 
Zuletzt bearbeitet von einem Moderator:
AW: uboot ENV's

Hallo joerg_999,

nach dem ich die env's geändert habe, startet er von dem neuen debian mit intergriertem DTM nicht.
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported machine ID (r1 = 0x00000dd6).
Available machine support:
ID (hex) NAME
ffffffff Generic DT based system
ffffffff Marvell Kirkwood (Flattened Device Tree)
Please check your kernel config and/or bootloader.
Woran kann das liegen? Habe es mit zwei Sticks Probiert.

So sieht printenv jetzt aus:
arcNumber=3542baudrate=115200
bootcmd=run bootcmd_uenv; run bootcmd_usb; run bootcmd_mmc; run bootcmd_sata; run force_rescue_bootcmd; run rescue_bootcmd; reset
bootcmd_mmc=run mmc_init; run set_bootargs_mmc; run mmc_boot
bootcmd_sata=run sata_init; run set_bootargs_sata; run sata_boot
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootcmd_usb=run usb_init; run set_bootargs_usb; run usb_boot
bootdelay=10
console=ttyS0,115200
device=0:1
devices=usb
ethact=egiga0
ethaddr=00:25:31:04:94:DD
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.1.5
led_error=orange blinking
led_exit=green off
led_init=green blinking
machid=dd6
mainlineLinux=yes
mmc_boot=mw 0x800000 0 1; run mmc_load_uimage; if run mmc_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
mmc_init=mmc rescan
mmc_load_uimage=ext2load mmc $device 0x800000 /boot/uImage
mmc_load_uinitrd=ext2load mmc $device 0x1100000 /boot/uInitrd
mmc_root=/dev/mmcblk0p1
mtdids=nand0=orion_nand
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)
nc_ready=1
ncip=192.168.1.13
partition=nand0,2
pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi
preboot=run preboot_nc
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
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
rootdelay=10
rootfstype=ext3
sata_boot=mw 0x800000 0 1; run sata_load_uimage; if run sata_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
sata_init=ide reset
sata_load_uimage=ext2load ide $device 0x800000 /boot/uImage
sata_load_uinitrd=ext2load ide $device 0x1100000 /boot/uInitrd
sata_root=/dev/sda1
serverip=192.168.1.13
set_bootargs_mmc=setenv bootargs console=$console root=$mmc_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
set_bootargs_sata=setenv bootargs console=$console root=$sata_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
set_bootargs_usb=setenv bootargs console=$console root=$usb_root rootdelay=$rootdelay rootfstype=$rootfstype $mtdparts
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
stderr=nc
stdin=nc
stdout=nc
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=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 0x810000 /boot/uEnv.txt; then 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; run usb_load_uimage; if run usb_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
usb_init=usb start
usb_load_uimage=ext2load usb $device 0x800000 /boot/uImage
usb_load_uinitrd=ext2load usb $device 0x1100000 /boot/uInitrd
usb_root=/dev/sda1
Environment size: 3788/131068 bytes
PogoE02>

Sorry hatte zwei Fehler entdeckt:

1.) hatte in der Beschreibung Option 1a "mkimage" Part aus kommentiert, das war falsch
so sollte es aussehen:
Code:
#Stick mounten 
mkdir /media/sdb1
mount /dev/sdb1 /media/sdb1
cd /media/sdb1
# rootfilesystem downloaden und entpacken
wget -c [URL="http://www.dropbox.com/s/uav4oc6oibmo5mb/Debian-3.17.0-kirkwood-tld-1-rootfs-bodhi.tar.bz2"]www.dropbox.com/s/uav4oc6oibmo5mb/Debian-3.17.0-kirkwood-tld-1-rootfs-bodhi.tar.bz2[/URL]
tar -xjf Debian-3.17.0-kirkwood-tld-1-rootfs-bodhi.tar.bz2

cd /media/sdb1/boot
cp -a zImage-3.17.0-kirkwood-tld-1  zImage.fdt
cat dts/kirkwood-pogo_e02.dtb  >> zImage.fdt
 mv uImage uImage.orig
 mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-3.17.0-kirkwood-tld-1 -d /media/sdb1/boot/zImage.fdt /media/sdb1/boot/uImage

sync
shutdown -h now
# Strom kurz entfernen (cold reboot)
# neu erstellten Stick in Pogo belassen original Stick raus und neu booten
2.) die boot-envs gehören folgendermaßen geändert für booten mit integriertem DTB File:
######################################################
# booten nach alter Methode mit integriertem DTB File
######################################################
fw_setenv load_dtb
fw_setenv load_initrd
fw_setenv load_uimage
fw_setenv usb_boot 'mw 0x800000 0 1; run usb_load_uimage; if run usb_load_uinitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi'
fw_setenv uenv_load 'usb start; mmc rescan; ide reset; setenv uenv_loaded 0; for devtype in usb mmc ide; do for disknum in 0; do run uenv_read_disk; done; done'
damit hat es bei mir nun funktioniert. - Sorry nochmals war etwas übermüdet....

#/ Nachtrag:
Es gibt noch eine elegante Möglichkeit ab uboot 2014.7-tld-2
siehe: https://www.digital-eliteboard.com/...-version-updaten-post2324303.html#post2324303
Die Vorgangsweise ist einfach, wenn du einen bootenden Pogo hast, gibst du folgenden Befehl ein um deine "funktionierenden uboot-envs" in eine Datei zu kopieren die er beim booten direkt ohne Änderungen aus dem Verzeichnis /boot/uEnv.txt lesen wird.
Code:
fw_printenv > /boot/uEnv.txt
Damit ist dann egal wie die Einstellungen der uboot-envs im nand sind - er liest sie aus dieser Datei uEnv.txt auf dem Stick.

Die entsprechenden Einstellungen in den uboot envs damit er auf diese Datei zugreift 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
siehe:
Code:
bootcmd=[COLOR=#ff0000]run bootcmd_uenv[/COLOR]; run bootcmd_usb; run bootcmd_mmc; run bootcmd_sata; reset


joerg_999
 
Zuletzt bearbeitet:
AW: uboot ENV's

#/ Nachtrag:
Es gibt noch eine elegante Möglichkeit ab uboot 2014.7-tld-2
siehe: https://www.digital-eliteboard.com/...-version-updaten-post2324303.html#post2324303
Die Vorgangsweise ist einfach, wenn du einen bootenden Pogo hast, gibst du folgenden Befehl ein um deine "funktionierenden uboot-envs" in eine Datei zu kopieren die er beim direkt ohne Änderungen aus dem Verzeichnis /boot/uEnv.txt lesen wird.
Code:
fw_printenv > /boot/uEnv.txt
Damit ist dann egal wie die Einstellungen der uboot-envs im nand sind - er liest sie aus dieser Datei auf dem Stick.

Die entsprechenden Einstellungen in den uboot envs damit er auf diese Datei zugreift 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
siehe:
Code:
bootcmd=[COLOR=#ff0000]run bootcmd_uenv[/COLOR]; run bootcmd_usb; run bootcmd_mmc; run bootcmd_sata; reset
joerg_999

Hallo joerg_999,

leider funktioniert das bei mir nicht.
Wenn ich zu Anfang printenv nutze, gibt er mir die Einträge aus. Auch wenn ich mit fw_ Einträhe setze, sagt er das, nimmt die Einträge aber an. Ist das "normal"?
Abe im debian kommt folgender ausdruck:
root@debianPogoE02 /media/sdb1 > fw_printenvWarning: Bad CRC, using default environment
bootcmd=bootp; setenv bootargs root=/dev/nfs nfsroot=${serverip}:${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; bootm
bootdelay=5
baudrate=115200
Weil es nicht geklappt hat, habe ich mich entschlossen ein neues sauberes Image mit u-boot 2014.07.-tld-3 und dem Kernel 4.1.0-kirkwood-tld-1 zu installieren.
Alles nach dieser Anleitung.


Das u-boot habe ich mit deiner Anleitung aktualisiert.
https://www.digital-eliteboard.com/...auf-aktuelle-version-updaten.html#post2324303
Im Spoiler # How to install new uboot 2014.07-tld-3.
Danach habe ich aus dem doozan Forum die Anleitung vom 24 Feb 2015 genommen um mit dem bootbaren debian einen zweiten Stick mit Debian-3.18.5-kirkwood-tld-1-rootfs-bodhi.tar.bz2.
Danach wird der Kernel auf Basis der Anleitung vom 30 June 2015 aktualisiert.

So jetzt komme ich aber mit der 24 Feb 2015 Anleitung nicht weiter, weil da meine Linux Kenntnisse nicht ausreichen.
Und zwar betrifft das den Punkt 3:
3. edit /media/sdb1/etc/fstab entry for /dev/root to match the rootfstype of your usb_rootfstype (however, you can keep it as Ext2 without problem in booting an Ext3 partition).

/dev/root / ext2 noatime,errors=remount-ro 0 1
In deiner Anleitung steht zusätzlich
nano /etc/fstab

#
/dev/root / ext3 noatime,errors=remount-ro 0 1
/dev/sda2 none swap sw 0 0

Muss ich das auch machen? Und wofür ist das?


Dann geht es unter Punkt 4 weiter:
Create uImage with embbeded DTB (If this is not first time installation, please see Note 2 below).
In Note 2 steht, wenn ich die mit FDT will, soll ich mit Note 4 weiter machen und die env´s setzen und Punkt vier Komplet überspringen?
Vielleicht kannst du mir dabei behilflich sein. Was muss ich also für die FDT machen?
Unter Punt vier steht das:
Create uImage with embbeded DTB (If this is not first time installation, please see Note 2 below).

I'm using the GoFlex Net booting with USB drive as an example here. Please replace its name (kirkwood-goflexnet.dtb) with the box you are installing on (for example, kirkwood-pogo_e02.dtb). Look inside /media/sdb1/boot/dts/ for the correct DTB file name for your box.

cd /media/sdb1/boot
cp -a zImage-3.18.5-kirkwood-tld-1 zImage.fdt
cat dts/kirkwood-pogo_e02.dtb >> zImage.fdt
mv uImage uImage.orig
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-3.18.5-kirkwood-tld-1 -d zImage.fdt uImage
sync

Edit: Copy-Past Fehler korrigiert: kirkwood-pogo_e02.dtb
 
Zuletzt bearbeitet von einem Moderator:
AW: uboot ENV's

Da sind natürlich einige Fehler drinnen bei dir darum bin ich immer etwas vorsichtig mit dem Verweis auf das doozan Forum, denn hier muss man schon alles genau lesen und auch richtig interpretieren um nicht in Anfängerfallen zu tappen.

z.Bsp in deinem letzten Spoiler:
cd /media/sdb1/boot
cp -a zImage-3.18.5-kirkwood-tld-1 zImage.fdt
cat dts/kirkwood-goflexnet.dtb >> zImage.fdt
mv uImage uImage.orig
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-3.18.5-kirkwood-tld-1 -d zImage.fdt uImage sync

richtig wäre hier:
cp -a zImage-3.18.5-kirkwood-tld-1 zImage.fdt
cat dts/kirkwood-pogo_e02.dtb >> zImage.fdt
mv uImage uImage.orig
mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n Linux-3.18.5-kirkwood-tld-1 -d zImage.fdt uImage sync
da du doch sicher einen POGO E02 hast und keine goflexnet Box oder?

Du solltest das doozan Forum nur als tiefere Hintergrundinformation sehen, aufbereitet habe ich es in meinen Beiträgen die du auch so übernehmen kannst.
PS: Ich habe die meisten upgedatet also alte Ausdrucke wegwerfen!
Bei deinen uboot envs stimmt immer noch etwas nicht, gehe den Beitrag uboot update bitte nochmals durch (env Konfiguration, speziell bootcmd!)

Aufpassen musst du auch mit den Befehlen:
printenv - den verwenden wenn du im uboot bist
fw_printenv - den verwendest du vom rescue System oder Debian aus, wenn du im nand Variablen lesen möchtest!
Die restlichen uboot Befehle natürlich analog.

joerg_999

Nachtrag:
Ok wenn du korrigiert hast wie angegeben dann hast du jetzt einen Kernel mit integriertem DTB File, der wird nicht mit den gleichen envs booten wie dein Kernel 4.2.0 auf deinem installations Stick.
Ein zweites Problem sehe ich wenn der fw_setenv Befehl einen Fehlermeldung ausgibt der auf bad blocks schließen lässt, dann bleibt dir sowieso nur die Möglichkeit die envs über eine Datei am STick zu laden wie ich es im uboot update auf 2014.07-tld-2 beschrieben habe.

Der Rest deiner Fragen ist vorerst nicht relevant für ein korrektes booten.

Nachtrag vom 28.10.2015
Es gibt Neuigkeiten im uboot Thread und auch aktuallisierte uboot-envs (auch als img zum flashen!)
https://www.digital-eliteboard.com/332497-pogo-e02-uboot-auf-aktuelle-version-updaten.html
 
Zuletzt bearbeitet:
Zurück
Oben