Kernel 2.4.30 auf dbox2 mit jffs2only !

Diskussionen um Bootloader, Kernel, Busybox
dhd
Einsteiger
Einsteiger
Beiträge: 246
Registriert: Freitag 4. Oktober 2002, 11:35

Kernel 2.4.30 auf dbox2 mit jffs2only !

Beitrag von dhd »

hi, ich hab mal nen kleines HowTo erfasst, die sourcen sind von body ausm dbox2world.de. Ich habe es bis jetzt nicht geschaft das FileSystem zu crashen auch wenn ich 1000 kleine dateien uppe und wieder lösche und wieder uppe das jffs2 zerstört sich nicht selber ;) leider kann man hier keine Anhänge hochladen (wieso nur ?), naja egal, mir hats ein freundlicher user hochgeladen :)


-------------------------------------------------

pack_2.4.30_mit_rcS.tar.gz

--------------------------------------------------


hier das HowTo:

jffs2only mit kernel 2.4.30 HowTo
Version 0.3
vom 26.05.2005 für alle ;)
von dhd

- feel free to share this doc -

-------------------------------------------------------------
! Die Kernel Patches sind von Body !
einige Db2wW user haben beim HowTo geholfen.
-------------------------------------------------------------


Also zuersteinmal erstellen wir uns die dirs und laden das aktuelle cvs

Code: Alles auswählen


mkdir $HOME/tuxbox-cvs
mkdir $HOME/dbox2
cd $HOME/tuxbox-cvs
export CVS_RSH=ssh
cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P .

Lassen wir ihn das ganze mal configurieren

Code: Alles auswählen


cd cdk
./autogen.sh
./configure --prefix=$HOME/dbox2 --with-cvsdir=$HOME/tuxbox-cvs --enable-maintainer-mode --with-targetruleset=flash

Jetzt müssen wir den kram für den 30-er Kernel einbinden mit bodys dateien (pack_2.4.30_mit_rcS.tar.gz). Die pack_2.4.30_mit_rcS.tar.gz einfach entpacken und dann die Dateien so verteilen:

Code: Alles auswählen


linux-2.4.30-dbox2.config        => $HOME/tuxbox-cvs/cdk/Patches/
linux-2.4.30-dbox2.config-flash  => $HOME/tuxbox-cvs/cdk/Patches/
linux-2.4.30-dbox2.diff          => $HOME/tuxbox-cvs/cdk/Patches/
linux-2.4.30-dbox2-mtd.diff.bz2  => $HOME/tuxbox-cvs/cdk/Archive/

Das System muss natürlich auch wissen, wo es die datein für den 2.4.30 findet und was wo gemacht werden soll.

Dafür gehn wir nach
$HOME/tuxbox-cvs/cdk/ und ändern in den rules-make folgendes :

zuerstmal

Code: Alles auswählen


linux;2.4.27-dbox2;linux-2.4.27;linux-2.4.27.tar.bz2:cifs-1.20c-2.4.tar.gz:linux-2.4.27-dbox2-mtd.diff.bz2;remove:linux;extract:linux-2.4.27.tar.bz2;patch:linux-2.4.27-dbox2.diff;patch:linux-2.4.27-dbox2-shift.diff;patch:linux-2.4.27-dbox2-keyboard.diff;patch:linux-2.4.27-dbox2-v4l2.diff;patch:linux-2.4.27-dbox2-cramfs.diff;patch:linux-2.4.27-dbox2-lufs.diff;patch:linux-2.4.27-dbox2-mtd.diff.bz2;extract:cifs-1.20c-2.4.tar.gz;move:linux/fs/cifs:linux-2.4.27/fs/;patch:../linux/cifs_24.patch;remove:linux;patch:fb_accel_id.diff;patch:squashfs2.1r2-patch;link:linux-2.4.27:linux

das rausschmeißen und dann mit dem ersetzten :

Code: Alles auswählen

linux;2.4.30-dbox2;linux-2.4.30;linux-2.4.30.tar.bz2;extract:linux-2.4.30.tar.bz2;patch:linux-2.4.30-dbox2.diff;patch:linux-2.4.27-dbox2-shift.diff;patch:linux-2.4.27-dbox2-v4l2.diff;patch:linux-2.4.30-dbox2-mtd.diff.bz2;patch:linux-2.4.27-dbox2-lufs.diff;remove:linux;link:linux-2.4.30:linux
dann noch in der datei rules-archive die zeile

Code: Alles auswählen

linux-2.4.27.tar.bz2;ftp://ftp.de.kernel.org/pub/linux/kernel/v2.4;ftp://ftp.kernel.org/pub/linux/kernel/v2.4
ändern in

