Dreambox:Images erstellen (veraltet)
Diese Kategorie bzw. dieser Artikel basiert auf auf dem alten Buildsystem "Oldmake", welches ab Januar 2009 durch das jetzt im CVS-Head befindliche "Newmake" abgelöst wurde. Es ist relativ sicher, dass viele Funktionen nicht mehr aktiv unterstützt werden oder nicht mehr funktionieren. Es besteht aber die Möglichkeit "Oldmake" weiterhin zu warten. Der letzte funktionsfähige Stand wurde im CVS mit dem Tag
last_oldmake_head
markiert und ein entsprechender Branch
oldmake
angelegt, so dass das Verfahren, wenn auch eingeschränkt, weiter verwendet werden kann. Von den meissten aktiven Entwicklern wird dieser Branch jedoch nicht mehr weiter gepflegt, so dass es am Nutzer selbst liegt, notwendige Änderungen im Entwicklerforum mitzuteilen oder sofern die Möglichkeit besteht, selbst entsprechende Änderungen ins CVS zu schreiben.
Development
- Allgemein
- Neutrino-HD-Entwicklung
- dbox2 Entwicklung
Inhaltsverzeichnis
Auschecken vorbereiten und Image erstellen
mkdir tuxbox-cvs cd tuxbox-cvs export CVS_RSH=ssh cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -f -r dreambox -P . cd cdk chmod ugo+x prepare_neutrino ./prepare_neutrino dm500 make checkout_neutrino ./prepare_neutrino dm500 make dreamboximage_neutrinoroot make rebuild-flash make flash-compress
Am Ende befindet sich im Ordner root/cdkflash/ ein fertiges Image complete.img.
Anpassung
Änderung der Größenverhältnisse im Image
Man muß dazu die Datei dreambox.c aus dem Ordner cdk/linux/drivers/mtd/maps ändern, nur diese Datei wird erst erstellt nachdem man den Befehl: make dreamboximage_neutrinoroot ausgeführt hat. Dazu öffne ich ein zweites Terminal Fenster und warte bis die Datei da ist und ändere diese während dem makevorgang wie folgt ab:
static struct mtd_partition dreambox_flash_partitions[] = { { name: "DreamBOX cramfs+squashfs", offset: 0x000000, size: 0x500000, }, { name: "DreamBOX jffs2", offset: 0x500000, size: 0x2c0000, }, { name: "DreamBOX OpenBIOS", offset: 0x7c0000, size: 0x040000, mask_flags: MTD_WRITEABLE /* force read-only */ }, { name: "DreamBOX (w/o bootloader)", offset: 0, size: 0x7c0000, }, { name: "DreamBOX (w/ bootloader)", offset: 0, size: 0x800000, mask_flags: MTD_WRITEABLE /* force read-only */ }, { name: "DreamBOX SquashedFS", offset: 0x120000, size: 0x3e0000 }, { name: "DreamBOX Cramfs", offset: 0, size: 0x120000 } };
Damit am Ende nicht eine zu große squashfs Partition erstellt wird und die Überprüfung an die neue Größe angepasst wird, die Datei makefile.am ändern:
$(flashprefix)/root-squashfs.img: touch $(flashprefix)/root/.flash $(flashprefix)/mksquashfs $(flashprefix)/root $(flashprefix)/root-squashfs.img -be -all-root rm $(flashprefix)/root/.flash @if [ `stat -c %s $(flashprefix)/root-squashfs.img` -gt 4063232 ]; then \ echo "ERROR: SquashFS part is too big for image (max. allowed 4063232 bytes)"; \ rm -f $(flashprefix)/root-squashfs.img.too-big 2> /dev/null || /bin/true; \ mv $(flashprefix)/root-squashfs.img $(flashprefix)/root-squashfs.img.too-big; \ exit 1; \ fi