21st Century Digital Boy

21st Century Digital Wurst
XML Feed

13
Jan

Next up: Linux on a freaking coffee pot

(with pictures!)

Last night, me and Clockwork (who’s been commenting here occasionally) spent a couple of hours getting Linux on an old DBox2 (warning: German) he managed to get his hands on. The DBox is a set-top box, basically any of three DVB receivers manufactured by Nokia, Sagem and Philips and is being distributed mainly by Germany’s largest PayTV provider Premiere.

The process of getting Linux to run on it involves connecting it to a PC with a null modem and (!) a LAN cable and getting it to start up in a debugging mode. From there, you can overwrite the flash memory chip that holds its operating system (which is programmed in, I kid you not, Java) with basically anything you like. Seeing as how the CPU is a PowerPC, it didn’t take long for Linux to be ported. There’s a couple of different GUIs for it, although from what I’ve seen Neutrino (German again) is the most usable of them. The final feature set involves being able to watch streaming video via LAN, recording video from the TV tuner to a hard drive via LAN, mp3/ogg playback and a picture viewer. Basically, a much more full-featured home entertainment device than what it starts out as.

The problem is that getting the DBox to kick into debug mode in the first place is a rather crazy task. There’s numerous ways on how to do it, and which one you need to use depends on what manufacturer your DBox is from, which manufacturer the flash memory is from and how many flash chips there are in there, and possibly also the conjunction of Saturn’s moons in relation to which way a sack of rice is falling over in China.

They all have the same basic idea - reset the flash memory to factory state, start and fatally interrupt (by pulling the plug) a software update, disable the flash chips on bootup by grounding a certain pin and finally remove the write protection so you can slap on whatever you like. The problem is that how you can reset the flash memory depends on your manufacturer, when you should interrupt the software update depends on what software is on there and that actually grounding the pin on the flash chip doesn’t seem to work everywhere. We got good results by using the TV tuner’s shielding as “ground”.

Seeing as how neither of us had the slightest clue how exactly to do it and where to start, I must admit that I’m rather happy with how this turned out. It took us about ten to twenty minutes to find out how to erase the flash, about half an hour more until we got to the point of making the update fail, and from there it was a trip of a mere one and a half to two hours until we finally managed to disable the flash chips and get into debug mode. Oh, the sweet joy of glorious victory.

Somewhere in between there, we had to replace a failing multiway power connector in my room, because just when we had the glorious idea of making pizza, the on/off switch on it started flickering and happily crackling. This is not what you want to see in equipment that’s connected to a 230V mains line and four or five kitchen appliances.

Once we had our pizza, we made a backup of the original contents of the flash chips. This is important particularly because the flash chip also contains so-called µcodes, which are necessary for DVB reception in some way or another. From then, it was a matter of downloading an image of one of three different “distros” of the DBox Linux port, grabbing a small utility that would do most of the work for us and basically clicking “next” a few times and then noticing that the first distro we downloaded would spontaneously reboot without any proper explanation during bootup - which, by the way, was accompanied by the LCD on the dbox displaying a fake DOS prompt and the TV output a Windows Vista boot screen. Awesome.

So we flashed another distro on, booted it, set it up, accidentally selected Polish for the interface language, spent fifteen minutes finding the Language menu and switching it back to German via a rather laggy auto-switching interface and re-uploaded the µcode files. The “languages” this thing supports are crazy, too. four different dialects of German (Bavarian, two Swiss dialects and proper German), Dutch, English, French, Portuguese (but no Spanish), Italian, something weird and slavic-sounding, Russian and a bunch of other stuff.

From there, we were pretty much done and experimented around with it mounting NFS exports, tried the picture viewer and audio player, tried the video player, found out that attempting to play wmvs with it deadlocks the DBox, rebooted - something we generally did a lot in these few hours. A LOT. My recommendation: if you get a dbox and ever plan to use Linux on it, install a hard power switch into the mains lead so you don’t need to crawl around and pull and re-plug the plug all the time. Clockwork said he plans on doing that, too.

Either way, performance on this thing isn’t exactly mindblowing - loading a 640×480 image via the LAN (which also only does 10Mbps half-duplex even on the DBox2), scaling and displaying it does take a few seconds, as does a lot of other stuff. It sure as hell can’t keep up with a modded XBox in terms of media performance, but then its hardware is also a whole lot weaker than an XBox. The CPU in this thing is a blazingly fast 66MHz PowerPC, with 32 megabytes of RAM and 8 megs of flash memory for the operating system. I still have no freaking clue why this thing contains 32MB of RAM to supplement such a low-power CPU, but I guess it’s to get the original Java OS to work properly at all.

Related project to come: setting up a Linux-based server with VLC streaming so Clockwork can connect this beast to a TV and properly use it. This will also serve as a Linux introductory course for him. I don’t think that’s going to make a nearly as interesting blog post though, but we’ll see.

Leave a Reply

Powered by Wordpress 2YI.net Web Directory