Code: Alles auswählen

linux-2.4.30.tar.bz2;ftp://ftp.de.kernel.org/pub/linux/kernel/v2.4;ftp://ftp.kernel.org/pub/linux/kernel/v2.4
nun noch unter

$HOME/tuxbox-cvs/apps/misc/tools/

Das Makefile.am öffnen und

Code: Alles auswählen

if !NEW_MTD
 SUBDIRS += mtd
endif
ersetzten durch

Code: Alles auswählen

#if !NEW_MTD
#SUBDIRS += mtd
#endif
in der gui config muss man noch etwas anpassen:

"#include <linux/mtd/mtd.h>" auf "#include <linux/mtd/mtd-user.h>" ändern
bei neutrino in -> "flashtool.cpp"
bei enigma in -> "upgrade.cpp" und "flashtool.cpp"

jetzt haben wir eignetlich alles so weit fertig für den kernel.

Nun gehen wir in $HOME/tuxbox-cvs/cdk und machen ein

Code: Alles auswählen


make linuxdir

Das sollte fehlerfrei mit

Code: Alles auswählen

touch .deps/linuxdir
beendet werden.

Soo jetzt schauen wir und mal die jffs2only Partitionierung an, dafür gehn wir nach

Code: Alles auswählen

cd $HOME/tuxbox-cvs/cdk/linux-2.4.30/drivers/mtd/maps
in dem Verzeichnis gibt es jetzt ne datei die sich dbox2-flash.c schimpft. Die müssen wir öffnen und dann sollte das so aussehn im mittleren teil

Code: Alles auswählen


static struct mtd_partition partition_info[]= {
 {
 .name  = "BR bootloader",
 .size  = 128 * 1024, 
 .offset  = 0,                  
 .mask_flags = MTD_WRITEABLE
 },
 {
 .name  = "flfs (u-boot)",
 .size  = 128 * 1024, 
 .offset  = MTDPART_OFS_APPEND, 
 .mask_flags = 0
 },
 {
 .name  = "root (jffs2)",
 .size  = 7936 * 1024,
	.offset		= MTDPART_OFS_APPEND, 
	.mask_flags	= 0
	},
	{
 .name  = "flash without bootloader",
 .size  = MTDPART_SIZ_FULL, 
 .offset  = 128 * 1024, 
 .mask_flags = 0
 },
 {
 .name  = "complete flash", 
 .size  = MTDPART_SIZ_FULL, 
 .offset  = 0, 
 .mask_flags = MTD_WRITEABLE
 }
};

wenn dem nicht so ist, dann müssen wir das so ändern das es so aussieht.

Um jetzt den kernel zu compiliern gehen wir wieder nach

Code: Alles auswählen


$HOME/tuxbox-cvs/cdk/

und sagen dem

Code: Alles auswählen


make linuxkernel

Das sollte dann so enden:

Code: Alles auswählen

chmod 644 /home/r2d2/dbox2/tftpboot/kernel-cdk
/usr/bin/install -c -m644 linux-2.4.30/vmlinux /home/r2d2/dbox2/cdkroot/boot/vmlinux-2.4.30-dbox2
/usr/bin/install -c -m644 linux-2.4.30/System.map /home/r2d2/dbox2/cdkroot/boot/System.map-2.4.30-dbox2
touch .deps/linuxkernel
Und nun noch ein kleines

Code: Alles auswählen

make flash-neutrino-all
------------------------------------- ab hier img teil -------------------------------------------------------

so jetzt müssen wir natürlich noch die sachen in $HOME/dbox2/cdkflash kopieren und machen, damit das img auch bootet, hierfür also wie folgt vorgehen:

Zuersteinmal richten wir das Netzwerk ein, indem wir unter

$HOME/dbox2/cdkflash/root/etc/network
die ' # ' entfernen und evt. noch nen nameserver einrichten, was dann in etwa so aussieht:

Code: Alles auswählen

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
	address 65.18.0.55
	broadcast 65.18.0.255
	gateway 65.18.0.148
	netmask 25.24.3.5
Damit das IMG auch startet, brauchen wir noch die rcS, die aus dem pack (pack_2.4.30_mit_rcS.tar.gz), das ganze kommt jetzt nach
$HOME/dbox2/cdkflash/root/etc/init.d/ gehöhrt, die brauchen wir, weill der kernel kein insmode versteht bzw das nicht gelinkt ist.

jetzt brauchen wir natürlich noch die ucodes und die logos also kopieren wir mal

Code: Alles auswählen


