U-Boot updates

Diskussionen um Bootloader, Kernel, Busybox
ingrid
Erleuchteter
Erleuchteter
Beiträge: 600
Registriert: Samstag 14. Oktober 2006, 10:53

Beitrag von ingrid »

Ich habe u-boot-1.3.1 jetzt gebaut, Neutrino bootet und es funktioniert auch soweit alles.
Allerdings habe ich beim Booten (obwohl ich schon komplett neu gebaut habe) kein Logo im LCD und Folgendes im Log:

Code: Alles auswählen

...
debug: Transmitting BOOTP request via broadcast
debug: Given up BOOTP/TFTP boot
boot net failed

Flash-FS bootstrap loader (v1.5)

Found Flash-FS superblock version 3.1
Found file /root/platform/sagem-dbox2/kernel/os in Flash-FS
debug: Got Block #0008
debug: Got Block #0012
debug: Got Block #0016
debug: Got Block #0020
debug: Got Block #0024
debug: Got Block #0028
debug: Got Block #0032
debug: Got Block #0036
debug: Got Block #0040
debug: Got Block #0044

will verify ELF image, start= 0x800000, size= 166072
verify sig: 262
Branching to 0x40000

U-Boot 1.3.1 (Tuxbox) (Dec 28 2007 - 20:40:27)

CPU:   PPC823ZTnnB2 at 66 MHz: 2 kB I-Cache 1 kB D-Cache
Board: DBOX2, Sagem, BMon V1.0
       Watchdog enabled
I2C:   ready
DRAM:  32 MB
FLASH:  8 MB
Scanning JFFS2 FS:  done.

find_inode failed for name=tuxbox

load: Failed to find inode

FB:    ready
LCD:   ready
In:    serial
Out:   serial
Err:   serial
Net:   SCC ETHERNET
Scanning JFFS2 FS:  done.

find_inode failed for name=tuxbox

load: Failed to find inode

ready - can't find logo in flash
Scanning JFFS2 FS:  done.

find_inode failed for name=tuxbox

load: Failed to find inode
can't find logo in flash

Options:
  1: Console on null
  2: Console on ttyS0
  3: Console on framebuffer
Select option (1-3), other keys to stop autoboot:  0 
............................................................... done
Un-Protected 63 sectors
### FS (squashfs) loading 'vmlinuz' to 0x100000
### FS load complete: 669884 bytes loaded to 0x100000
## Booting image at 00100000 ...
...
Danach läuft alles okay.

Hat jemand 'ne Idee, was da bei mir noch falsch läuft?
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Beitrag von JtG-Riker »

Falsche config, bei dir wird kein jffs2 gefunden, hast du jffs2-only oder die Partitionen geändert?

Gruß Riker
ingrid
Erleuchteter
Erleuchteter
Beiträge: 600
Registriert: Samstag 14. Oktober 2006, 10:53

Beitrag von ingrid »

Momentan SquashFS, aber die Rootsize ist nicht Standard. Daran könnte es liegen?

U-Boot 1.2.0 hatte dieses Problem nicht (meine configure Settings sind dieselben) bzw. es wurde vom CDK korrekt übernommen.

Interessanterweise hindert dieser "Fehler" U-Boot nicht daran, den Kernel und damit Neutrino ordentlich zu booten.

Naja, mal schauen...


Edit:
Houdini hat geschrieben:Da ich keinen Bock hatte nen Sack voll configs anzupacken
Das erklärts. Ich "hardpatche" dann mal die Rootsize im U-Boot und schaue mal, was dabei herauskommt.
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 10:58

Beitrag von flasher »

Hi

Was Houdini da gemacht hat, kann leider nicht korrekt mit newmake funktionieren.
Ich meine mich auch nicht erinnern zu können, dass dies jemals behauptet wurde.

Ich selber hatte mich erst auch von einem kleinen Stück Text von Houdini ablenken lassen. "(c)Barfs m4 Verfahren"
Ich dachte auch, dass der Patch für newmake sei.

Also hier einmal so wie es bei mir mit einem frisch ausgechecktem CVS funktioniert (configure u.s.w. noch nicht gestartet!!!):

