oe-alliance/openmultibootmanager — pull request #3 by athoik (2014-12-15 21:20:18+00:00)
Title: OpenMultiboot: Initial support for Dreambox

Dreamboxes there are doing lot of things different from other boxes (eg CFE, NFI, etc)

One the main differences is the NFI image. NFI is actually a container for second stage, boot (kernel) and root filesystem. So class `extractImageNFI` (based on gutemite's nfiextract.py released under GPL) extracts NFI boot partition into `kernel.bin` and root filesystem into `rootfs.bin`.

For all Dreamboxes we need `MTD_KERNEL = "mtd2"`, `ROOTFS_FILE = "rootfs.bin"` and `KERNEL_FILE = "kernel.bin"`

Also Dreamboxes have `kernel-module-block2mtd` build on kernel so it is imposible to start Open Multiboot Manager. One possible solution is to fix `KERNEL_BUILTIN_MODULES` and use `opkg whatprovides kernel-module-block2mtd | grep -v "What provides" | grep kernel`, but with block2mtd it was a ***nightmare*** to extract jffs2 images! At the end a userspace utility from Dreambox board was used [unjffs2] (https://github.com/athoik/unjffs2). With unjffs2 exctracting jffs2 can work also on dm800.

Then it was time for Dreamboxes with ubi filesystem, again Dreambox is not using the same parameters in ubi so nandsim emulation was only working for dm8000. Valid nandsim emulation compartible with dm7020hd and all v2 boxes found but please note the following: dm7020hd uses a 2G nandsim emulation when extracting ubi, so we need >= 4G usb sticks for dm7020hd. v2 boxes use 1G nandsim emulation so >= 2G usb sticks required. Of course nandsim module should be enabled.

*During the testing null modem was by best friend...*

PS. unjffs2 should added as RDEPENDS eg `RDEPENDS_${PN}_dm800se = "openmultiboot oe-alliance-branding unjffs2"`

PPS. No idea about dm7080hd and dm820hd