avia500.ux bzw avia600.ux        =>  $HOME/dbox2/cdkflash/root/var/tuxbox/ucodes/
cam-alpha.bin                    =>  $HOME/dbox2/cdkflash/root/var/tuxbox/ucodes/
ucode.bin (wenn nicht interne)   =>  $HOME/dbox2/cdkflash/root/var/tuxbox/ucodes/

die boot sachen

- boot.conf
- logo-fb
- logo-lcd
- u-boot.conf

kommen nach $HOME/dbox2/cdkflash/root/var/tuxbox/boot/

die boot.conf sieht so aus:

Code: Alles auswählen

console=ttyS0
lcd_inverse=0
lcd_contrast=15
dann die u-boot.conf so:

Code: Alles auswählen

root=/dev/mtdblock2 rw
eure Kanallisten sollten auch nicht fehlen, also

bouquets.xml => /dbox2/cdkflash/root/var/tuxbox/config/zapit/
services.xml => /dbox2/cdkflash/root/var/tuxbox/config/zapit/
zapit.conf => /dbox2/cdkflash/root/var/tuxbox/config/zapit/ (bei bedarf)

damit euer satfind geht braucht ihr natürlich auch die entsprechenden einstellungen:

Code: Alles auswählen


satellites.xml => $HOME/dbox2/cdkflash/root/share/tuxbox/ # Bei Sattelite
cables.xml => $HOME/dbox2/cdkflash/root/share/tuxbox/     # Bei Kabel


jetzt, um das img file zu erstellen machen wir noch ein jffs2-flfs.img vom aktuell laufenen img mit u-boot (dbox-taste => service => software - aktualisierung => experten-funktionen => einzelne partition auslesen => flfs(u-boot))

dann haben wir im /tmp/ ne datei liegen die sich mtd1.img schimpf, die muss jetzt nach $HOME/dbox2/cdkflash/ kopieren und dann in jffs2-flfs.img umbennen.

Dann macht ihr im Ordner

$HOME/tuxbox-cvs/cdk/

ein freundliches

Code: Alles auswählen

make flash-jffs2image
da sollte dann am ende was von rm- r /home/user/dbox2/cdkflashh/root-jffs2.img
stehen.

sooo jetzt gibts im ordner

§HOME/dbox2/cdkflash/ eine datei die jffs2only.img heißt, sein. Die Datei muss n /tmp/ auf die dbox2. Wenn die Datei da drinn ist, dann macht ihr unter dbox-taste => service => software - aktualisierung => experten-funktionen => einzelne partition einlesen => complete flash (without bootloader) und wählt das jffs2only.img aus und bestätigt die Meldungen.


-----------------------------------------------------------------------------
dhd
Einsteiger
Einsteiger
Beiträge: 246
Registriert: Freitag 4. Oktober 2002, 11:35

Beitrag von dhd »

also meine Tests bisher:

/bin/neutrino

gelöscht

wieder hochgeladen

und das ganze 10 mal :)

dann /share/tuxbox gelöscht komplett und komplett nochmal hochgeladen.

auch mehremals

/lib/modules/2.4.30-dbox/misc/

gelöscht und wieder hochgeladen

und das teil leuft immernoch wunderbar :D
Hollo
Einsteiger
Einsteiger
Beiträge: 226
Registriert: Mittwoch 22. August 2001, 00:00

Beitrag von Hollo »

Also gleich mal durchgejagt und funktioniert super. Respekt :D
Nokia 2xA bmon 1.0 Kabel Avia 500
Sagem 1xI bmon 1.3 Kabel Avia 600L
dhd
Einsteiger
Einsteiger
Beiträge: 246
Registriert: Freitag 4. Oktober 2002, 11:35

Beitrag von dhd »

wär schön wenns ins cvs wandern würde :D
woglinde
Einsteiger
Einsteiger
Beiträge: 261
Registriert: Donnerstag 15. November 2001, 00:00

Beitrag von woglinde »

dhd hat geschrieben:wär schön wenns ins cvs wandern würde :D
cvs account holen und selber mache. und naechste mal auch den zeilenumbruch benutzen, ist ja fuerchterlich die langen zeilen zu lesen.

gruss woglinde
dhd
Einsteiger
Einsteiger
Beiträge: 246
Registriert: Freitag 4. Oktober 2002, 11:35

Beitrag von dhd »

cvs account , nee danke
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Beitrag von JtG-Riker »

So unbearbeitet kann es eh nicht rein, man sollte wohl die dbox2-flash.c mal wieder auf "normal" umbauen.

