NMM

Network-Integrated Multimedia Middleware



Status : MMBox : Hermes PC

Home
News
Status
.
Network
.
QoS
.
Mobile
.
MMBox
.
LCD
.
Streaming
.
amaroK
.
Phonon
.
Video Wall
.
NMM-Oppix
.
VCORE
Download
Publications
Gallery
FAQ
People
Contact
Links

NMM and Multimedia-Box running on a MSI Hermes PC
kindly provided by MSI, Germany

1. Introduction:

The usage of PCs in home entertainment environments is constantly growing. A so called home theater PC (HTPC) can replace most of the traditional home entertainment components, like TV tuner, video recorder and DVD/CD player and integrate them into one device. Controlled with a normal remote control a HTPC can become the central component of your home entertainment environment that interconnects the remaining components and stores your private audio/video collection. In addition it enables the user to execute several tasks concurrently, like watching TV, transcoding a video and programming the digital VCR. If the PC is connected to a local network or the internet audio and video data can be received from other systems as well.


The main requirements for such a HTPC is that it should be seamless integrated in the existing home entertainments environment, which requires a small and pleasing case. But the problem with small cases is, that special motherboards must be used and only a few extension cards can be installed. Therefore barebone PCs, like the barebone series from MSI,  are especially suited to build up such a home theater PC, because they come in a small case and the installed mainboard already provides the most important PC components, such as audio-, video card with TV output and a network adapter. To build up a running system only a CPU, a memory module and a hard drive is required. Together with our developed Multimedia-Box application, which is based on NMM and runs under Linux,  all requirements to build a home theater PC can be fulfilled. NMM and the Multimedia-Box were featured in the german journal c't, issue 22, on pages 232-237: "Ein Knoten für alle Fälle, NMM - Vernetztes Multimedia Home Entertainment mit Linux"  

On this web page we present our experiences in building such a home theater PC, based on the Hermes Barebone PC 651-P which was kindly provided by MSI and our Multimedia-Box application, developed with NMM. This page can be used as guidelines to make the correct decision which additional hardware components should be used and how to install and setup the system. We assume that the reader has experiences in building a PC, installing Linux and compiling source code under Linux.

2. Hardware:

2.1 Hardware requirements:

Barebone PC:
   As mentioned in the introduction we will use a barebone PC as a basis for our home theater PC. Because most of the components are on board, like VGA and sound card, we must ensure that they are supported under Linux. Therefore we use the Hermes Barebone PC 651-P, which was kindly provided by MSI. This PC provides an integrate solution where the most important components, such as audio, video card and a TV output, are provided on board and are supported under Linux as well. Furthermore it provides the most important connectors as seen in picture 1 and picture 2. The nice design and small dimension of the chassis allows an unobtrusive integration in the existing home entertainment environment. A full specification for this barebone PC, can be found here.
Picture 1: Front of the Hermes PC with all its connectors
Picture 2: Back of the Hermes PC with all its connectors


                  
CPU:
   The CPU that can be used depends on the mainboard. The Hermes PC supports socket 478 processors, so that only a Pentium 4 CPU can be installed. The required CPU speed strongly depends on the usage environment. For most multimedia playback applications, such as watching a TV or DVD, a cup with 1.4Ghz~2.0 Ghz is sufficient. But if several applications should run concurrently, such as watching DVD and transcoding some mpeg files, a CPU with more than 2.0 Ghz should be used. The lack of faster CPUs is that they normally produce more fan noise, which is often unacceptable if the PC is located in a living room. So again: It strongly depends on the user requirements to determine the 'best' CPU speed for the PC. Because the CPU noise is not so important in our environment, we use a 2.6 Ghz Pentium4.

Memory:
    The mainboard inside the Hermes PC offers two slots for DDR-Rams and allows a maximum ram size of 2GB (according to the compendium). For our applications we suppose at least 256MB Ram. But due to the low price of memory modules we recommend 512 MB.

Hard disk:
    The used hard disk must provide sufficient space to store the user's multimedia archive, such as mp3 files and TV recordings. Therefore we propose a large hard disk with 80~120 Gb space. To reduce hard disk noise a hard disk with 5400 rpm can be used.

DVD Drive:
    For watching DVD or listening music CD's a DVD drive is required. Instead of a simple DVD drive you can use a DVD burner because it allows you to backup recorded movies on DVD. Note that the Multimedia Box itself does not support burning a DVD but there exist other tools under Linux that can be used for this purpose. The only limitation for this device is that it must not be a slot-in drive (like some of the Pioneer devices), because the drive is hidden behind a panel which is opened by the drive's caddy.

