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
- http://schdav.org/?p=58
- http://wilsonet.com/mythtv/fcmyth.php
- http://mythtv.org/wiki/index.php/Configuring_Digital_Sound_with_AC3_and_SPDIF
- http://alsa.opensrc.org/index.php/DigitalOut
- Ozzie ATRPMS mirrorhttp://mirror.dknss.com/atrpms/
- http://www.netreveal.com/ddalton/2007/11/mythtv_and_centos_gnome_autolo.html
- http://lxr.linux.no/linux/Documentation/filesystems/tmpfs.txt
- http://ubuntuforums.org/showthread.php?t=31310
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