Jump to content

Howto JFFS2 Only Image erstellen Kernel 2.4.25


Empfohlene Beiträge

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.org:/cvs/tuxbox -z3 co -P .

 

es muss nicht immer der komplette cvs ausgecheckt werden.

 

Update :

xennex@debian:~/tuxbox-cvs$ cvs -danoncvs@cvs.tuxbox.org:/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.org/pub/tuxbox/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

#include

#include

#include

#include

#include

#include

#include

#include

#include

 

/* 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 , Bastian Blank , Alexander Wild ");

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 :

 

 

Ich habe das für xennex hier reingestellt.bei fragen zu dem Howto bitte an ihn wenden.

 

Gruß derberg_de

HowTo_files.zip

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...