Booten von festplatte

Diskussionen um Bootloader, Kernel, Busybox
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Booten von festplatte

Beitrag von seife »

Houdini hatte ja hier http://forum.tuxbox-cvs.sourceforge.net ... 44#p351444 schon mal U-Boot mit IDE-support gemacht.

Ich habe jetzt einen U-Boot mit IDE und Flash-support gemacht.
u-boot-1.3.1-boot-from-hdd.diff

Damit das möglichst nichts kaputt macht wird, genau wie bisher, per default aus dem Flash gebootet. Die config wird, auch wie bisher, aus dem /var/tuxbox/boot/boot.conf gelesen.

Dazu habe ich ein paar neue config-Optionen eingebaut:

Code: Alles auswählen

/var # cat /var/tuxbox/boot/boot.conf
console=ttyS0
baudrate=9600
lcd_inverse=0
lcd_contrast=15
append=
bootdelay=10
bootdefault=4
bootargs1=console=ttyS0 root=/dev/mtdblock2 rootfstype=squashfs
bootcmd1=ext2load ide 0:2 200000 vmlinuz; protect off 10020000 107fffff; foo; bootm
bootdelay ist die Zeit die gewartet wird, bis der eingestellte default gebootet wird.
bootdefault ist der default (also das, was in der Konsole auch zur Auswahl ansteht)
bootargs1 und bootcmd1 sind die bootargs und bootcmd für Auswahl "4", bootargs2 und bootcmd2 sind die für Auswahl "5".

Mit den hier angegebenen bootargs und bootcmd lädt die box nur den Kernel von der ext2-Partition 2 und bootet dann aus dem Flash (das ist zum testen, damit muss kein IDE-Support im Kernel sein ;))

Wer richtig von der Platte booten will, muss natürlich den IDE-Support und ext2 in den Kernel kompilieren, und die bootargs anpassen. Aber so als Anfang sollte es mal reichen.

Achso: Neutrino weiss natürlich von diesen Optionen nichts und löscht sie vermutlich gnadenlos raus, wenn ihr irgendwas, was mit booten zu tun hat (dazu gehört auch der LCD Kontrast!) verstellt.
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Booten von festplatte

Beitrag von MPC823 »

Bingo :D

Evt kann man es dann so Managen das man mit einem Plugin die Default werte abändern kann so wie wir es an der TD angeacht haben oder steht dem was im Wege ?

Gruss Martin
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Booten von festplatte

Beitrag von seife »

Naja. Das ist momentan schon ein echtes Profi-Feature. Ausserdem geht das per plugin eher nicht, weil das Neutrino die settings wieder überschreiben würde.

Probiers lieber erst mal aus, ob's auch funktioniert ;)
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 09:58

Re: Booten von festplatte

Beitrag von flasher »

Ui, das erinnert mich wieder daran, dass ich ja mal meine HDD Sachen zur Verfügung stellen wollte.

In meinem "Proof of Concept" bootet die Box direkt von HDD und nicht erst über den Flash.

Ich mache das mal fertig...

Gruß
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Booten von festplatte

Beitrag von seife »

Wie hast du den bmon dazu gebracht die Festplatte anzusprechen? Oder was meinst du mit "nicht erst über den flash"?

Falls du es über den u-boot machst: das machen houdini und ich auch ;)
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 09:58

Re: Booten von festplatte

Beitrag von flasher »

Hi

Ja sicher wird erst U-Boot aus dem Flash gestartet aber danach gehts es bei mir komplett von Platte.
Du hast geschrieben, das nur der Kernel von der HDD kommt und dann vom Flash weiter geladen wird.
Bei mir ist es schon soweit, dass alles von der Platte kommt. Ok, mal abgesehen vom U-Boot.

Ich habe auch eine komplette Buildumgebung fertig gehabt die mir am Ende des Vorgangs ein TAR File für die HDD und den entsprechenden U-Boot bereit gestellt hat.
Teils ist das aber alles CVS Stand von (früh) 2008 und einiges an Änderungen an den .mk Files und diffs.
Weiterhin habe ich auch schon versucht die BB weitestgehend zu entfernen um die "echten" Programme zu verwenden.
z.B. nutze ich als init das bekannte runit...

