HowTo jffs2 image erstellen .... ***UPDATE***

Kreuzuebersetzer, Diskussion über Änderungen im Tuxbox-CDK und Tuxbox-CVS
XenneX
Interessierter
Interessierter
Beiträge: 21
Registriert: Montag 21. Juni 2004, 11:27

HowTo jffs2 image erstellen .... ***UPDATE***

Beitrag von XenneX »

Hallo all,

gibt es irgendwo nen HowTo wie ich aus meinem CDKFLASH Verzeichniss nen funktionierendes Image machen kann .... hab mir schon die Finger wund gegoogled.

mkfs.jffs2 finde ich auch nirgends.

Danke

XenneX
Zuletzt geändert von XenneX am Mittwoch 30. Juni 2004, 12:49, insgesamt 1-mal geändert.
doc
Contributor
Beiträge: 1623
Registriert: Donnerstag 10. Januar 2002, 20:03

Beitrag von doc »

http://cvs.tuxbox-cvs.sourceforge.net/c ... cvs-markup

Wo suchst du denn nach mkfs.jffs2? Sollte auf deinem Linuxrechner vorhanden sein! Ansonsten nachinstallieren.
XenneX
Interessierter
Interessierter
Beiträge: 21
Registriert: Montag 21. Juni 2004, 11:27

Beitrag von XenneX »

mkfs.jffs2 hab ich nun auch installiert wie gehts weiter ...
dietmarw
Contributor
Beiträge: 1833
Registriert: Mittwoch 10. April 2002, 15:39

Beitrag von dietmarw »

das studium des yadi build scriptes b(u)ildet ungemein :wink:
http://www.yadi.org
XenneX
Interessierter
Interessierter
Beiträge: 21
Registriert: Montag 21. Juni 2004, 11:27

Beitrag von XenneX »

Howto JFFS2 Only Image erstellen Kernel 2.4.25 :

1 . Verzeichnisse dbox2 und tuxbox-cvs erstellen

xennex@debian:~$ mkdir $HOME/dbox2
xennex@debian:~$ mkdir $HOME/tuxbox-cvs

2. CVS auschecken

xennex@debian:~$ cd $HOME/tuxbox-cvs
xennex@debian:~/tuxbox-cvs$ export CVS_RSH=ssh
xennex@debian:~/tuxbox-cvs$ cvs -danoncvs@cvs.tuxbox-cvs.sourceforge.net:/cvs/tuxbox -z3 co -P .

es muss nicht immer der komplette cvs ausgecheckt werden.

Update :
xennex@debian:~/tuxbox-cvs$ cvs -danoncvs@cvs.tuxbox-cvs.sourceforge.net:/cvs/tuxbox -z3 up -dP

3. Vorarbeiten zum Kompilieren

xennex@debian:~$ cd $HOME/tuxbox-cvs/cdk
xennex@debian:~/tuxbox-cvs/cdk$ ./autogen.sh
xennex@debian:~/tuxbox-cvs/cdk$ ./configure --with-cvsdir=$HOME/tuxbox-cvs \
--prefix=$HOME/dbox2 \
--enable-maintainer-mode \
--with-targetruleset=flash

4. Archive downloaden

xennex@debian:~$ cd $HOME/tuxbox-cvs/cdk
xennex@debian:~/tuxbox-cvs/cdk$ make download
Sollten nicht alle Dateien runtergeladen werden (passiert öffters) dann die Dateien manuell von http://www.tuxbox-cvs.sourceforge.net/p ... x/cdk/src/ runterladen.

5. Vorbereitung für JFFS2 Image only

- Kernel entpacken
xennex@debian:~$ cd $HOME/tuxbox-cvs/cdk
xennex@debian:~/tuxbox-cvs/cdk$ make linuxdir

- Die Datei dbox2-flash.c anpassen

xennex@debian:~$ cd $HOME/tuxbox-cvs/cdk/linux-2.4.25/drivers/mtd/maps
xennex@debian:~/tuxbox-cvs/cdk/linux-2.4.25/drivers/mtd/maps$ vi dbox2-flash.c

Die Datei sollten dann so aussehen :