Und es scheint das da einiges weggepatcht ist, ich gucks mir aber trotzdem mal an, Mws hat aber schon die .30er Diffs von mir seit einiger Zeit und wollt die eigendlich einchecken...

Riker
dhd
Einsteiger
Einsteiger
Beiträge: 246
Registriert: Freitag 4. Oktober 2002, 11:35

Beitrag von dhd »

ja die dbox2-flash.c, da wär ich mal fürn diff beim maken wenn man jffs2only machen will damit man die partitionierung nich immer ändern muss
Timekiller
Developer
Beiträge: 57
Registriert: Sonntag 4. Mai 2003, 14:17

Beitrag von Timekiller »

Wie kann man an einen cvs-account kommen??
dhd
Einsteiger
Einsteiger
Beiträge: 246
Registriert: Freitag 4. Oktober 2002, 11:35

Beitrag von dhd »

war das nicht bei tuxbox.berlios.de, ansonsten im chat :)

kleine ergänzung:

Wer mit enigma arbeiten will, muss noch in der $HOME/tuxbox-cvs/apps/tuxbox/enigma/src/enigma_dyn_flash.cpp das mtd.h auf mtd-user.h ändern
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

dhd hat geschrieben:ja die dbox2-flash.c, da wär ich mal fürn diff beim maken wenn man jffs2only machen will damit man die partitionierung nich immer ändern muss
Da brauchst du nur die Zeilen im linux-2.4.30-dbox2-mtd.diff anpassen und neu packen. :wink:
dhd
Einsteiger
Einsteiger
Beiträge: 246
Registriert: Freitag 4. Oktober 2002, 11:35

Beitrag von dhd »

oder die user machen es per hand :D
ChakaZulu
Developer
Beiträge: 457
Registriert: Sonntag 23. März 2003, 00:39

Beitrag von ChakaZulu »

dhd hat geschrieben:wär schön wenns ins cvs wandern würde :D
dhd hat geschrieben:cvs account , nee danke
super...

ciao,

ChakaZulu
dhd
Einsteiger
Einsteiger
Beiträge: 246
Registriert: Freitag 4. Oktober 2002, 11:35

Beitrag von dhd »

ja ähm ich will doch nich den anschiss bekommen wenn ich da was patche was dann net stimmt :D
Nico 77
Semiprofi
Semiprofi
Beiträge: 1383
Registriert: Freitag 18. April 2003, 15:12

Beitrag von Nico 77 »

JtG-Riker hat geschrieben:So unbearbeitet kann es eh nicht rein, man sollte wohl die dbox2-flash.c mal wieder auf "normal" umbauen.

Und es scheint das da einiges weggepatcht ist, ich gucks mir aber trotzdem mal an, Mws hat aber schon die .30er Diffs von mir seit einiger Zeit und wollt die eigendlich einchecken...

Riker
ChakaZulu hat geschrieben:
dhd hat geschrieben:wär schön wenns ins cvs wandern würde :D
dhd hat geschrieben:cvs account , nee danke
super...

ciao,

ChakaZulu
Die Frage ist doch eher warum es keiner eincheckt wenn doch vorher schon alles vorhanden.

Sind jetzt auch schon Kernelpatches nonPuplic!?
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Beitrag von JtG-Riker »

Problem ist das gleiche wie hier drüber geschrieben:

http://forum.tuxbox-cvs.sourceforge.net ... hlight=mtd


Ich habs gestern mal getestet, dabei wird die Kompressionsrate vom JFFS2 so bescheiden das es sich eigendlich nicht lohnt das einzubauen.

Ich hatte ca 53% use mit altem MTD und mit neuem MTD 73% use

Wenn der Fehler behoben wäre könnte man es sicher einchecken.

Riker
mws
Developer
Beiträge: 331
Registriert: Freitag 7. Februar 2003, 22:17

Beitrag von mws »

bevor hier alle nen schuldigen suchen, warum etwas (noch) nicht eingecheckt wurde.

a) ich habe die .30 diffs seit längerem von riker bekommen.
b) ich habe noch nicht wirklich zeit gehabt, da nachzusehen
c) die patches kann sich theoretisch fast jeder selber basteln, aber man muss auch verstehen,
wenn nicht alles im selben moment ins cvs wandert. das hat mit non public oder so gar nichts zu tun.
d) ich habe die patches von riker hauptsächlich bekommen, weil ich mit dem gcc 4.0 rumexperimentiert habe.
zu diesem thema ist auch u-boot bereits gcc 4.0 kompatibel gemacht und eingecheckt worden
e) dhd - zu deinem "cvs account - bloss nicht" - ok dann musst du warten, bis das die leute, die einen haben, sich die zeit nehmen das auszuführen.