TV-Card:
    To watch and record analog TV on the PC, a TV card is required. This card should offer an on board MPEG2 encoder to enable video compression in real time without using CPU speed. This is especially required if a slower CPU is used. The Hauppauge WinTV PVR 250/350 cards offer these feature and are supported under Linux and by the Multimedia Box. Furthermore a remote control, that is supported under Linux as well, is included in delivery. If digital TV is available over DVB, a DVB card is required. A list of supported DVB cards under Linux can be found here.

Floppy disk:
   
A floppy disk is not required, but might be useful in some cases ( e.g. to start a recovery system ). Therefore we also propose to install a 3,5" floppy disk.

Keyboard & mouse:
    Even though the PC should be controlled via a remote control, a keyboard and a mouse is required during installation or to (re)configure or update the system. Therefore we propose a wireless keyboard and mouse which can be hidden if they are not required. A wireless keyboard and mouse, like the Logitech Cordless Desktop, costs about 45.00€.

2.2 Hardware List:

After discussing the hardware requirements, we propose two different hardware configuration that can be used to build your own home theater PC. The first hardware list uses components that provides more capabilities, such as faster CPU and a DVD burner instead of a simple DVD player, whereas the second hardware list focus more on cheaper components. For our HTPC we use the components from the first hardware list. We get the prices mentioned in the hardware list from the internet shop Alternate at the 17.01.2004.

Components:
Hardware list 1
Price

Hardware list 2
Price
Barebone PC: Hermes Barebone PC 651-P  174.00€
                                    Hermes Barebone PC 651-P 
174.00€
CPU:
Intel Pentium4 2.66 Ghz
169.00€

Intel Pentium4 Celeron 2.0 Ghz
  64.00€
Memory module:
 1x  512 MB DDR Ram (PC 2700)
  74.00€

1x 256 MB DDR Ram (PC 2700)
  42.00€
Hard disk:
Maxtor 6Y120L0 120Gb
  89.00€

Maxtor 6Y080L0  80Gb     67.00€
DVD drive
NEC ND-1300A DVD +/-RW burner (black)
109.00€

TEAC DVD 516 drive (black)
   42.00€
TV Card Hauppauge WinTV PVR 350
189.00€

Hauppauge WinTV PVR 350
 189.00€
Sum:

 804.00€

Sum:
  578.00€


3 Hardware installation:

Even though the chosen Hermes PC, seen in picture 3, has a small chassis, it's internal structure is well designed and allows a simple and fast hardware installation. The most important steps such as installing CPU are well described in the manual. Therefore we only shortly summarize the hardware installation process in this section and illustrate it with some pictures.


Picture 3: The Hermes PC from MSI.

After removing the cover, the front panel bezel and the installed riser card a good access to the mainboard is enabled and the CPU, the memory module and the hard disc can be installed easily. First the CPU must be installed and the CPU cooler must be screwed on it as seen in picture 4. The CPU cooler is included in delivery and is especially designed for this case. After this the memory module can be installed in the first memory slot which is near the CPU as seen in picture 4 as well.


Picture 4: Put the included CPU cooler on the CPU and install the memory module.

Next the hard disk can be installed in the corresponding HDD tray as seen in picture 5. Special folded HDD cables must be used to connect the hard disk on the mainboard, which are included in delivery. Be careful with this step! The HDD cable and the power supply must be connected with the hard disk, before the disk is completely moved inside the HDD tray.

Installing the hard disk
Picture 5: Installing the hard disk

After these steps, the Hermes PC looks like in picture 6.


Picture 6: After installing the CPU, memory module and hard disk the Hermes PC looks like this.

Now the the floppy disk and the DVD drive can be screwed on the front panel bezel as seen in picture 7.

Picture 7: Screwing the floppy disk and the DVD drive on the front panel bezel.

After this, the HDD and FDD cable as well as the corresponding cables for the power supply must be connected with DVD drive and the floppy disk. Then the front panel bezel can be pushed inside the case again as seen in picture 8.


Picture 8: Installing the front panel bezel again.

Now the used TV card can be installed on the provided riser card in one of two PCI slots as seen in picture 9.


Picture 9: Putting the TV Card in one the available PCI slots on the raiser card.

After this the riser card can be installed in the Hermes PC as seen in picture 10 and the PC case can be closed again.


Picture 10: Installing the PCI raiser card with TV-Card again.


In a final step we must clamp the remote sensor on the PC. As seen in picture 11, we put the receiver in the left corner beside the floppy disk, to enable a good reception.
 Connecting the remote receive in front of the PC
Picture 11: Connecting the remote receiver in front of the PC.

To avoid dangling the receiver's cable,  we choose a simple solution. First we lay the cable along the case's side and fixate it with a sticky tape in the same color as our case, as seen in picture 12. Be careful, because the ventilation slots must not be covered. A more elegant solution, whereby the cable is laid through the PC and the remote sensor is integrated inside the front panel, is left to the hobbyist.


