Dreambox:Images erstellen (veraltet)

Aus TuxBoxWIKI
Wechseln zu: Navigation, Suche


HINWEIS:

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.

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