jffs2only.img aus HEAD CVS erstellen

Sammlung von Anleitungen und HowTos für dBox2
Jake
Interessierter
Interessierter
Beiträge: 89
Registriert: Freitag 1. Februar 2002, 17:11

jffs2only.img aus HEAD CVS erstellen

Beitrag von Jake »

Hi,

die letzten Tage habe ich mal versucht, ein jffs2only Image aus dem Head-cvs zu erstellen. Es ist ein ziemlicher Kampf, an alle Infos und Programme zu kommen.
Das folgende (Linux-)Script baut ein komplettes Image aus dem Head-cvs, außerdem sind noch ein paar relevante Links drin.

Das Script funktioniert auf meiner Suse8.2-Kiste, es wird keine Fehlerüberprüfung o.ä. durchgeführt.

Vielleicht hilfts ja jemandem...


#!/bin/sh
####
#### Dieses Script baut ein jffs2only Image vom aktuellen Head. Es wird nur Neutrino verwendet. Das erzeugte Image ist voll funktionsfaehig,
#### allerdings muss in Einstellungen/Netzwerk "Netzwerkeinstellungen beim Start zuweisen" gesetzt werden.
#### Ucodes und weitere Konfigurationsdateien koennen aus der laufenden Software verwendet werden (siehe weiter unten).
#### Das komplette CVS wird heruntergeladen, kann bei Bedarf modifiziert werden.
#### Funktioniert auf meiner Nokia 2xI.
####
#### Kein Anspruch auf Vollstaendigkeit...
####

STARTTIME=`date`
BASEDIR=/home/dbox

#########################################################
#
#Einige Links zu verwendeten Programmen:
#
#mklibs:
#http://remote-admin.info/upload/scripte/
#
#mkjffs2:
#ftp://ftp.uk.linux.org/pub/people/dwmw2/mtd/cvs/
#http://www.linux-mtd.infradead.org/
#
#fakeroot:
#http://packman.iu-bremen.de//suse/8.1/S ... -1.src.rpm
#http://joostje.op.het.net/fakeroot/index.html
#
#mkcramfs:
#http://sourceforge.net/projects/cramfs
#
#Modifikation von dbox2-flash.c und do_mounts.c:
#http://howto.dbox2world.com/howtos/jffs2image/
#
#jffs2-flfs.img:
#http://howto.dbox2world.com/downloads/files.rar
#
########################################################


####Alte Verzeichnisse umbenennen
mv $BASEDIR/tuxbox-cvs $BASEDIR/old/tuxbox-cvs`date +%d%m%H%M`
mv $BASEDIR/dbox2 $BASEDIR/old/dbox2-`date +%d%m%H%M`
mkdir $BASEDIR/tuxbox-cvs
cd $BASEDIR/tuxbox-cvs

####Wird nur einmal gebraucht.
#echo Press Enter
#cvs -d:pserver:anonymous@cvs.berlios.de:/cvsroot/tuxbox login
#cvs -d:pserver:anonymous@cvs.tuxbox-cvs.sourceforge.net:/cvs/tuxbox login

####CVS herunterladen
#cvs -d:pserver:anonymous@cvs.berlios.de:/cvsroot/tuxbox -z3 co -r HEAD .
cvs -d:pserver:anonymous@cvs.tuxbox-cvs.sourceforge.net:/cvs/tuxbox -z3 co -P .

cd $BASEDIR/tuxbox-cvs

####camd.c fuer Premiere kopieren. Wenn die modifizierte Datei nicht verwendet wird, dann ist kein Empfang von Premiere moeglich.
/bin/cp $BASEDIR/misc/camd.c $BASEDIR/tuxbox-cvs/apps/tuxbox/tools/camd
ln -s $BASEDIR/Archive $BASEDIR/tuxbox-cvs/cdk/Archive
cd $BASEDIR/tuxbox-cvs/cdk

####Autogen.sh und configure
./autogen.sh
./configure --prefix=$BASEDIR/dbox2 --with-targetruleset=flash --with-cvsdir=$BASEDIR/tuxbox-cvs --enable-maintainer-mode

