For your viewing pleasure:


The goal of this project is to build a linux box as small as possible, able to play mp3s and movies.

I have chosen the VIA epia motherboard with a 800Mhz VIA C3 cpu because of it's minimal size (17x17cm), and very low power requirements. It has all necessary component integrated (sound, network, video, tvout) and is very cheap.

I have only added some RAM to the motherboard, there was no need for additional cards or drives. The motherboard boots from the network using the PXE protocol which is available on the network adapter ROM. PXELINUX enables to boot linux, and the root filesystem is mounted with NFS. It took me some time to set up the boot server (tftp with a special config for PXE) on my openbsd file server, but it finally works fine.

I did not have to make a lot of modification to the default installation of Debian GNU/Linux to make it boot with this setup, the only pain was to create the XF86Config file because the trident chipset requires very specific configuration options to get tvout working.


All cases that currently exists for this motherboard are way too big (and expensive), they all have some room for at least a hard drive, a cdrom drive and a PCI card, this makes the box really big. So I am going to build my own case, I'm not sure at the moment but it will probably be made of plexiglass. Before designing the case I have to find all other components, at the moment I still need a very small power supply. I have ordered a 50W power supply, which is made of an external power pack and a small board that easily fits inside any case. Additionnaly, it has no fan which makes it not quiet but totally silent!

Waiting for the power supply, I'm testing the board with a standard ATX power supply (and without a case)


The box is controllable with a remote, this is the receiver at its experimental stage, I'm using the LIRC package. There's also a IR transmitter in this circuit which is not used in this project, that's why there are so many components


The box will also have an LCD screen (2x16 lines). I have installed the lcdmod driver which enables to display text on the LCD simply by writing to a device file. In this picture you can see it in action with the xmms plugin.


I am using a program called animenu to launch some apps with the remote control. It's a nice menu that displays on the tv screen. This menu program is used to launch some apps like a mp3 of video player. I have also added the possibility to power down or reboot the box. Picture of the system in action again:



I wanted to be able to control the box while the TV was turned off, so I've made some modifications to animenu for LCD support, you can see it in action in this video! The menu is just displayed on the LCD, as well as on the TV screen. I have also made some test with the festival voice synthesis program. The menu titles can be spoken as they are browsed.


I have added animenu the ability to sort menus. Menus and files are now displayed in alphanumerical order which looks definetely better. Use this patch if you are interested.


I have received the 50W power supply at last. It's even smaller than I expected so I'm really happy with it. I will start making plans of the plexi case which I will propably build during my next holidays. Please also note that I've replaced the fan with a 80mm very low noice fan.



I have finally built the case, using a simple saw and a dremel. This is the saw in action. Really easy to cut but the difficulty is to cut straight.


After gluing the parts together, this is what it looks like. The holes are for air circulation, and for the back connectors of course.


Another picture with the components inside... there is not much empty room :)


The case is now almost complete, there are still some parts to fix inside, like the IR receiver. And I have to add a power button :)

To be continued...

back to projects

Last update of this page: Mon Jun 12 21:30:02 2006