Bevor da noch jemand mehr Energie reinsteckt könnt ihr ja mal abwarten bis ich das Paket fertig habe.
Darauf kann man sicherlich irgendwie aufbauen.

Im CVS würde ich damit auf jeden Fall einiges kaputt machen. Ich hatte mir auch mal überlegt für die HDD Geschichte einen eigenen Zweig zu erstellen, da wirklich einiges geändert wurde.
Sinnig oder nicht kann man später klären. Wie geschrieben, ist nur ein Proof of Concept gewesen das auf meiner Box bis vor 2 Monaten noch funktionierte.


Gruß
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Booten von festplatte

Beitrag von seife »

Ok, dann bin ich vom technischen her ungefähr gleich weit wie du. Ich habe nur deswegen erstmal nur den Kernel von der Platte geladen, damit die interessierten Mitleser hier es testen können, in dem sie nur den u-boot neu bauen (und diesen z.B. per tftp booten).

Die IDE-Module und ext2 noch fest in den Kernel zu packen ist dann ja nur noch ne Fingerübung und alles was noch fehlt, um komplett von der Platte zu booten ;)

Wegen "richtigen" GNU-utilities etc.: da würde ich dann einfach ein emdebian auf die Platte ziehen, das ist einfacher als alles selbst zu bauen, und man ist flexibler ;) Habe ich auf der TD auch so gemacht.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Booten von festplatte

Beitrag von GetAway »

Bin mir nicht sicher, aber nach diesen Checkin funktioniert das booten aus dem Yadd nicht korrekt. Kann das?
http://cvs.tuxbox-cvs.sourceforge.net/l ... 00087.html

In /proc und /dev wird nichts mehr gefunden. In einem checkout vom 12.6. gehts noch. Kann das jemand verifizieren?
Dar Checkout war von heute morgen in einem leeren Verzeichnis.

Code: Alles auswählen

/proc/bus/tuxbox/model: No such file or directory
/proc/bus/tuxbox/submodel: No such file or directory
/proc/bus/tuxbox/submodel: No such file or directory
Detected STB:
        Vendor: Unknown
        Model: Unknown Unknown (2 flash chips)
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Booten von festplatte

Beitrag von seife »

Ich kann es mir eigentlich nicht vorstellen. Aber das solltest du ja leicht prüfen können, in dem du die "2" wieder in eine "1" umwandelst.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Booten von festplatte

Beitrag von seife »

Du müsstest irgendeine fehlermeldung beim Laden des tuxbox- Moduls bekommen haben (vermute ich zumindest). Ist da irgendwas?
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 13:05

Re: Booten von festplatte

Beitrag von rhabarber1848 »

GetAway hat geschrieben:Bin mir nicht sicher, aber nach diesen Checkin funktioniert das booten aus dem Yadd nicht korrekt. Kann das?
http://cvs.tuxbox-cvs.sourceforge.net/l ... 00087.html
Im Patch wurde u-boot.dbox2.h.m4 verändert, diese Datei
wird nur für Flashimages genutzt.

Zum Kompilieren von tftpboot/u-boot, also dem Yadd-Bootloader,
wird allerdings
u-boot-config/u-boot.cdk.2_6.dbox2.h bzw.
u-boot-config/u-boot.cdk.dbox2.h genutzt.

In u-boot.cdk.dbox2.h ist weiterhin 0x100000 eingetragen,
womit ich bei mir gerade ein Yadd erfolgreich booten konnte.

Code: Alles auswählen

...
TFTP from server 192.168.1.134; our IP address is 192.168.1.4
Filename '/home/tuxbox/image/tftpboot/kernel-cdk'.
Load address: 0x100000
Loading: #################################################################
         #################################################################
         ################################
done
Bytes transferred = 824802 (c95e2 hex)
............................................................... done
Un-Protected 63 sectors
## Booting image at 00100000 ...
   Image Name:   Linux-2.4.37.2-dbox2
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
...
mount: using /etc/fstab
tuxbox: no IDE-Interface detected
Detected STB:
        Vendor: Sagem
        Model: D-BOX2  (2 flash chips)