####Neue Downloads
make download

####make all, falls gewollt
#touch $BASEDIR/tuxbox-cvs/cdk/.enigma
#make all
#touch $BASEDIR/tuxbox-cvs/cdk/.enigma
#make all
#touch $BASEDIR/tuxbox-cvs/cdk/.enigma
#make all


####Kernel Sourcen auspacken
make .linuxdir

####Ist dbox2-flash.c die aktuelle Version? Wenn nein, muss sie manuell angepasst werden. Wenn ja, kopieren. (Siehe auch http://howto.dbox2world.com/howtos/jffs2image/)
grep '$Id: dbox2-flash.c,v 1.9 2003/05/21 12:45:18 dwmw2 Exp ' $BASEDIR/tuxbox-cvs/cdk/linux/drivers/mtd/maps/dbox2-flash.c >/dev/null
if [ $? -ne 0 ] ; then
echo $BASEDIR/tuxbox-cvs/cdk/linux/drivers/mtd/maps/dbox2-flash.c veraendert.
echo Datei bitte manuell anpassen
exit
fi

####do_mounts.c veraendern (siehe http://howto.dbox2world.com/howtos/jffs2image/)
/bin/cp $BASEDIR/misc/dbox2-flash.c $BASEDIR/tuxbox-cvs/cdk/linux/drivers/mtd/maps
cat $BASEDIR/tuxbox-cvs/cdk/linux/init/do_mounts.c | sed -e s/mtdblock/mtdblock\\// >/tmp/do_mounts.c
/bin/mv /tmp/do_mounts.c $BASEDIR/tuxbox-cvs/cdk/linux/init/do_mounts.c


####Eigentliches make
#make flash-all
#make rebuild-flash
#make flash-ftpd
#make flash-telnetd
make flash-neutrino-all
make flash-ssh
make flash-sshd
#make flash-plugins
#make flash-lcdmenu
#make flash-lib



#### /etc/network/interfaces anpassen. Hier wird eth0 aktiviert, ist standardmaessig aus. Bringt aber nicht die Welt, da das Netz auch aus Neutrino gesetzt wird.
echo "auto lo" > $BASEDIR/dbox2/cdkflash/root/etc/network/interfaces
echo "iface lo inet loopback" >> $BASEDIR/dbox2/cdkflash/root/etc/network/interfaces
echo >> $BASEDIR/dbox2/cdkflash/root/etc/network/interfaces

echo "auto eth" >> $BASEDIR/dbox2/cdkflash/root/etc/network/interfaces
echo "iface eth0 inet static" >> $BASEDIR/dbox2/cdkflash/root/etc/network/interfaces
echo "address 192.168.0.24" >> $BASEDIR/dbox2/cdkflash/root/etc/network/interfaces
echo "gateway 192.168.0.100" >> $BASEDIR/dbox2/cdkflash/root/etc/network/interfaces
echo "netmask 255.255.255.0" >> $BASEDIR/dbox2/cdkflash/root/etc/network/interfaces


