HTPC on Debian

Project Requirements

The goal of this project was to build a multimedia center using an old computer. The requirements are very basic: I wanted something to read TV shows, movies or internet radio without having to enter complex command lines. The setup has to be basic and easy to use.

I had no old computer to reuse, so, I bought a second-hand one with the following hardware:

  • Thermaltake Mozart VC400SNS case see specs
  • ASUS M2A-VM HDMI motherboard with ATI integrated graphicssee specs
  • Athlon X64 5000+
  • 8Gb compact flash (CF) for the system. To be used with the SATA, I used a CF/SATA adapter (you can buy such an adapter on ebay for a cheap price).
  • Western Digital 1To to store data

Software

For the OS, the computer runs Debian with the following software (everything is available as a debian package.

  • xbmc for video watching and audio listening. It is available as Debian package on debian multimedia
  • To control the computer with the remote from the Mozart case, I use LIRC
  • To display information on the LCD screen of the computer case, I use lcdproc

LIRC configuration

First, install the lirc and lirc-modules-source packages. Then, you need to build the lirc modules. Have a look at the file /usr/share/doc/lirc-modules-source and use module-assistant to build the modules. Then, make sure the lirc_imon module is loaded at startup. For that, edit /etc/modules and add the following line :

   lirc_imon

The lirc_imon module is used to control the remote but also to display text on the LCD display using the lcdproc package.

/etc/lirc/lircd.conf

To be able to use the remote control, you have to edit this file. Put the following content:

begin remote

  name     iMON-PAD
  bits           32
  eps            30
  aeps          100

  one             0     0
  zero            0     0
  gap          235965
  min_repeat      1
  toggle_bit      0


      begin codes
          AppExit                  0x288195B7
          Record                   0x298115B7
          Play                     0x2A8115B7
          SlowMotion               0x29B195B7
          Rewind                   0x2A8195B7
          Pause                    0x2A9115B7
          FastForward              0x2B8115B7
          PrevChapter              0x2B9115B7
          Stop                     0x2B9715B7
          NextChapter              0x298195B7
          Esc                      0x2BB715B7
          Eject                    0x299395B7
          AppLauncher              0x29B715B7
          MultiMon                 0x2AB195B7
          TaskSwitcher             0x2A9395B7
          Mute                     0x2B9595B7
          Vol+                     0x28A395B7
          Vol-                     0x28A595B7
          Ch+                      0x289395B7
          Ch-                      0x288795B7
          Timer                    0x2B8395B7
          1                        0x28B595B7
          2                        0x2BB195B7
          3                        0x28B195B7
          4                        0x2A8595B7
          5                        0x299595B7
          6                        0x2AA595B7
          7                        0x2B9395B7
          8                        0x2A8515B7
          9                        0x2AA115B7
          0                        0x2BA595B7
          ShiftTab                 0x28B515B7
          Tab                      0x29A115B7
          MyMovie                  0x2B8515B7
          MyMusic                  0x299195B7
          MyPhoto                  0x2BA115B7
          MyTV                     0x28A515B7
          Bookmark                 0x288515B7
          Thumbnail                0x2AB715B7
          AspectRatio              0x29A595B7
          FullScreen               0x2AA395B7
          MyDVD                    0x29A295B7
          Menu                     0x2BA385B7
          Caption                  0x298595B7
          Language                 0x2B8595B7
          MouseKeyboard            0x299115B7
          SelectSpace              0x2A9315B7
          MouseMenu                0x28B715B7
          MouseRightClick          0x688481B7
          Enter                    0x28A195B7
          MouseLeftClick           0x688301B7
          WindowsKey               0x2B8195B7
          Backspace                0x28A115B7
       Up              0x6902F9B7
       Right           0x68C281B7
       Down            0x6882C1B7
       Left            0x6AFA81B7 
      end codes

end remote 

Also, make sure that the /etc/lirc/hardware.conf file contains the following line: DEVICE="/dev/lirc0". As the lirc software creates the special device /dev/lirc0 and not /dev/lirc, you have to change it and specify the right special file.

XBMC configuration

XBMC plugins

This website contains many add-ons and plugins to play french TV shows such as the one on France 2, Canal + and so on.

Webradio

This archive contains file with french radio that can be used directly by XBMC.

The $HOME/.xbmc/userdata/Lircmap.xml

To be able to use the remote controller with lirc, you need to edit the Lircmap.xml file. Put the following content.

        
                Power
                Record
                Play
                Rewind
                Pause
                Stop
                FastForward
                Left
                Right
                Up
                Down
                Enter
                Ch+
                Ch-
                Esc
                Backspace

Multimon

                
                SelectSpace
                NextChapter
                PrevChapter
                FullScreen
                MultiMon
                Vol+
                Vol-
                Mute
                MyMovie
                MyMusic
                MyPhoto
                MyTV
                1
                2
                3
                4
                5
                6
                7
                8
                9
                0
        

LCD proc configuration

Edit /etc/LCDd.conf and change the Driver= line. It should look like Driver=imon. In addition, the special file to be created is called /dev/lcd1. So, make sure the configuration file contains the following line: Device=/dev/lcd1.

Then, change the permission on the special file /dev/lcd1 to be used to the LCDd user. Another solution consists in using the root account to run the daemon but it is not safe. In that case, put the following line in the /etc/LCDd.conf: User=root.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s