[i2c-8xx]: mpc 8xx i2c init
...
Ein Kernel 2.6-Yadd sollte auch funktionieren.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Booten von festplatte

Beitrag von seife »

und wieder ontopic (GetAway hat ganz offensichtlich ein anderes Problem):

Hiermit u-boot-1.3.1-boot-from-hdd-v2.diff wird auch dboxide und dependencies sowie ext2 in den Kernel kompiliert, so dass man richtig von der Platte booten kann.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: Booten von festplatte

Beitrag von GetAway »

@seife. Stimmt.

Ich hatte mir meine customized rcS zerbröselt, bzw. beim kopieren ist sie verloren gegangen. :-?
Danke, jetzt funktioniert es wieder. :D
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 09:58

Re: Booten von festplatte

Beitrag von flasher »

Hi

So, das Paket liegt jetzt auf dem Upload...
TuxBox_HDD_Backup.tar.gz

Wie bereits erwähnt wird es wohl mit ziemlicher Sicherheit mit dem aktuellen CVS nicht bauen.

Die kurzen Features meines Paketes:
* Booten von Platte (ne sach an ;) )
* LCD und FB Logo werden von der Platte geladen
* Bootmenü mit Soundunterstützung
* diverse BB Tools durch GNU Software ersetzt...

Ein Proof of Concept das einiges an Optimierungen nötig hat.
Und.. Wer lacht fliegt raus :)

Gruß
flasher
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: Booten von festplatte

Beitrag von seife »

Achja, noch was ;)

Wer das Laden des Kernels beschleunigen will, sollte einfach mal die Blockgrösse des ext2 vergrössern. Bei mir war der default 1kB blocksize (das ist abhängig von der Partitionsgrösse glaube ich). Einen Kernel mit 742296 Bytes zu laden dauert damit über 28 Sekunden. Mit 2kB blocksize dauert es etwas über 10 Sekunden und mit 4kB blocksize sind es noch etwa fünfeinhalb Sekunden.

Damit verschwendet man zwar etwas Platz auf der root-Partition, aber mir ist es das Wert ;)
mb405
Tuxboxer
Tuxboxer
Beiträge: 2331
Registriert: Donnerstag 24. März 2005, 21:52

Re: Booten von festplatte

Beitrag von mb405 »

so alter thread mal wieder audwärmen, da die sache sich in den falschen thread verlagert hat :)
ich hab mal beide diff's von seife mir angschaut, und waum ist die erste version so groß ?
oder braucht man nur noch die 2.version ??
abraXXl
Neugieriger
Neugieriger
Beiträge: 4
Registriert: Montag 17. März 2008, 01:31

Re: Booten von festplatte

Beitrag von abraXXl »

Hallo,

ich habe den ersten Patch von Seife angepasst, damit es auf den CVS Stand vom 19.9. passt.
Leider habe ich in den faslschen Thread geantwortet.

Leider wird mit dem aktuellen CVS, mit jFFS2 und IDE/EXT2 Support das U-Boot zu gross.

Mehr dazu [url=http://forum.tuxbox-cvs.sourceforge.net ... 58#p370458]hier[url].

cya

Nachtrag: Der Uboot scheint CS2 nicht wieder zu deaktivieren, wenn er ein IDE-Interface findet abernicht von Platte booten kann, weil abgklemmt oder kein Image zum laden auf Platte.

Code: Alles auswählen

tuxbox -C16
evaluiert dann zu 0.

Und selbst der IDE-Treiber gibt etwas mehr von sich

Code: Alles auswählen

dbox: ~ > insmod dboxide       
dboxide: $Id: main.c,v 1.13 2009/01/13 22:13:23 dbt Exp $
ide: late registration of driver.                        
[b]dboxide: memory-bank already in use, lets try it[/b]
dboxide: activating cs2                         
dboxide: address space of IDE-Interface is at: 0xc3c04000
dboxide: IDE-Interface detected, Vendor: Unknown         
dboxide: sreset succeeded