####Ucodes und andere Konfigurationsdateien ins cdkflash Verzeichnis kopieren
####.xml und .conf Dateien koennen von der alten Soft uebernommen werden
/bin/cp $BASEDIR/ucodes/* $BASEDIR/dbox2/cdkflash/root/var/tuxbox/ucodes
/bin/cp $BASEDIR/logos/* $BASEDIR/dbox2/cdkflash/root/boot
/bin/cp $BASEDIR/misc/services.xml $BASEDIR/dbox2/cdkflash/root/var/tuxbox/config/zapit
/bin/cp $BASEDIR/misc/bouquets.xml $BASEDIR/dbox2/cdkflash/root/var/tuxbox/config/zapit
/bin/cp $BASEDIR/misc/zapit.conf $BASEDIR/dbox2/cdkflash/root/var/tuxbox/config/zapit
/bin/cp $BASEDIR/misc/neutrino.conf $BASEDIR/dbox2/cdkflash/root/var/tuxbox/config
/bin/cp $BASEDIR/misc/nhttpd.conf $BASEDIR/dbox2/cdkflash/root/var/tuxbox/config
/bin/cp $BASEDIR/misc/lcdmenu.conf $BASEDIR/dbox2/cdkflash/root/var/tuxbox/config
/bin/cp $BASEDIR/misc/satellites.xml $BASEDIR/dbox2/cdkflash/root/share/tuxbox
/bin/cp $BASEDIR/misc/cables.xml $BASEDIR/dbox2/cdkflash/root/share/tuxbox
####In /etc/init.d/start wird start_neutrino anstelle von start_enigma als Erstes eingetragen
/bin/cp $BASEDIR/misc/start $BASEDIR/dbox2/cdkflash/root/etc/init.d/
####Homeverzeichnis von root ist / , nicht /root (sonst kein ftp moeglich)
/bin/cp $BASEDIR/misc/passwd $BASEDIR/dbox2/cdkflash/root/etc
####/etc/init.d/start_neutrino ist standardmaessig nicht ausfuehrbar
chmod +x $BASEDIR/dbox2/cdkflash/root/etc/init.d/*



cd $BASEDIR/dbox2/cdkflash



####jffs2-flfs.img kopieren. Siehe README-flash.de
cp $BASEDIR/misc/jffs2-flfs.img $BASEDIR/dbox2/cdkflash/jffs2-flfs.img

####Image erstellen
cd $BASEDIR/tuxbox-cvs/cdk
make flash-jffs2image


ENDTIME=`date`

echo
echo started: $STARTTIME
echo finished: $ENDTIME
stream2003
Interessierter
Interessierter
Beiträge: 51
Registriert: Dienstag 9. September 2003, 21:55

Beitrag von stream2003 »

hy,

versuche gerade dein script nachzuvollziehen, leider funktioniert der link:
"http://howto.Premiere.com/howtos/jffs2image/ " nicht!!!
wie lautet die korrekt url, oder ist die seite offline?

mfg
Jake
Interessierter
Interessierter
Beiträge: 89
Registriert: Freitag 1. Februar 2002, 17:11

Beitrag von Jake »

Huch, da bin ich wohl in die Illegalität abgeglitten und ein aufmerksamer Mod hat mich korrigiert.:o

Such bei Google mal nach "jffs2-flfs.img", dann wirst Du wohl fündig werden.

@Mods: Ich kann auf Anhieb nichts Illegales an dieser Seite finden. Das Board ist ja wohl nur als registrierter Benutzer zu verwenden, und was dort passiert, weiß ich nicht, ich bin nicht registriert. Ich kam auch über Google auf die Howto-Seite.
Jake
Interessierter
Interessierter
Beiträge: 89
Registriert: Freitag 1. Februar 2002, 17:11

Beitrag von Jake »

Man könnte noch

####Shutdown beim Beenden von Neutrino
echo 'echo "Going to halt system now ..."' >> $BASEDIR/dbox2/cdkflash/root/etc/init.d/start_neutrino
echo '/sbin/halt' >> $BASEDIR/dbox2/cdkflash/root/etc/init.d/start_neutrino
####Leere Passworte fuer sshd sowie Rechte anpassen
echo 'PermitEmptyPasswords yes' >> $BASEDIR/dbox2/cdkflash/root/etc/ssh/sshd_config
chmod 600 $BASEDIR/dbox2/cdkflash/root/etc/ssh/*

hinter die Zeile
chmod +x $BASEDIR/dbox2/cdkflash/root/etc/init.d/*
einfügen.

PS: Links sind wieder da. Danke.
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

ob dieses HowTo nun korrekt ist, mag ich nicht beurteilen (ich mach das mit dem kernel manuell, anders) aber.. das wichtigste fehlt da. naemlich die anpassung von u-boot.
stream2003
Interessierter
Interessierter
Beiträge: 51
Registriert: Dienstag 9. September 2003, 21:55

Beitrag von stream2003 »

hy,

@jake:

erstmal ein riesen lob fuer die veroeffentlichung eines doch nachvollziehbaren skript fuer die erstellung von jff2only images!!! Endlich mal jemand der sein wissen nicht fuer sich selber behält!

@kerliman

wie machst du das mit dem kernel manuel anders und was meinst du mit es fehlt die anpassung von u-boot??

mfg
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

stream2003 hat geschrieben: wie machst du das mit dem kernel manuel anders und was meinst du mit es fehlt die anpassung von u-boot??
so wie es hier im board steht. den thread raussuchen kannste ja selber, wenn du nach "jffs2-only" suchst. ohne anpassung von u-boot laeuft kein jffs2-only kernel - das ist nur "die halbe miete".
Jake
Interessierter
Interessierter
Beiträge: 89
Registriert: Freitag 1. Februar 2002, 17:11

Beitrag von Jake »

Dieses Image läuft mit ppcboot, nicht mit u-boot, oder? Daher sollte auch keine u-boot Anpassung notwendig sein.

Egal ob mit oder ohne u-boot, das generierte Image läuft einwandfrei auf meiner Nokia.

boot net failed

Flash-FS bootstrap loader (v1.5)

Found Flash-FS superblock version 3.1
Found file /root/platform/nokia-dbox2/kernel/os in Flash-FS
debug: Got Block #0044

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


PPCBoot 1.1.6 (TuxBox) (Nov 16 2002 - 10:23:37)

CPU: PPC823ZTnnB2 at 67.100 MHz: 2 kB I-Cache 1 kB D-Cache
Watchdog enabled
Board: DBOX2, Nokia
I2C: ready
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

Jake hat geschrieben:Dieses Image läuft mit ppcboot, nicht mit u-boot, oder?
und wie hast du die ppcboot erstellt? oder hast du eine fertige genommen, z.B. aus dem image von indy?
Jake
Interessierter
Interessierter
Beiträge: 89
Registriert: Freitag 1. Februar 2002, 17:11

Beitrag von Jake »

Die von hier (wie oben beschrieben)

...
#
#jffs2-flfs.img:
#http://howto.dbox2world.com/downloads/files.rar
#
...
stream2003
Interessierter
Interessierter
Beiträge: 51
Registriert: Dienstag 9. September 2003, 21:55

Beitrag von stream2003 »

hallo,

noch mal ne frage zum cvs update.
Ich hab jetzt gestern laut jakes skript ein jffs2-only image erstellt. Wie muss ich denn jetzt vorgehen, wenn ich heute oder später das ganze "updaten" moechte, mit den neuerungen von cvs stand? Welche befehle sind da notwendig? Also ohne alles neu runterladen zu muessen?

mfg
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

Jake hat geschrieben:Die von hier (wie oben beschrieben)
#http://howto.dbox2world.com/downloads/files.rar
ja wie? da ist ja die ppcboot schon drin (fertig compiled). also hast du eine fertige genommen, die ist bereits fuer jffs2-only compiled.

fuer eine 1xI box nutzt dir das ganze natuerlich garnix. auch nicht fuer ein neueres HEAD, da der pfad zur boot.conf hardcoded ist nach /var und nicht nach /boot.

sorry, deinen eifer in allen ehren, aber dat war nix :lol:
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

stream2003 hat geschrieben:Wie muss ich denn jetzt vorgehen, wenn ich heute oder später das ganze "updaten" moechte, mit den neuerungen von cvs stand? Welche befehle sind da notwendig? Also ohne alles neu runterladen zu muessen?
cvs -z3 up -dP
steht doch da: http://cvs.tuxbox-cvs.sourceforge.net/
Jake
Interessierter
Interessierter
Beiträge: 89
Registriert: Freitag 1. Februar 2002, 17:11

Beitrag von Jake »

@Kerlimann: Ich denke nicht, daß wir darüber streiten sollten. Wie gesagt, bei mir läuft das Script schön durch, baut ein Image, das Image kann ich flashen und die Box macht Bild. Mit dem heutigen CVS.

Du hast Recht, für eine 1x Box wird das nicht gehen Genau deshalb habe ich auch
#### Funktioniert auf meiner Nokia 2xI.
####
#### Kein Anspruch auf Vollstaendigkeit...
mit reingeschrieben. Es soll auch keine eierlegende Wollmilchsau sein, sondern ein Script, was die Imagebauerei für mich persönlich automatisiert. Wenn das bei Anderen auch funktioniert, gut. Wenn nicht, dann muß man das halt noch verändern.
Leider habe ich trotz Suchfunktion keinen Thread gefunden, der einfach mal alle Links für die benötigten Programme auflistet. Und die restlichen Fragmente kann man sich dann auch noch zusammensuchen.
Vielleicht ists eher für Neulinge gedacht, ob ich jemanden, der fast 1000 Posts hat, auch beglücken kann, darf man wohl bezweifeln. :D

@stream2003
Das
mv $BASEDIR/tuxbox-cvs $BASEDIR/old/tuxbox-cvs`date +%d%m%H%M`
mv $BASEDIR/dbox2 $BASEDIR/old/dbox2-`date +%d%m%H%M`
mkdir $BASEDIR/tuxbox-cvs
mußt Du auskommentieren, der Rest wie von Kerlimann beschrieben. Evtl muß man am Ende noch ein "make rebuild-flash" einfügen, bin mir aber nicht sicher.
Jake
Interessierter
Interessierter
Beiträge: 89
Registriert: Freitag 1. Februar 2002, 17:11

Beitrag von Jake »

Es muß heißen
echo "auto eth0" >> $BASEDIR/dbox2/cdkflash/root/etc/network/interfaces

also "auto eth0" anstatt "auto eth".


Ich habe noch ein paar andere Fehler gefunden. Legt überhaupt jemand wert drauf, daß ich Fixes und Erweiterungen poste? Wenns keiner braucht, kann ich mir die Mühe sparen...

Ciao
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

Jake hat geschrieben:@Kerlimann: Ich denke nicht, daß wir darüber streiten sollten. Wie gesagt, bei mir läuft das Script schön durch, baut ein Image, das Image kann ich flashen und die Box macht Bild. Mit dem heutigen CVS.
what about this:
console=ttyS0
lcd_inverse=0
lcd_contrast=15

diese werte werden mit dem derweiligen cvs nach boot.conf gespeichert, im /var. aendere diese werte mal, und boote neu. na? :lol:
Jake
Interessierter
Interessierter
Beiträge: 89
Registriert: Freitag 1. Februar 2002, 17:11

Beitrag von Jake »

Sorry, ich weiß nicht, wo die Datei sein soll. Eine boot.conf habe ich nicht, weder in /var noch woanders.
Und außerdem: Warum soll ich diese Werte überhaupt ändern?

Aber ich habe ja auch nur 40 Posts... :)

Ciao
kerlimann
Semiprofi
Semiprofi
Beiträge: 1208
Registriert: Donnerstag 26. Dezember 2002, 07:26

Beitrag von kerlimann »

>Eine boot.conf habe ich nicht
natuerlich nicht. die gehoert allerdings in ein aktuelles image.

>Und außerdem: Warum soll ich diese Werte überhaupt ändern?
um helligkeit/kontrast des LCDs deinen wuenschen anzupassen?
Jake
Interessierter
Interessierter
Beiträge: 89
Registriert: Freitag 1. Februar 2002, 17:11

Beitrag von Jake »

kerlimann hat geschrieben:>Eine boot.conf habe ich nicht
natuerlich nicht. die gehoert allerdings in ein aktuelles image.

>Und außerdem: Warum soll ich diese Werte überhaupt ändern?
um helligkeit/kontrast des LCDs deinen wuenschen anzupassen?
Also, warum die Datei in ein aktuelles Image gehört, weiß ich immer noch nicht. Da Dein Wissensstand offenbar deutlich höher ist: Warum willst Du nicht dazu beitragen, daß mein Wissen sich Deinem etwas annähert? Erklär mir doch einfach, was und warum es fehlt.

Helligkeit und Kontrast des LCD kann ich ändern, und nach einem Reboot sind die Änderungen immer noch aktiv.

Ciao