derberg_de Geschrieben 1. Juli 2004 Melden Share Geschrieben 1. Juli 2004 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 More sharing options...
Empfohlene Beiträge