Picture 12: Fixate the cable with a sticky tape on the chassis. Don't cover the ventilation slots!

4 Software installation:

On our Hermes PC we installed a Debian Woody distribution with Linux kernel 2.4.21. Apart from the standard software components the following packages and driver must be installed.

Driver for the SiS video card:
    To use the on board SiS video card and to enable the TV output a special driver is required, that can be found on Thomas Winischhofer's homepage. Furthermore he provides binary packages for the Debian distribution which we use for our PC. A description how to install the required driver can be found here. After installing the driver the X server must be configured in dual head mode, which means that two different video outputs are used, the VGA and the TV output. Some examples for the corresponding XF86Config (or XF86Config-4) file here. For our computer we use the following XF86Config file, that should work for most other user as well. After installing the driver and configuring X11, the display should be appear on the TV output as well as on the VGA output.

Driver for the TV-card:
    To use the WinTV PVR 250/350 with the hardware MPEG encoder under Linux, the driver developed by the IvyTV project is required. Because the driver is still under development, you should use the latest CVS version that can be downloaded here. On our  PC we use a CVS checkout 18.09.2003 that can be downloaded here. After extracting the archive enter the ivytv/driver directory and type make and make install. Furthermore you should compile and install the utilities in ivytv/utils because the application test_ioctl can be used to configure the TV card. A detailed description how to compile this driver can be found in the IvyTV project's FAQ. Then you can load the modules ivtv and ivtv-i2c by calling 'insmod ivtv' and 'ivtv-i2c'. Now your TV card and the card's infrared remote receiver can be used under Linux.

LIRC:
    After installing the TV card's driver, the infrared remote control can be installed. To use the remote control from our Hauppauge's TV card the latest CVS version of LIRC is required. A description about how to access their CVS server located on Sourceforge can be found here. For our Hermes PC, we use a CVS version from the 1.12.2003, that can be downloaded here. If you not use the new dev-filesystem (devfs), that allocates required entries in the dev-directory dynamically, you must edit the file lirc_dev.c, located in the directory <lirc-sources>/drivers/lirc_dev/ and replace the code
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
#define LIRC_HAVE_DEVFS
#endif

with
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
/*#define LIRC_HAVE_DEVFS*/
#endif
Furthermore you have to (re)create the  /dev/lirc device by calling 'rm /dev/lirc' and 'mknod c 61 0 /dev/lirc' as user root.

    To install LIRC enter the directory with the lirc sources and call './autogen.sh' and 'configure'. In the appearing screen configure the driver to the Hauppauge TV cards and leave the screen by pressing 'Save configuration &  run configure'. After this type 'make' and 'make install' (make install must be called as user root) to compile and install the new driver. Finally you can load the new modules and start the lirc daemon by calling 'insmod lirc_dev', 'insmod lirc_i2c' and 'lircd'. To test your installation you can call 'more /dev/lirc'. If you press some buttons of the remote control some characters must be print to the console.

NMM:
    Finally NMM and the Multimedia box application must be installed. NMM requires the two libraries libpng and libjpeg, but normally these libraries are available after a standard installation of most Linux distributions. If not, you they must be installed. Corresponding Debian packages for the libpng can be found here and for the libjpeg here. Furthermore we use the pre-compiled binary packages of the latest NMM version (which is currently 0.4.1) that can be found on our download page. The source code of NMM is also available on this download page, so you can compile your own version of NMM as well. After downloading the NMM binary package or the source code, follow the corresponding installation instructions from this web page and finally start the application 'mmbox'. The application can now be controlled via the remote control as seen in the pictures below.
    If the Multimedia Box should start after login automatically, you have to write your own .xsession file, that must be copied in your home directory. The following .xsession file can be used as template. You must only set the NMM_DEV_DIR variable, which specifies the directory of the extracted NMM binary package. After this the Multimedia Box is started in a loop and can be stopped by pressing <ALT>-<CTRL>-<Backspace> (which kills the X-server)

Pictures from the Multimedia Box with different skins
Multimedia Box with the standard skin 'blue'
Multimedia Box with the skin 'blues'
Multimedia Box with the skin 'Las Vegas' Multimedia Box with the skin 'icon'
   
                                 
                                                         

Multimedia Box in action
Choose a video or audio file for playback.
Playback a video file.
Insert a DVD for playback.
Navigate through the DVD menu and start playback.
Watch the movie.
Start another task which will be executed during DVD playback.

                                          
                                    
                                
   

5 Links:

In this section the most relevant web pages for this project are listed.

[1] MSI, who kindly provides the Hermes PC.
[2] IvyTV project, who develops a driver for the WinTV PVR 250/350 cards.
[3] Thomas Winischhofer's homepage, who develops and provides driver for the SiS chipset used in the Hermes PC.