/*
* $Id: dbox2-flash.c,v 1.9 2003/05/21 12:45:18 dwmw2 Exp $
*
* D-Box 2 flash driver
*/

#include <linux/module.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <asm/io.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/map.h>
#include <linux/mtd/partitions.h>
#include <linux/config.h>
#include <linux/errno.h>

/* partition_info gives details on the logical partitions that the split the
* single flash device into. If the size if zero we use up to the end of the
* device. */
static struct mtd_partition partition_info[]= {
{
.name = "BR bootloader",
.size = 128 * 1024,
.offset = 0,
.mask_flags = MTD_WRITEABLE
},
{
.name = "flfs (ppcboot)",
.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
}
};

#define NUM_PARTITIONS (sizeof(partition_info) / sizeof(partition_info[0]))

#define WINDOW_ADDR 0x10000000
#define WINDOW_SIZE 0x800000

static struct mtd_info *mymtd;


struct map_info dbox2_flash_map = {
.name = "D-Box 2 flash memory",
.size = WINDOW_SIZE,
.buswidth = 4,
.phys = WINDOW_ADDR,
};

int __init init_dbox2_flash(void)
{
printk(KERN_NOTICE "D-Box 2 flash driver (size->0x%X mem->0x%X)\n", WINDOW_SIZE, WINDOW_ADDR);
dbox2_flash_map.virt = (unsigned long)ioremap(WINDOW_ADDR, WINDOW_SIZE);

if (!dbox2_flash_map.virt) {
printk("Failed to ioremap\n");
return -EIO;
}
simple_map_init(&dbox2_flash_map);

// Probe for dual Intel 28F320 or dual AMD
mymtd = do_map_probe("cfi_probe", &dbox2_flash_map);
if (!mymtd) {
// Probe for single Intel 28F640
dbox2_flash_map.buswidth = 2;

mymtd = do_map_probe("cfi_probe", &dbox2_flash_map);
}

if (mymtd) {
mymtd->owner = THIS_MODULE;

/* Create MTD devices for each partition. */
add_mtd_partitions(mymtd, partition_info, NUM_PARTITIONS);

return 0;
}

iounmap((void *)dbox2_flash_map.virt);
return -ENXIO;
}

static void __exit cleanup_dbox2_flash(void)
{
if (mymtd) {
del_mtd_partitions(mymtd);
map_destroy(mymtd);
}
if (dbox2_flash_map.virt) {
iounmap((void *)dbox2_flash_map.virt);
dbox2_flash_map.virt = 0;
}
}

module_init(init_dbox2_flash);
module_exit(cleanup_dbox2_flash);


MODULE_LICENSE("GPL");
MODULE_AUTHOR("Kári Davíðsson <kd@flaga.is>, Bastian Blank <waldi@tuxbox-cvs.sourceforge.net>, Alexander Wild <wild@te-elektronik.com>");
MODULE_DESCRIPTION("MTD map driver for D-Box 2 board");

DORT WIRD NUR DER PART :

static struct mtd_partition partition_info[]= {
{
.name = "BR bootloader",
.size = 128 * 1024,
.offset = 0,
.mask_flags = MTD_WRITEABLE
},
{
.name = "flfs (ppcboot)",
.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
}
};

Verändert !!!

- mklibs kopieren
xennex@debian:~$ cp $HOME/tuxbox-cvs/hostapps/mklibs/mklibs.py /usr/bin/mklibs
xennex@debian:~$ chmod 755 /usr/bin/mklibs

6. Kompilieren

xennex@debian:~$ cd $HOME/tuxbox-cvs/cdk
xennex@debian:~/tuxbox-cvs/cdk$ make all

Das kann jetzt einige Zeit Dauern bei mir 1:30 Std.
letzen Ausgabe sollte dieses sein :
touch .nano
xennex@debian:~/tuxbox-cvs/cdk$

7. Flash-Dateien erstellen

xennex@debian:~$ cd $HOME/tuxbox-cvs/cdk
xennex@debian:~/tuxbox-cvs/cdk$ make flash-neutrino-all

8. Vorbereitung Image erstellen

- Dateien logo-lcd, logo-fb boot.conf und u-boot.conf nach $HOME/dbox2/cdkflash/root/var/tuxbox/boot kopieren *
(Sollte das Verzeichniss $HOME/dbox2/cdkflash/root/var/tuxbox/boot nicht existieren, dann erstellen)

