Personal tools
You are here: Home Linux MythTV CentOS 5.x as a MythTV frontend
 

CentOS 5.x as a MythTV frontend

Notes about install CentOS v5.2 as a MythTV frontend from 2008 (very very old)

There are plenty of MythTV distributions, but I couldn't find one that met my needs of:

  • Stable, and not requiring frequent upgrades
  • Support for iSCSI during installation
  • Support for digital sound output
  • Support for nVidia video output

 

What I don't need in a frontend distribution is:

  • The latest driver support
  • Support for analog TV cards
  • MythTV backend support

 

The stable, and not requiring frequent upgrades is all about the WAF. I have previously used Fedora based frontends, but relistically I don't have the time and equipment to rollout upgrades in a seamless way.

To keep the noise of the frontend to a minimum, no rotating media is present (excluding a  DVD player). I have used a USB based flash drive for '/boot'. For the root filesystem, the options seem to be NFS or iSCSI. For no good reason, I have chosen to go the iSCSI route. Exposing a LVM logical volume using IET from the backend server is very straightforward. Running this over commodotity GbE with 9k jumbo frames provides vastly more performance that is required for a front end root filesystem. The front end is also configured with no swap (but it does have 2Gbytes of RAM).

Given the machine is a frontend, no bleeding edge driver support is required. The backend server needs to support the latest DVB-T and DVB-S devices. I don't have any analog TV cards.

Hardware

  • Asus Nforce4 A8N-E motherboard
  • AMD X2 3800+ 
  • 2GB RAM
  • Gigabyte fanless 8400 GS video
  • Microsoft MCE remote control
  • Compact flash/SATA based root filesystem

Install the base operating system

Install CentOS using the v5.2 DVD media. Select advanced storage configuration to find the root filessystem device. Select the minimum number of packages that are practical, which still install gnome and X windows (I still managed to get around 800 packages).

Disable all unneeded services. Lock down ssh access to allow only non-root access, with public key authentication.

Root filesystem

The root filesystem is stored on a compact flash card, accessed via a SATA adapter. To reduce the wear on the compact flash card,

  • the root filesystem is mounted with 'noatime' and 'nodiratime'
  • temporary directories are backed by a tmpfs filesystem

 

ATRPMS

Install the atrpms repository for enterprise linux. Because the pgp key is not explicitly referred to in the .repo file, it must be manually imported into rpm (or the repo file could be modified to refer to the public key).

# rpm -Uvh http://dl.atrpms.net/all/atrpms-package-config-119-2.el5.x86_64.rpm
# rpm --import http://ATrpms.net/RPM-GPG-KEY.atrpms

Install the nvidia drivers from atrpms (the current version is 177.80)

# yum install nvidia-graphics nvidia-graphics177.80-kmdl-`uname -r`

Install MythTV-Suite

In theory the only repositories required to install the MyThTV suite are the CentOS base repo and the atrpms repo. However this results in three failed dependencies:

Error: Missing Dependency: perl(XML::Twig) >= 3.28 is needed by package xmltv-grabbers
Error: Missing Dependency: libFLAC.so.8()(64bit) is needed by package mythmusic
Error: Missing Dependency: PIL is needed by package mytharchive

There are updated/new RPM's in the atrpms-testing repo that satisfy this dependency, so while installing 'mythtv-suite' enable the atrpms-testing repo.

# yum install mythtv-suite --enablerepo=atrpms-testing lirc lirc-kmdl-`uname -r`

LIRC

The LIRC kernel modules were installed above, and this provides the lirc_mceusb2 kernel module.

# cp /usr/share/doc/lirc-0.8.4/remotes/mceusb/lircd.conf.mceusb /etc/lircd.conf
# chkconfig lircd on
# service lircd start

As the mythtv user

$ cp /usr/share/doc/mythtv-docs-0.21/contrib/configfiles/lircrc.native.example.mceusb2 .lircrc
$ $ cd .mythtv/
$ ln -s ../.lircrc

Desktop

Use Xfce as a desktop.

# yum groupinstall "XFCE-4.4"
# switchdesk xfce

