Qt on the Dreambox

Published Thursday November 22nd, 2007
10 Comments on Qt on the Dreambox
Posted in Aggregated, Labs, Qt

A couple of years ago (3, to be exact), my girlfriend and I bought a house about 45 minutes outside of Oslo. The little village is just far enough and small enough to not get cable TV. So, that means we have to have satellite. I consider myself a lucky geek, because my tuner runs Linux.

Even though I’ve had it for a while, I’ve not really sat down and done anything with it beyond watching TV. Stupid me! This things runs Linux and is built almost entirely on Open Source Software (there’s no source for the binary drivers to read the encrypted card from the TV company). So, here the other day I pulled down the sources, built the tool chain, and compiled Qt for it:

As you can see, the performance isn’t great. I suspect that it’s due to the fact that it has an 8-bpp frame buffer and Qt stores the backing store in 16-bpp. I’ll have to do some profiling to see what I can do to improve it. But still, this is seriously cool… I can spend my free time hacking my TV!

Do you like this? Share it
Share on LinkedInGoogle+Share on FacebookTweet about this on Twitter

Posted in Aggregated, Labs, Qt


Johan Thelin says:

That looks really cool. Does it work with the DM500? Or, to put it in another way, how much memory does it require?

Also, will you replace the classic Enigma skin now?

cph says:

Nice. I only ordered my DM7025 a week ago and hope to get delivery tomorrow! What are you hoping to do with Qt on your DM ?

lusob says:

It’s cool!!
I also have compiled Qt 4.3.2 on a Nokia 700 (linux inside), you can watch a video with my qt application running on a Nokia 700 here:

Eren says:


Running Qt on dreambox is great! I want to buy a dreambox too but I couldn’t find enough document to be able to understand what dreambox actually do and while doing it, what applications it uses.

First of all, I think, compiling a new application (kernel, or whatever is) for dreambox should be the most important point. Could you give a document for it? (compiling new kernel, adding new feature, hacking it etc.)

I have found a tuxbox forum but it is all German, so I couldn’t understand anything πŸ™

Best Regards,

wysota says:

This is neat. Seems you can run Qt over almost anything. I’m waiting for Qt-enabled refrigerators and toilets…

ariya says:

Isn’t that PictureFlow?

Johan: Haven’t tried it on the DM500 (don’t have one, myself). But since the 500 also uses the tuxbox toolchain, I don’t see why it wouldn’t πŸ™‚ I would suspect I would have to run it over NFS,since the 500 doesn’t have room for a disk (I put Qt on the hdd in my 7000, not enough room in flash). Here’s an idea of how big the binaries for the 7000 are:

root@dreambox:/var/mnt/hdd/QtopiaCore-4.4.0> ll lib/libQt*.so.4
-rwxr-xr-x 1 root root 3165226 Nov 15 19:54 lib/libQtCore.so.4
-rwxr-xr-x 1 root root 11345932 Nov 15 19:55 lib/libQtGui.so.4
-rwxr-xr-x 1 root root 668429 Nov 15 19:55 lib/libQtNetwork.so.4
-rwxr-xr-x 1 root root 1546420 Nov 15 19:55 lib/libQtScript.so.4
-rwxr-xr-x 1 root root 321560 Nov 15 19:55 lib/libQtSql.so.4
-rwxr-xr-x 1 root root 464101 Nov 15 19:55 lib/libQtSvg.so.4
-rwxr-xr-x 1 root root 402839 Nov 15 19:55 lib/libQtXml.so.4

root@dreambox:/var/mnt/hdd/QtopiaCore-4.4.0> ll bin
-rwxr-xr-x 1 root root 71780 Nov 15 19:54 collidingmice
-rwxr-xr-x 1 root root 95486 Nov 15 22:11 pictureflow
-rwxr-xr-x 1 root root 62808 Nov 14 22:45 wiggly

cph: Andreas taught a few of us at the office to play Go, and I was thinking of writing a Go client that I could use from the couch πŸ™‚ It would be handy to read email and do calendar stuff too… Perhaps QtWebKit will let me write some sort of YouTube browser/player… who knows πŸ™‚

Ariya: Yes it is πŸ˜€

Eren: Building the toolchain for the dreambox was fairly straight forward, but slightly under-documented. What I did was to pull the dreambox branch from cvs.tuxbox.org:

$ mkdir ~/dreambox
$ cd ~/dreambox
$ CVS_RSH=ssh cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P -r dreambox .

Then I built just the toolchain:

$ cd ~/dreambox/cdk
$ less doc/INSTALL.dreambox.image.en
$ ./prepare dm7000
$ make checkout
$ make core

Notice that I only did ‘make core’ instead of ‘make image’ and the rest. I was only interested in the toolchain, not in creating a flash image. After the toolchain was built, I added ~/dreambox/root/cdk/bin to my path. The compiler is called powerpc-tuxbox-linux-gnu-gcc and powerpc-tuxbox-linux-gnu-g++. I added a mkspec to the Qt 4.4 snapshots for building on the DM7000, so all you would have to do to build a Qt 4.4 snapshot is:

$ ./configure -embedded powerpc -xplatform qws/linux-dm7000-g++
$ make sub-src

Eren says:

Thank you for reply.

Making image looks easier than I expected. So, you compiled Qt snapshot with “powerpc-tuxbox-linux-gnu-gcc”, and run it with dreambox. But I don’t get how you managed to run a Qt application on dreambox? Where did you upload your application and how did you start it?

Eren: I installed the dropbear sshd on my dreambox, so I just ssh into it πŸ™‚ (or just use telnet that comes with a stock image). All the binaries I just put on the harddrive and run them from there.

Commenting closed.

Get started today with Qt Download now