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.

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.

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.
|