Setup auto login as per this page

The 'mythttv' user gets created as part of the backend installation (because the whole MythTV suite was installed including the backend). This account is setup as a system account, with no shell. Change it to have a shell to allow logins.

# usermod -s /bin/bash mythtv

Edit '/etc/inittab', and add mingetty with auto-login. Disable the preferred display manager at runlevel 5.

# Run xdm in runlevel 5
# x:5:respawn:/etc/X11/prefdm -nodaemon
c7:12345:respawn:/sbin/mingetty --autologin=mythtv tty7

Edit ~mythtv/.bash_profile

if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty7 ]; then
while [ 1 == 1 ]
     do
          startx
          sleep 10
     done
fi

Edit ~mythttv/.xinitrc

xset -dpms s off
xsetroot -solid black
xfwm4 &
mythfrontend -l /tmp/mythfrontend.log 2>&1

 

 


Links

Appendices

 

Install alsa and nvidia drivers

# yum install alsa-driver nvidia-graphics \
    nvidia-graphics173.14.12-kmdl-2.6.18-92.el5-173.14.12-100.el5 \
    alsa-kmdl-2.6.18-92.el5-1.0.17-70.el5

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 alsa-driver             x86_64     1.0.17-70.el5    atrpms            152 k
 nvidia-graphics         x86_64     2:173.14.12-28   atrpms            3.2 k
Installing for dependencies:
 alsa-kmdl-2.6.18-92.el5  x86_64     1.0.17-70.el5    atrpms            1.6 M
 nvidia-graphics-devices  noarch     1.0-5.0.el5      atrpms            2.8 k
 nvidia-graphics-helpers  x86_64     0.0.26-27.el5    atrpms            5.7 k
 nvidia-graphics173.14.12  x86_64     1:173.14.12-100.el5  atrpms            3.3 M
 nvidia-graphics173.14.12-kmdl-2.6.18-92.el5  x86_64     1:173.14.12-100.el5  atrpms            2.6 M
 nvidia-graphics173.14.12-libs  x86_64     1:173.14.12-100.el5  atrpms            4.6 M
 nvidia-graphics9629-libs  x86_64     1:1.0_9629-82.el5  atrpms            3.3 M

Transaction Summary
=============================================================================
Install      9 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 16 M

install mythtv-suite