1.)
Die Änderung des Makefiles funktioniert wie beschrieben unter newmake überhaupt nicht. Bei newmake werden u.a. rootsize und rootfstype übergeben. Die werden aber in der dbox2.h.m4 überhaupt nicht berücksichtigt.
An make/u-boot.mk braucht schonmal nichts geändert zu werden.

2.)
Das Diff (1.3.1) von JTG-Riker muss bearbeitet werden.
Die Zeilen welche die CVS Dateien patchen müssen herrausgelöst werden. Diese dann in einem anderen File speichern.
Was dann von dem Diff übrigbleibt kann dann in cdk/Patches kopiert werden.
Mit der anderen Patchdatei werden dann die CVS Files gepatcht.
boot/u-boot-tuxbox/

3.)
Jetzt die boot/u-boot-config/u-boot.dbox2.h.m4 bearbeiten.
Ist zu viel, daher nur als Datei verfügbar. (Anhang)

4.)
Jetzt noch das übliche configure u.s.w. und u-boot-1.3.1 sollte laufen und auch die Logos anzeigen.

Das ganze ist jetzt ohne IDE Schnickschnak, da ich sowas eh nicht habe und nur für FLASH mit Kernel 2.4.
Aber wenn man sich die die u-boot.dbox2.h.m4 anschaut dann müsste man eigentlich sehen was man in den anderen m4 ändern muss.
Und wie Seife schon treffend schrieb: Wer Images baut, der sollte auch wissen was zu machen ist. Eine Vorlage ist ja da!

PS:
Mit dem herrunterladen beeilen, da der Arcor-Account zum 01.01.2008 weg sein müsste. (zum Glück)

PPS:
Warnings beim compilen (unwichtig):

Code: Alles auswählen

cmd_fs.c: In function `do_fs_fsload':
cmd_fs.c:119: warning: implicit declaration of function `squashfs_load'
cmd_fs.c: In function `do_fs_ls':
cmd_fs.c:172: warning: implicit declaration of function `squashfs_ls'
cmd_fs.c: In function `do_fs_fsinfo':
cmd_fs.c:245: warning: implicit declaration of function `squashfs_info'
http://home.arcor.de/liebelein01/u-boot ... rules-make
http://home.arcor.de/liebelein01/u-boot ... es-archive
http://home.arcor.de/liebelein01/u-boot ... files.diff
http://home.arcor.de/liebelein01/u-boot ... 1.3.1.diff
http://home.arcor.de/liebelein01/u-boot ... dbox2.h.m4

Und zum Schluss:
Wer möchte, das sein U-Boot gleich die Box schrottet ähm übertaktet der ändert die Zeile 301

Code: Alles auswählen

#define CFG_PLPRCR	(PLPRCR_SPLSS | PLPRCR_TEXPS | PLPRCR_TMIST)
in

Code: Alles auswählen

#define CPU_FREQ 76000000
#define CFG_PLPRCR_MF ((CPU_FREQ/32768)-1) << 20
#define CFG_PLPRCR (PLPRCR_SPLSS | PLPRCR_TEXPS | PLPRCR_TMIST | CFG_PLPRCR_MF)
In dem Fall 76 Meterherz oder auch 25% weniger Lebenserwartung der CPU trotz Wasserstoffkühlung und Windkraftrad als Lüfter...

So, jetzt mal ein "Happy Testing" in die Runde.

Ui! Gleich 05.00h
Gruß
Zuletzt geändert von flasher am Samstag 29. Dezember 2007, 20:59, insgesamt 1-mal geändert.
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Beitrag von JtG-Riker »

2.)
Das Diff (1.3.1) von JTG-Riker muss bearbeitet werden.
Die Zeilen welche die CVS Dateien patchen müssen herrausgelöst werden. Diese dann in einem anderen File speichern.
Was dann von dem Diff übrigbleibt kann dann in cdk/Patches kopiert werden.
Mit der anderen Patchdatei werden dann die CVS Files gepatcht.
boot/u-boot-tuxbox/
Das ist so nicht richtig, denn das diff passt für den von Houdini vorgeschlagenen Weg, vorher werden mit Houdinis Makefile die Tuxbox-Sachen ins u-boot dir kopiert, dann geht das Diff auch, für andere Wege war das auch nicht gemacht, sondern nur für den den Houdini gepostet hat.