- Dateien bouquets.xml; services.xml nach $HOME/dbox2/cdkflash/root/var/tuxbox/config/zapit kopieren *

- Die Datein scan.conf nach $HOME/dbox2/cdkflash/root/var/tuxbox/config kopieren *

- Die Dateien ucodes.bin, aviaX00.ux und alpha-cam.bin nach $HOME/dbox2/cdkflash/root/var/tuxbox/ucodes kopieren
(Diese Dateien erstellt ihr aus dem Orginal BN Image)

- Die Datei $HOME/dbox2/cdkflash/root/etc/init.d/rcS editieren :

xennex@debian:~$ cd $HOME/dbox2/cdkflash/root/root/etc/init.d
xennex@debian:~/dbox2/cdkflash/root/root/etc/init.d$ vi rcS

Die Datei muss danach so aussehen :

#!/bin/sh

PATH=/sbin:/bin
CAMALPHA="firmware=/var/tuxbox/ucodes/cam-alpha.bin"
UCODE="ucode=/var/tuxbox/ucodes/ucode.bin"
hostname -F /etc/hostname
mount -a
ifup -a

test -x /sbin/inetd && inetd
./etc/profile
insmod tuxbox

VENDOR=`/bin/tuxinfo -V`
VENDOR_ID=`/bin/tuxinfo -v`
MODEL=`/bin/tuxinfo -M`
MODEL_ID=`/bin/tuxinfo -m`
SUBMODEL=`/bin/tuxinfo -S`
SUBMODEL_ID=`/bin/tuxinfo -s`

echo "Detected STB:"
echo " Vendor: $VENDOR"
echo " Model: $MODEL $SUBMODEL"

insmod dvb-core dvb_shutdown_timeout=0

# D-BOX2
if [ $MODEL_ID -eq 1 ]; then

# I2C core
insmod dbox2_i2c
insmod dvb_i2c_bridge

#
insmod event

# Frontprozessor
insmod dbox2_fp
insmod dbox2_fp_input

# Frontends
# Nokia
if [ $VENDOR_ID -eq 1 ]; then
insmod ves1820
insmod ves1x93 board_type=1
# Philips
elif [ $VENDOR_ID -eq 2 ]; then
insmod tda8044h
# Sagem
elif [ $VENDOR_ID -eq 3 ]; then
insmod at76c651
insmod ves1x93 board_type=2
fi

# Misc IO
insmod avs
insmod saa7126
# Philips
if [ $VENDOR_ID -eq 2 ]; then
insmod cam mio=0xC040000 $CAMALPHA
else
insmod cam mio=0xC000000 $CAMALPHA
fi
insmod lcd

# A/V
insmod avia_napi
insmod avia_av firmware=/var/tuxbox/ucodes
if [ -e /var/etc/.hw_sections ]; then
insmod avia_gt $UCODE hw_sections=0
else
insmod avia_gt $UCODE
fi
insmod avia_gt_fb console_transparent=1
insmod avia_gt_lirc
insmod avia_gt_oss
insmod avia_gt_v4l2

insmod cam_napi
insmod avia_av_napi
if [ -e /var/etc/.spts_mode ]; then
insmod avia_gt_napi mode=1
else
insmod avia_gt_napi
fi
insmod dbox2_fp_napi
insmod multicam.o

fi

echo "$VENDOR $MODEL - Kernel %r (%t)." > /etc/issue.net

# compatibility links
ln -sf demux0 /dev/dvb/adapter0/demux1
ln -sf dvr0 /dev/dvb/adapter0/dvr1
ln -sf fb/0 /dev/fb0

test -x /bin/loadkeys && loadkeys /share/keymaps/i386/qwertz/de-latin1.kmap.gz

if [ -e /etc/init.d/rcS.local ]; then
. /etc/init.d/rcS.local
fi

- Netzwerk einstellungen machen
xennex@debian:~$ cd $HOME/dbox2/cdkflash/root/etc/network
xennex@debian:~/dbox2/cdkflash/root/network$ vi interfaces

