I have nothing against Enigma or the various other alternatives, but my interest in the Dreambox (DM500S) is just as an embedded Linux box with a DVB frontend and an Ethernet port. No display device or graphical user interface or embedded web browser is desired. This 3+ megabyte software just takes up flash space, CPU time, and makes DVB API calls that could interfere with the lower-level software I’m trying to write.
So far, however, I haven’t had a lot of success, and would be appreciative of any advice. It seems like a development platform like this would be something that someone would have

My three avenues thus far have been:
1) Use an existing image (like v108 for DM500S), and kill the Enigma processes (This would only be good for testing; it wouldn’t work in production)
2) Check out the latest CVS files and remove Enigma from the build
3) Take an existing image and edit the SquashFS partition
#1 is a disaster. Enigma does NOT die quietly. If one does a “killall –9 enigmaâ€, it crashes the box, corrupts the flash, and prevents it from working again. There are a lot of nasty messages that get spit out on the serial port before it goes completely dead. To make a box work again after this, one has to totally erase the flash and reload the image via the serial bootloader.
Clearly, this isn’t a viable solution.
For #2, when I found Andreas Monzner’s excellent tutorial for building an image from the CVS files, I was hoping that I had found an easy solution:
http://cvs.tuxbox-cvs.sourceforge.net/l ... 00073.html
The instructions indicate that one can remove “.part_*†files to change the build. There is a .part_enigma file in root/cdkflash, so I tried removing it as described in the tutorial. However, the Makefile puts in Enigma in anyway.
I’m still trying to reverse engineer the whole build process, and figure out how to change it. Does anyone have any insight into how the “.part_enigma†file was supposed to work?
For #3, after a lot of forum searching, I eventually figured out that a Dreambox image is a concatenation of a CramFS partition containing the kernel (and a link to “root�) and a SquashFS partition containing the root filesystem.
The CramFS portion is the first 1152 * 1024 bytes; the SquashFS is the rest.
I was trying to mount the CramFS portion of the image file as a loop file on a x86 box, and couldn’t understand why it said the magic number was wrong. When I looked at it in a hex editor, it looked just fine to me. Eventually, it dawned on me that the endian-ness was wrong, and wrote a quick and dirty program to swap the bytes around. Duh! Then, it would begin to mount, but it still complained “root is not a directory†and failed to mount it.
However, having access to that portion shouldn’t matter unless the kernel needs to be changed. UNLESS: Does the “root†thing have to be updated to reflect any changes in the SquashFS portion?
For the more relevant SquashFS portion of the image file, it only seems to mount if I don’t change the byte order. However, all the files sizes are wrong. (BTW, trying to open any one of these files (each of which it thinks is several gigabytes in size) in vi is a good way to crash your x86 Linux box!

Does anyone know what the secret is to mounting a Dreambox SquashFS image under x86 Linux, where it not only mounts the file but actually has the correct file sizes?
Thanks.