Gruß Riker
ingrid
Erleuchteter
Erleuchteter
Beiträge: 600
Registriert: Samstag 14. Oktober 2006, 10:53

Beitrag von ingrid »

flasher hat geschrieben:3.)
Jetzt die boot/u-boot-config/u-boot.dbox2.h.m4 bearbeiten.
Ist zu viel, daher nur als Datei verfügbar. (Anhang)
Hätteste die auch noch mal irgendwo zum Download? :oops:
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 10:58

Beitrag von flasher »

ingrid hat geschrieben:
flasher hat geschrieben:3.)
Jetzt die boot/u-boot-config/u-boot.dbox2.h.m4 bearbeiten.
Ist zu viel, daher nur als Datei verfügbar. (Anhang)
Hätteste die auch noch mal irgendwo zum Download? :oops:
Oups, sorry, War spät!

http://home.arcor.de/liebelein01/u-boot ... dbox2.h.m4

** EDIT **
In der u-boot-1.3.1.diff war noch ein Fehler. Ich habe die gerade aktualisiert.
Beim Patches müsste es eigentlich einen Fehler geben, das cmd_fs.c nicht gefunden werden kann.
Mit der aktuellen ist das behoben...

Gruß
Zuletzt geändert von flasher am Samstag 29. Dezember 2007, 21:41, insgesamt 1-mal geändert.
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 10:58

Beitrag von flasher »

JtG-Riker hat geschrieben: Das ist so nicht richtig, denn das diff passt für den von Houdini vorgeschlagenen Weg, vorher werden mit Houdinis Makefile die Tuxbox-Sachen ins u-boot dir kopiert, dann geht das Diff auch, für andere Wege war das auch nicht gemacht, sondern nur für den den Houdini gepostet hat.
Ok, Du hasst recht.
Mag sein, dass ich morgens um drei etwas geblendet war.
Was auf jeden Fall nicht so mit newmake funktionieren konnte war die dbox2.h.m4. Da hatte ich ja auf die fehlende Verarbeitung der newmake Variablen hingewiesen welche dann zu dem Problem führte, dass Ingrid mit den Logos hat.
Ich muss auch gestehen das ich im Makefile von Houdini die Zeile "patch -p..." überlesen hatte.
Da hätte mir schon klar werden müssen, dass Dein Diff auch auf newmake passen würde.

Gruß
ingrid
Erleuchteter
Erleuchteter
Beiträge: 600
Registriert: Samstag 14. Oktober 2006, 10:53

Beitrag von ingrid »

flasher hat geschrieben:In der u-boot-1.3.1.diff war noch ein Fehler. Ich habe die gerade aktualisiert.
Beim Patches müsste es eigentlich einen Fehler geben, das cmd_fs.c nicht gefunden werden kann.
Mit der aktuellen ist das behoben...
Yup, den Fehler hatte ich hier schon korrigiert. Compiled jetzt auch alles. Besten Dank für die Hilfe.
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

so, hab jetzt 'ne uboot-1.3.1, die kernel und rootfs von der hdd bootet...
:D :D :D
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 10:58

Beitrag von flasher »

Und nu?
Wartest Du auf Bettelposts?

Ich fang mal an: Brauch ich nicht ;)

Gruß
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Wartest Du auf Bettelposts?
klaro, her damit... :roll:
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

und ne einstellbare cpu freq. weil, war ja weihnachten ;)
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Beitrag von JtG-Riker »

mb405 hat geschrieben:und ne einstellbare cpu freq. weil, war ja weihnachten ;)
Wenn du dann den IDE Suppport übernimmst *g*
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Beitrag von mb405 »

neee lass mal :)

was ist an der cpu freq. so dran, das es keiner macht ?
seife hat ja auch die console rate eingebaut,die keiner ändert, der es nicht weis, oder sich nicht der auswirkungen bewusst ist.
palace
Erleuchteter
Erleuchteter
Beiträge: 441
Registriert: Dienstag 11. März 2003, 03:42

Beitrag von palace »