Dort Alle # vor den Zeilen entfernen

* Diese Dateien bekommt ihr als anhang ....

9. Image erstellen

xennex@debian:~$ cd $HOME/dbox2/cdkflash
xennex@debian:~/dbox2/cdkflash$ mkfs.jffs2 -b -f -e 0x20000 --pad=0x7c0000 -r root -o part2.img

Nun Fehlt noch der Bootloader .... (Datei part1_2xi.img und part1_1xi.img im Anhang)
xennex@debian:~/dbox2/cdkflash$cat part1_Xxi.img part2.img > jffs2_only.img

Dieses fügt die beiden Teile zu einem Image zusammen.

Dieses Image nur noch via Bootmanager flashen und fertig ....

Dieses Howto ist entstanden, da ich kein richtig funktionierendes HowTo gefunden habe. Dieses ist nicht alles auf meinem Mist gewachsen sondern nur ein zusammentragen verschiedener HowTos die einzeln nicht funktionierten.

Sollten irgendwelche Fehler enthalten sein dann bitte komentieren.
Ich übernehme keine Haftung für irgendwelche Schäden.

XenneX

Files :
HowTo_files.zip
Papst
Developer
Beiträge: 279
Registriert: Mittwoch 26. Juni 2002, 22:19

Beitrag von Papst »

Unter Punkt 9. Image erstellen gehts noch ein bisschen einfacher.

xennex@debian:~$ cd $HOME/tuxbox-cvs/cdk
xennex@debian:~/tuxbox-cvs/cdk$ make flash-jffs2image

Damit wird automatisch ein jffs2 erzeugt und mit einem in $HOME/dbox2/cdkflash liegenden jffs2-flfs.img zusammengefügt.

Gruß
Papst
Gruß

Der Papst
XenneX
Interessierter
Interessierter
Beiträge: 21
Registriert: Montag 21. Juni 2004, 11:27

Beitrag von XenneX »

Wie gesagt ... mein erstes Howto nach dem ersten Funktionierenden Image ... man lernt immer noch dazu ...

sobald ich das verifiziert habe werde ich das updaten ....

Kann ich nicht bestätigen aktuelles CVS schmeisst vollgenden fehler

if [ -e /home/xennex/dbox2/cdkflash/root/lib/tuxbox/plugins/ ]; then \
rm -f /home/xennex/dbox2/cdkflash/root/lib/tuxbox/plugins/libfx2.so ; \
ln -s /lib/libfx2.so /home/xennex/dbox2/cdkflash/root/lib/tuxbox/plugins/libfx2.so ; \
fi ; \
fi
make: *** Keine Regel vorhanden, um das Target »/home/xennex/dbox2/cdkflash/jffs2-flfs.img«,
benötigt von »/home/xennex/dbox2/cdkflash/jffs2only.img«, zu erstellen. Schluss.
xennex@debian:~/tuxbox-cvs/cdk$ ls
XhorRah
Interessierter
Interessierter
Beiträge: 70
Registriert: Donnerstag 1. April 2004, 16:52

Beitrag von XhorRah »

du kannst das make all weglassen... ein make flash-neutrino-all reicht da vollkommen :)

greetz Xhor :)
Papst
Developer
Beiträge: 279
Registriert: Mittwoch 26. Juni 2002, 22:19

Beitrag von Papst »

Haste denn das "Target »/home/xennex/dbox2/cdkflash/jffs2-flfs.img" im entsprechenden Ordner liegen?
also bei mir klappt das schon immer so.
Gruß

Der Papst
gurgel
Tuxboxer
Tuxboxer
Beiträge: 2473
Registriert: Dienstag 8. Oktober 2002, 21:06

Beitrag von gurgel »

XenneX hat geschrieben: insmod multicam.o
ziemlich fragwürdige Quelle...
Test
Papst
Developer
Beiträge: 279
Registriert: Mittwoch 26. Juni 2002, 22:19

Beitrag von Papst »

ziemlich alter Thread... :gruebel:
Gruß

Der Papst
gurgel
Tuxboxer
Tuxboxer
Beiträge: 2473
Registriert: Dienstag 8. Oktober 2002, 21:06

Beitrag von gurgel »

jo :lol:
Test