gruss
mws
BOFHELL
Interessierter
Interessierter
Beiträge: 82
Registriert: Montag 30. Dezember 2002, 19:54

Beitrag von BOFHELL »

JtG-Riker hat geschrieben:Problem ist das gleiche wie hier drüber geschrieben:

http://forum.tuxbox-cvs.sourceforge.net ... hlight=mtd


Ich habs gestern mal getestet, dabei wird die Kompressionsrate vom JFFS2 so bescheiden das es sich eigendlich nicht lohnt das einzubauen.

Ich hatte ca 53% use mit altem MTD und mit neuem MTD 73% use

Wenn der Fehler behoben wäre könnte man es sicher einchecken.

Riker
naja vllt weißt Du jetzt auch warum es vorher besser komprimierte und nacher "wenigstens" funktionierte :D
derget
Contributor
Beiträge: 1608
Registriert: Samstag 28. Juli 2001, 00:00

Beitrag von derget »

das liegt nicht an der schlechteren Komprimierung
sondern dadran das das jffs2 eine Anzahl von
Blöcken reserviert , die man nicht benutzen kann
es benutzt diese um garbage collection etc zu machen

default ist glaub ich 5 Blöcke ah 128kb :)

und das reisst dick rein wenn man nur 8MB hat ...

deshalb habe ich das damals auf 1 Block runtergepatched

damit rennt das jffs2 ja auch 1a , solange bis man es zu voll schreibt
weil dann zu wenig Platz vorhanden ist um wieder was löschen zu können
(wie paradox , man braucht platz um was zu löschen hehe :) )
Nachtvogel
Tuxboxer
Tuxboxer
Beiträge: 4391
Registriert: Freitag 21. Mai 2004, 17:16

Beitrag von Nachtvogel »

könnte man den Platz den man zum löschen braucht nicht aus tmp klauen :wink:

Gruß Nachtvogel
Bild
dhd
Einsteiger
Einsteiger
Beiträge: 246
Registriert: Freitag 4. Oktober 2002, 11:35

Beitrag von dhd »

mws hat geschrieben:bevor hier alle nen schuldigen suchen, warum etwas (noch) nicht eingecheckt wurde.
e) dhd - zu deinem "cvs account - bloss nicht" - ok dann musst du warten, bis das die leute, die einen haben, sich die zeit nehmen das auszuführen.

gruss
mws

ich hab zeit ich hab ja nich gesagt ich wills unbedingt sofort ambestenschon gestern drinn haben :D :D
Metallica
Einsteiger
Einsteiger
Beiträge: 191
Registriert: Dienstag 30. Dezember 2003, 01:49

Beitrag von Metallica »

derget hat geschrieben:deshalb habe ich das damals auf 1 Block runtergepatched
Ich versteh nicht , wieso macht man filesystem kaputt , nur dammit der mehr freie blocken zeigt :gruebel:
damit rennt das jffs2 ja auch 1a , solange bis man es zu voll schreibt
also man sollte dann jffs2 in jffs2-read_only umbenennen , oder ?
saruman
Erleuchteter
Erleuchteter
Beiträge: 682
Registriert: Samstag 13. Juli 2002, 10:05

Beitrag von saruman »

Metallica hat geschrieben:also man sollte dann jffs2 in jffs2-read_only umbenennen , oder ?
Nein, Du kannst es ja beschreiben. Darfst es halt nur nicht zu voll schreiben. :)
JtG-Riker
Image-Team
Beiträge: 1015
Registriert: Freitag 7. Februar 2003, 18:37

Beitrag von JtG-Riker »

Also ich hab es nun mit dem alten mtd patch mit hilfe von jmittelst, der die letzten Tage 1001x seine Box geflasht hat hinbekommen das das jffs2 nicht mehr crasht.

Der neue MTD Patch braucht ja noch einige anpassungen mehr, die mtd tools gehen damit nicht mehr (eraseall z.b.) deswegen hab ich das erstmal weggelassen.

Wenn das soweit geht wird nächste woche der Kram mit dem 2.4.31er Kernel eingecheckt hoff ich ;)
stdin
Interessierter
Interessierter
Beiträge: 93
Registriert: Freitag 15. Oktober 2004, 18:40

Beitrag von stdin »

hi riker,

ist da diesbezüglich mit dem 2.4.31 kernel schon was passiert, habe momentan echte schwierigkeiten mit einem jffs2-image?

wäre nett wenn du mir da weiter helfen könntest :)