Houdini hat geschrieben:so, hab jetzt 'ne uboot-1.3.1, die kernel und rootfs von der hdd bootet...
:D :D :D
Cool!
Kernel aus ner RAW Partition?
Und kann ich wählen, ob ich von Flash oder HDD booten will?
Ist doch mal klasse u.A. zum Testen...
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 10:58

Beitrag von flasher »

mb405 hat geschrieben: was ist an der cpu freq. so dran, das es keiner macht ?
seife hat ja auch die console rate eingebaut,die keiner ändert, der es nicht weis, oder sich nicht der auswirkungen bewusst ist.
Ein Übertakten der Box ist nunmal ein potentielles Risiko.
Warum sollte also ein DEV hingehen und sowas in das U-Boot einbauen?
Ich z.B. habe keine Lust mich von irgendwelchen "Zuschnelltippern" anschnauzen zu lassen weil die Box jetzt etwas verbrannt riecht.

Wer also übertakten will sollte es wohl selbst machen.
Die Info in meinem Post zum 1.3.1 funktioniert auch in anderen Versionen < 1.3.1.

Das was seife da gemacht hat ist auch als "Expertenfunktion" deklariert und eh nur nütlich wenn ein RS232 am COM hängt.
Das wird wohl kaum ein Normalo nutzen. Naja, es soll ja auch Leute geben die Ihrer Box mit Freuden beim Booten zu sehen und sich desshalb extra ein Nullmodemkabel gekauft haben ;)

Gruß
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

Kernel aus ner RAW Partition?
nein Kernel aus einer ext2 partition, oder was anderes was uboot lesen kann.
Und kann ich wählen, ob ich von Flash oder HDD booten will?
noch nicht...
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Re: U-Boot 1.3.1

Beitrag von Houdini »

so, hier mal die Brocken für den uboot, der von hdd bootet:
http://home.arcor.de/houdini/dbox/uboot ... 1.3.1.diff
http://home.arcor.de/houdini/dbox/uboot/dbox2.h.m4
Linux kernel patch, der den ide treiber mit in den kernel kompiliert (muss möglcherweise noch auf .36 angepasst werden):
http://home.arcor.de/houdini/dbox/uboot ... 3-ide.diff
Den u-boot mit dem Schnipsel unten kompilieren.

Was noch nicht geht:
- LCD/TV Logos von der HDD laden.
- Umschalten zwischen Laden aus dem Flash und HDD.

Code: Alles auswählen