# yum install mythtv-suite --enablerepo=atrpms-testing

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 mythtv                  x86_64     0.21-192.el5     atrpms             13 k
Installing for dependencies:
 ImageMagick             x86_64     6.2.8.0-4.el5_1.1  base              3.3 M
 ImageMagick-perl        x86_64     6.2.8.0-4.el5_1.1  base              147 k
 MySQL-python            x86_64     1.2.1-1          base               84 k
 PIL                     x86_64     1.1.6-8.0.el5    atrpms-testing    428 k
 aalib                   x86_64     1.4-4_rc5.0.el5  atrpms             98 k
 arts                    x86_64     8:1.5.4-1        base              1.2 M
 atrpms                  noarch     71-1             atrpms             18 k
 avahi-qt3               x86_64     0.6.16-1.el5     base               17 k
 dvdauthor               x86_64     0.6.11-1.0.el5   atrpms            156 k
 faad2                   x86_64     2.6.1-8.el5      atrpms            196 k
 ffmpeg                  x86_64     0.4.9-26_r12135.el5  atrpms            196 k
 fftw                    x86_64     3.1.2-11.0.el5   atrpms            1.2 M
 fribidi                 x86_64     0.10.7-5.1       base               53 k
 gd                      x86_64     2.0.33-9.4.el5_1.1  base              156 k
 gdk-pixbuf              x86_64     1:0.22.0-25.el5  base              240 k
 giflib                  x86_64     4.1.3-7.1.el5.1  base               39 k
 glib                    x86_64     1:1.2.10-20.el5  base              144 k
 gmp                     x86_64     4.1.4-12.3_2.el5  atrpms-testing    202 k
 gtk+                    x86_64     1:1.2.10-56.el5  base              954 k
 imlib2                  x86_64     1.3.0-6.0.el5    atrpms            629 k
 jack-audio-connection-kit  x86_64     0.102.20-3.0.el5  atrpms            135 k
 kakasi                  x86_64     2.3.4-21.0.el5   atrpms             77 k
 kakasi-dict             x86_64     2.3.4-21.0.el5   atrpms            904 k
 kdelibs                 x86_64     6:3.5.4-16.el5.centos  base               18 M
 kdnssd-avahi            x86_64     0.1.3-0.1.20060713svn.fc6  base               44 k
 lcms                    x86_64     1.15-1.2.2       base              170 k
 libFLAC8                x86_64     2:1.2.1-1_14.el5  atrpms-testing    144 k
 libXvMC                 x86_64     1.0.2-2.1        base               18 k
 liba52_0                x86_64     0.7.4-7.0.1.el5  atrpms             21 k
 libavcodec51            x86_64     0.4.9-26_r12135.el5  atrpms            1.6 M
 libavdevice52           x86_64     0.4.9-26_r12135.el5  atrpms             20 k
 libavformat52           x86_64     0.4.9-26_r12135.el5  atrpms            280 k
 libavutil49             x86_64     0.4.9-26_r12135.el5  atrpms             25 k
 libcdaudio              x86_64     0.99.12p2-10.el5  atrpms             40 k
 libdc1394_22            x86_64     2.0.2-11.el5     atrpms             77 k
 libdirect-1.0_0         x86_64     1.0.1-15.el5     atrpms             39 k
 libdirectfb-1.0_0       x86_64     1.0.1-15.el5     atrpms            184 k
 libdvdcss               x86_64     1.2.9-3.0.el5    atrpms             42 k
 libdvdread              x86_64     0.9.7-4.0.el5    atrpms             66 k
 libfaac0                x86_64     1.26-3.el5       atrpms             37 k
 libfame                 x86_64     0.9.1-4.0.el5    atrpms            143 k
 libfreebob              x86_64     1.0.0-3.0.el5    atrpms            154 k
 libfusion-1.0_0         x86_64     1.0.1-15.el5     atrpms             18 k
 liblzo2_2               x86_64     2.03-6.el5       atrpms             45 k
 libmad0                 x86_64     0.15.1b-3.0.el5  atrpms             61 k
 libmng                  x86_64     1.0.9-5.1        base              158 k
 libmp3lame0             x86_64     3.98.2-18.el5    atrpms            138 k
 libmpeg2_0              x86_64     0.4.1-3.0.el5    atrpms             41 k
 libmpeg2convert0        x86_64     0.4.1-3.0.el5    atrpms             12 k
 libmpeg3                x86_64     1.7-6            atrpms            102 k
 libmyth-0.21_0          x86_64     0.21-192.el5     atrpms            1.2 M
 libmythavcodec-0.21_0   x86_64     0.21-192.el5     atrpms            1.4 M
 libmythavformat-0.21_0  x86_64     0.21-192.el5     atrpms            276 k
 libmythavutil-0.21_0    x86_64     0.21-192.el5     atrpms             32 k
 libmythfreemheg-0.21_0  x86_64     0.21-192.el5     atrpms            200 k
 libmythlivemedia-0.21_0  x86_64     0.21-192.el5     atrpms            292 k
 libmythtv-0.21_0        x86_64     0.21-192.el5     atrpms            4.2 M
 libmythui-0.21_0        x86_64     0.21-192.el5     atrpms            250 k
 libmythupnp-0.21_0      x86_64     0.21-192.el5     atrpms            265 k
 libpostproc51           x86_64     0.4.9-26_r12135.el5  atrpms             22 k
 libquicktime0           x86_64     1.0.3-23.el5     atrpms            221 k
 libswscale0             x86_64     0.4.9-26_r12135.el5  atrpms             62 k
 libvisual               x86_64     0.4.0-5.el5      atrpms            149 k
 libwmf                  x86_64     0.2.8.4-10.1     base              821 k
 libx264_54              x86_64     svn20070414_2245-4.0.el5  atrpms            208 k
 libx264_60              x86_64     0.60-6_20080626.2245.el5  atrpms            215 k
 libxvidcore4            x86_64     1.1.3-11.el5     atrpms            456 k
 lirc-lib                x86_64     0.8.2-68.el5     atrpms             17 k
 mikmod                  x86_64     3.1.6-38.1       base              205 k
 mjpegtools              x86_64     1:1.9.0-16_rc3.el5  atrpms            874 k
 mplayer                 x86_64     4:1.0-63_rc2.el5  atrpms             13 M
 mplayer-fonts           noarch     4:1.0-7.at       atrpms            1.0 M
 mx                      x86_64     2.0.6-2.2.2      base              564 k
 mysql                   x86_64     5.0.45-7.el5     base              4.2 M
 mysql-server            x86_64     5.0.45-7.el5     base              9.7 M
 mytharchive             x86_64     0.21-192.el5     atrpms             13 M
 mythbrowser             x86_64     0.21-192.el5     atrpms            107 k
 mythcontrols            x86_64     0.21-192.el5     atrpms             86 k
 mythflix                x86_64     0.21-192.el5     atrpms            123 k
 mythgallery             x86_64     0.21-192.el5     atrpms            225 k
 mythgame                x86_64     0.21-192.el5     atrpms            174 k
 mythmovies              x86_64     0.21-192.el5     atrpms             91 k
 mythmusic               x86_64     0.21-192.el5     atrpms            863 k
 mythnews                x86_64     0.21-192.el5     atrpms            128 k
 mythphone               x86_64     0.21-192.el5     atrpms            434 k
 mythplugins             x86_64     0.21-192.el5     atrpms             20 k
 myththemes              noarch     0.21-139         atrpms             14 M
 mythtv-backend          x86_64     0.21-192.el5     atrpms            736 k
 mythtv-docs             x86_64     0.21-192.el5     atrpms            637 k
 mythtv-frontend         x86_64     0.21-192.el5     atrpms            2.8 M
 mythtv-setup            x86_64     0.21-192.el5     atrpms            101 k
 mythtv-themes           x86_64     0.21-192.el5     atrpms            5.4 M
 mythvideo               x86_64     0.21-192.el5     atrpms            1.1 M
 mythweather             x86_64     0.21-192.el5     atrpms            1.0 M
 mythweb                 x86_64     0.21-192.el5     atrpms            1.0 M
 mythzoneminder          x86_64     0.21-192.el5     atrpms            272 k
 perl-Archive-Zip        noarch     1.16-1.2.1       base              138 k
 perl-Class-MethodMaker  x86_64     2.08-6.0.el5     atrpms            563 k
 perl-Compress-Zlib      x86_64     1.42-1.fc6       base               52 k
 perl-DBD-MySQL          x86_64     3.0007-1.fc6     base              147 k

 perl-DBI                x86_64     1.52-1.fc6       base              605 k
 perl-DateManip          noarch     5.44-1.2.1       base              144 k
 perl-File-Slurp         noarch     9999.12-2.el5    atrpms             30 k
 perl-HTML-Parser        x86_64     3.55-1.fc6       base               92 k
 perl-HTML-TableExtract  noarch     1.08-6.0.el5     atrpms             32 k
 perl-HTML-Tagset        noarch     3.10-2.1.1       base               15 k
 perl-HTML-Tree          noarch     3.18-6.0.el5     atrpms            204 k
 perl-HTTP-Cache-Transparent  noarch     1.0-4.el5        atrpms             14 k
 perl-IO-stringy         noarch     2.110-8.0.el5    atrpms             70 k
 perl-Image-Size         noarch     3.01-1.el5       atrpms             37 k
 perl-Lingua-Preferred   noarch     0.2.4-3.0.el5    atrpms             10 k
 perl-MIME-Lite          noarch     3.01-5.0.el5     atrpms             65 k
 perl-MythTV             x86_64     0.21-192.el5     atrpms             35 k
 perl-SOAP-Lite          noarch     0.69-5.0.el5     atrpms            349 k
 perl-Term-ProgressBar   noarch     2.05-5.0.el5     atrpms             17 k
 perl-TermReadKey        x86_64     2.30-3.0.el5     atrpms             30 k
 perl-Text-Kakasi        x86_64     2.04-3.0.el5     atrpms             30 k
 perl-TimeDate           noarch     1:1.16-5.el5     base               32 k
 perl-Tk                 x86_64     804.027-12.0.el5  atrpms            2.5 M
 perl-Tk-TableMatrix     x86_64     1.2-17.0.el5     atrpms            126 k
 perl-URI                noarch     1.35-3           base              116 k
 perl-Unicode-UTF8simple  noarch     1.06-2.0.el5     atrpms             49 k
 perl-WWW-Mechanize      noarch     1.16-4.0.el5     atrpms             89 k
 perl-XML-LibXML         x86_64     1.58-5.0.el5     atrpms-testing    229 k
 perl-XML-LibXML-Common  x86_64     0.13-8.2.2       base               16 k
 perl-XML-NamespaceSupport  noarch     1.09-1.2.1       base               15 k
 perl-XML-Parser         x86_64     2.34-6.1.2.2.1   base              210 k
 perl-XML-SAX            noarch     0.14-5           base               75 k
 perl-XML-Simple         noarch     2.14-8.0.el5     atrpms-testing     67 k
 perl-XML-Twig           noarch     3.29-11.el5      atrpms-testing    179 k
 perl-XML-Writer         noarch     0.600-10.0.el5   atrpms             21 k
 perl-XMLTV              noarch     0.5.51-76.1.el5  atrpms            154 k
 perl-libwww-perl        noarch     5.805-1.1.1      base              376 k
 php                     x86_64     5.1.6-20.el5_2.1  updates           1.2 M
 php-cli                 x86_64     5.1.6-20.el5_2.1  updates           2.2 M
 php-common              x86_64     5.1.6-20.el5_2.1  updates           155 k
 php-mysql               x86_64     5.1.6-20.el5_2.1  updates            86 k
 php-pdo                 x86_64     5.1.6-20.el5_2.1  updates            63 k
 python-MythTV           x86_64     0.21-192.el5     atrpms             27 k
 qt                      x86_64     1:3.3.6-23.el5   base              3.6 M
 qt-MySQL                x86_64     1:3.3.6-23.el5   base               55 k
 qt3                     noarch     3.3.3-2          atrpms            1.9 k
 qt3-MySQL               noarch     3.3.3-2          atrpms            1.6 k
 svgalib                 x86_64     1.9.25-3.0.el5   atrpms            443 k
 taglib                  x86_64     1.4-5.1.0.el5    atrpms            135 k
 tk                      x86_64     8.4.13-5.el5_1.1  base              901 k
 transcode               x86_64     1.0.6-36.el5     atrpms            4.0 M
 xmltv                   noarch     0.5.51-76.1.el5  atrpms            139 k
 xmltv-grabbers          noarch     0.5.51-76.1.el5  atrpms            342 k
 xmltv-gui               noarch     0.5.51-76.1.el5  atrpms             25 k
 xmms-libs               x86_64     1:1.2.11-36.99_8.el5  atrpms            350 k

Transaction Summary
=============================================================================
Install    152 Package(s)
Update       0 Package(s)
Remove       0 Package(s)

Total download size: 135 M
Is this ok [y/N]:

 

atrpms repo file

#
#
[atrpms]
name=Red Hat Enterprise Linux 5 - x86_64 - ATrpms
baseurl=http://dl.atrpms.net/el5-x86_64/atrpms/stable
failovermethod=priority
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1

#
# requires stable
#
[atrpms-testing]
name=Red Hat Enterprise Linux 5 - x86_64 - ATrpms testing
baseurl=http://dl.atrpms.net/el5-x86_64/atrpms/testing
failovermethod=priority
enabled=0
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1


#
# requires stable and testing
#
[atrpms-bleeding]
name=Red Hat Enterprise Linux 5 - x86_64 - ATrpms bleeding
baseurl=http://dl.atrpms.net/el5-x86_64/atrpms/bleeding
failovermethod=priority
enabled=0
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms
gpgcheck=1
Document Actions