$(DEPDIR)/u-boot $(DEPDIR)/u-boot-1.3.1: bootstrap Archive/u-boot-1.3.1.tar.bz2 Patches/u-boot-1.3.1.diff
	( rm -rf u-boot-1.3.1 || /bin/true ) && bunzip2 -cd Archive/u-boot-1.3.1.tar.bz2 | TAPE=- tar -x
	cp -pR $(bootdir)/u-boot-tuxbox/* u-boot-1.3.1
	cd u-boot-1.3.1 && \
		patch -p1 < ../Patches/u-boot-1.3.1.diff
	m4 -DDBOX_UBOOT_TYPE="UBOOT_TYPE_IDE" $(bootdir)/u-boot-config/dbox2.h.m4 > u-boot-1.3.1/include/configs/dbox2.h
#	m4 -DDBOX_UBOOT_TYPE="UBOOT_TYPE_CDK" $(bootdir)/u-boot-config/dbox2.h.m4 > u-boot-1.3.1/include/configs/dbox2.h
#	m4 -DDBOX_UBOOT_TYPE="UBOOT_TYPE_JFFS2" $(bootdir)/u-boot-config/dbox2.h.m4 > u-boot-1.3.1/include/configs/dbox2.h
#	m4 -DDBOX_UBOOT_TYPE="UBOOT_TYPE_SQUASHFS" $(bootdir)/u-boot-config/dbox2.h.m4 > u-boot-1.3.1/include/configs/dbox2.h
	$(MAKE) -C u-boot-1.3.1 dbox2_config
	$(MAKE) -C u-boot-1.3.1 CROSS_COMPILE=$(target)- u-boot.stripped
	$(INSTALL) -m644 u-boot-1.3.1/u-boot.stripped $(bootprefix)/u-boot
	$(INSTALL) u-boot-1.3.1/tools/mkimage $(hostprefix)/bin
	rm -rf u-boot-1.3.1
	touch $@
AudioSlyer
Erleuchteter
Erleuchteter
Beiträge: 450
Registriert: Sonntag 28. Juli 2002, 01:18

Re: U-Boot 1.3.1

Beitrag von AudioSlyer »

Super gemacht, besser als meine Lösung. Ich danke Dir
PT-1
Moderator english
Beiträge: 2458
Registriert: Donnerstag 20. Dezember 2001, 00:00

Re: U-Boot 1.3.1

Beitrag von PT-1 »

Danke Houdini !

Hatt ja schon letzhin die gelegenheit via MSN mit dir zu quatschen und wollte nur dieses Diff nutzen nochmal hierfuer Werbung zu machen.

Wenn man ja jetzt schon dadurch von HDD Booten kann waere es ja auch schoen wenn das Image Backup/Laden nicht nur von TMP moeglich waere sondern auch gleich von /mnt/ .

Dann noch eine Speicher Routine die dem Image noch einen verstaendlichen Namen mit Wiedererkennungswert gibt:

z.b. JtG_226_08_01_2008_2x.img

dann hat man auch gleich Ordnung in seiner Sammlung ;-)

Oder ein Backup von /Zapit nach /MNT/ xxxx

Danke & Ciao

PT-1
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: U-Boot 1.3.1

Beitrag von mb405 »

danke großer zauberer.
geht auch mit oldmake wunderbar.
hab aber erstmal nur die squashfs version getestet.
U-Boot 1.3.1 (Tuxbox) (Jan 24 2008 - 18:07:35)

CPU: PPC823ZTnnA at 67.200 MHz: 2 kB I-Cache 1 kB D-Cache
*** Warning: CPU Core has Silicon Bugs -- Check the Errata ***
Board: DBOX2, Nokia, BMon V1.0
Watchdog enabled
I2C: ready
DRAM: 32 MB
FLASH: 8 MB
Scanning JFFS2 FS: ... done.
env: found "console"
env: found "baudrate"
env: found "lcd_inverse"
env: found "lcd_contrast"
FB: ready
LCD: ready
In: serial
Out: serial
Err: serial
Net: SCC ETHERNET
was bedeuten die 4 env: einträge ??

wie geht das mit dem ide ??
meine platte ist xfs formatiert. ist ja nicht viel druf. könnte also fix umformatieren.
gibts irgend eine bestimmte struktur dafür ? wie und wo die dateien hinkommen ?
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Re: U-Boot 1.3.1

Beitrag von Houdini »

also die ganze Magie steckt in dem bootcmd drin:

Code: Alles auswählen

#define	CONFIG_BOOTCOMMAND 							\
	"setenv bootargs root=/dev/ide/host0/bus0/target0/lun0/part2 " 		\
	ROOTFS_OPTION " rootfstype=ext2 " 					\
	"console=$(console),$(baudrate) idebus=66; " 				\
	"ext2load ide 0:2 200000 vmlinuz; " 					\
	"bootm 200000"
obiges Kommando benutzt die 2. Partition als root Partition.
- ext2load ide 0:2 ist das Kommando damit uboot den kernel von device 0 part 2 lädt.
- root=/dev/ide/host0/bus0/target0/lun0/part2 ist für den kernel damit der das root filesystem findet

für xfs müsste man sich das passende xfsload o.ä. raussuchen/bauen.
Die Dateien müssen auf die Platte wie bei einem normaln PC Linux auch :-)

Achso: der Kernel braucht alle Treiber fest eingebunden mit denen er auf das rootfs zugreifen will, also dboxide, ext2 oder xfs
ingrid
Erleuchteter
Erleuchteter
Beiträge: 600
Registriert: Samstag 14. Oktober 2006, 10:53

Re: U-Boot 1.3.1

Beitrag von ingrid »

mb405 hat geschrieben:was bedeuten die 4 env: einträge ??
Das sind die Werte aus Deiner /var/tuxbox/boot/boot.conf. Die Ausgabe ist relativ neu im CVS.
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: U-Boot 1.3.1

Beitrag von mb405 »

bleibt das mit der m4 so als config ?? oder wird wieder irgendwann die ../boot/u-boot-config/ dateien verwendet ?