Install MythTV Frontend v27.5 on Centos v7.1 (scrpms)
Old notes from a previous install from 2016.
These are notes on installing MythTV frontend on a low end old AMD frontend, with a nVidia graphics card, a Microsoft remote and NFS for video. The MythTV backend and MySQL/MariaDB database server run on independent virtual machines (not covered by these notes).
This install was done while ATrpms was down (with the possibility that it may not return). I had a local copy of the ATrpms mirror I used for dependencies.
Steps
- Install base machine (CentOS 7)
- Install nVidia graphics driver
- Install MythTV frontend
- Add a mythtv user that auto-logins in and runs mythtv frontend
- Disable screen savers
- Add an NFS share with videos
- Configure sound via HDMI
Install the base operating system with gnome and setup network connectivity.
Set the hostname in '/etc/hostname':
cobalt.lucidsolutions.co.nz
Disable network manager on the main network interface:
NAME=enp3s0 UUID=f4889efb-8b0b-4b2b-84dc-f12c5ac3268e HWADDR=2C:53:4A:00:3B:C8 TYPE=Ethernet BOOTPROTO=none NM_CONTROLLED=no ONBOOT=yes MTU=9000 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPADDR=10.20.12.6 PREFIX=24 GATEWAY=10.20.12.1 IPV6INIT=yes IPV6_AUTOCONF=no IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6ADDR=2001:4428:225:c::6/64 IPV6ADDR_SECONDARIES=fd0c:898b:471c:c::6/64 IPV6_DEFAULTGW=fe80::1 DNS1=10.20.2.5 DNS2=10.20.12.2 DNS3=10.20.0.1 DNS4=fd0c:898b:471c:c::2 DNS5=fd0c:898b:471c:2::5
Lock down ssh.
Repositories
Setup the following RPM repositories:
- scrpms (mythtv)
- atrpms (dead)
- epel (dependency)
- elrepo (nVidia driver)
# rpm -Uvh http://mirror.xnet.co.nz/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm # rpm -Uvh http://dl.atrpms.net/all/atrpms-repo-7-7.el7.x86_64.rpm # yum install http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Create a local repo file for scrpms in '/etc/yum.repos.d/scrpms.repo':
[scrpms] name=A CentOS Build of MythTV v0.27 by Stephen Collier baseurl=http://scrpms.net/pub/RPMS/el7/$basearch/ ftp://167.160.167.42/pub/RPMS/el7/$basearch/ http://share.lucidsolutions.co.nz/scrpms/RPMS/el7/$basearch/ gpgkey=http://scrpms.net/pub/RPM-GPG-KEY.scrpms enabled=1 gpgcheck=1
Note: At the time of writing ATRpms was down, so I used my local (private) mirror:
# rpm -Uvh http://mirror.lucidsolutions.co.nz/atrpms/el7/x86_64/stable/atrpms-repo-7-7.el7.x86_64.rpm
Install
yum install kmod-nvidia
yum remove xorg-x11-glamor
# yum install mythtv-frontend
Disable nouvea driver
Add a blacklist command to the linux command line in '/etc/default/grub':
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet rdblacklist=nouveau"
And regenerate the grub configuration:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Frontend User
Add a user for the front-end.
# adduser mythtv # passwd mythtv
Automatic lauch
Auto login
Edit '/etc/gdm/custom.conf' to configure the mythtv user to automatically log in:
[daemon]
AutomaticLoginEnable=true
AutomaticLogin=mythtv
Auto start
Create a startup script that will lauch (and re-lauch if it crashes) the mythfrontend program as '/usr/local/bin/start-mythtvfrontend'. Tweak this up as required to display screen savers etc. Due to bug 12034 I have to display the http proxy settings otherwise recordings won't play.
#!/bin/bash # see https://code.mythtv.org/trac/ticket/12034 export http_proxy= export https_proxy= export ftp_proxy= export no_proxy= xset -dpms s off xsetroot -solid black while ( ! $( mythfrontend > /tmp/mythfrontend.log 2>&1 ) ) ; do echo "Restart in a few seconds" sleep 5s done
Create a gnome autostart desktop file '~mythtv/.config/autostart/mythtv-frontend.desktop':
[Desktop Entry] Type=Application Name=MythTV Frontend Exec=/usr/local/bin/start-mythtvfrontend Icon=mythfrontend.png Categories=X-Red-Hat-Extra;Application;AudioVideo;
Videos
Mount the collection of video using NFS. This is made available over a storage VLAN. Add a network sub-interface configuration file '/etc/sysconfig/network-scripts/ifcfg-enp3s0.200':
VLAN=yes DEVICE=enp3s0.200 TYPE=Ethernet ONBOOT=yes BOOTPROTO=none NM_CONTROLLED=no # IPv4 IPADDR=10.20.100.5 NETMASK=255.255.255.0 MTU=9000 # IPv6 IPV6ADDR=fd0c:898b:471c:0064::5/64 IPV6_MTU=9000
Create a directory for the NFS mount
# mkdir /mnt/mp4
Add an entry to '/etc/fstab':
10.20.100.2:/mnt/puddle/ds-video /mnt/mp4 nfs4 ro 0 0
Verify that the NFS mount is operational (mount -a)
Remote control
Add Linux device input support
# yum install v4l-utils lirc lirc-remotes iguanaIR libcecNote: '
iguanaIR' is an unexpressed library dependency.
/bin/cp /usr/share/lirc-remotes/devinput/lircd.conf.devinput /etc/lirc/lircd.conf systemctl enable lircd systemctl start lircd
Disable unused services
# for S in ModemManager cups firewalld bluetooth ; do systemctl stop $S ; systemctl stop $S ; done
Links
- http://linuxsysconfig.com/2014/09/nvidia-drivers-on-centos-7/
- http://www.dedoimedo.com/computers/centos-7-nvidia.html
- http://elrepo.org/tiki/kmod-nvidia
- Linux Device Input
- http://www.lirc.org/html/configuration-guide.html
- http://kodi.wiki/view/HOW-TO:Set_up_an_MCE_remote_control_in_Linux
- http://kodi.wiki/view/Creating_and_using_edid.bin_via_xorg.conf
Appendices
yum install
Dependencies Resolved ============================================================================================================================= Package Arch Version Repository Size ============================================================================================================================= Installing: mythtv-frontend x86_64 0.27.5-1.el7 scrpms 8.1 M nvidia-graphics352.21 x86_64 352.21-176.el7 scrpms 3.7 M Installing for dependencies: ImageMagick x86_64 6.7.8.9-10.el7 base 2.1 M MySQL-python x86_64 1.2.3-11.el7 base 82 k OpenEXR-libs x86_64 1.7.1-7.el7 base 217 k aalib-libs x86_64 1.4.0-0.22.rc5.el7 epel 65 k arts x86_64 8:1.5.10-26.el7 epel 969 k audiofile x86_64 1:0.3.6-4.el7 base 153 k avahi-compat-libdns_sd x86_64 0.6.31-14.el7 base 33 k crystalhd-firmware noarch 3.10.0-4.el7 epel 1.1 M dirac-libs x86_64 1.0.2-14.el7 epel 256 k enca x86_64 1.14-1.el7 epel 106 k esound-libs x86_64 1:0.2.41-12.el7 epel 78 k fftw-libs-single x86_64 3.3.3-8.el7 base 766 k freeglut x86_64 2.8.1-3.el7 base 182 k fribidi x86_64 0.19.4-6.el7 base 63 k glib x86_64 1:1.2.10-41.el7 epel 137 k google-droid-sans-fonts noarch 20100409-1 atrpms 2.5 M gtk+ x86_64 1:1.2.10-77.el7 epel 841 k ilmbase x86_64 1.0.3-7.el7 base 100 k jack-audio-connection-kit x86_64 1.9.9.5-4.el7 epel 522 k kde-filesystem x86_64 4-47.el7 base 48 k libXScrnSaver x86_64 1.2.2-6.1.el7 base 24 k libXaw x86_64 1.0.11-6.1.el7 base 189 k liba52_0 x86_64 0.7.4-7.0.1.el7 atrpms 27 k libass x86_64 0.12.1-1.el7 epel 80 k libavcodec55 x86_64 2.2.4-67.sl7 scrpms 3.3 M libavformat55 x86_64 2.2.4-67.sl7 scrpms 682 k libavutil52 x86_64 2.2.4-67.sl7 scrpms 119 k libcaca x86_64 0.99-0.17.beta17.el7 epel 216 k libcrystalhd x86_64 3.10.0-4.el7 epel 52 k libdca0 x86_64 0.0.5-4.el7 atrpms 91 k libdirect-1.7_4 x86_64 1.7.4-17.sl7 scrpms 62 k libdirectfb-1.7_4 x86_64 1.7.4-17.sl7 scrpms 399 k libfaac0 x86_64 1.28-6.el7 atrpms 36 k libfaad2 x86_64 1:2.7-18.el7 atrpms 142 k libffado x86_64 2.1.0-4.el7 epel 650 k libfusion-1.7_4 x86_64 1.7.4-17.sl7 scrpms 28 k libmad0 x86_64 0.15.1b-4.el7 atrpms 54 k libmikmod x86_64 3.2.0-21.el7 epel 138 k libmng x86_64 1.0.10-14.el7 base 171 k libmp3lame0 x86_64 3.99.3-23.el7 atrpms 131 k libmpeg2_0 x86_64 0.5.1-5.el7 atrpms 38 k libmpeg2convert0 x86_64 0.5.1-5.el7 atrpms 12 k libmyth-0.27_0 x86_64 0.27.5-1.el7 scrpms 1.6 M libmythavcodec54 x86_64 0.27.5-1.el7 scrpms 2.7 M libmythavdevice54 x86_64 0.27.5-1.el7 scrpms 55 k libmythavfilter3 x86_64 0.27.5-1.el7 scrpms 301 k libmythavformat54 x86_64 0.27.5-1.el7 scrpms 650 k libmythavutil52 x86_64 0.27.5-1.el7 scrpms 109 k libmythbase-0.27_0 x86_64 0.27.5-1.el7 scrpms 537 k libmythfreemheg-0.27_0 x86_64 0.27.5-1.el7 scrpms 170 k libmythhdhomerun-0.27_0 x86_64 0.27.5-1.el7 scrpms 60 k libmythmetadata-0.27_0 x86_64 0.27.5-1.el7 scrpms 322 k libmythnzmqt0 x86_64 0.27.5-1.el7 scrpms 63 k libmythpostproc52 x86_64 0.27.5-1.el7 scrpms 69 k libmythprotoserver-0.27_0 x86_64 0.27.5-1.el7 scrpms 100 k libmythqjson0 x86_64 0.27.5-1.el7 scrpms 94 k libmythservicecontracts-0.27_0 x86_64 0.27.5-1.el7 scrpms 99 k libmythswresample0 x86_64 0.27.5-1.el7 scrpms 66 k libmythswscale2 x86_64 0.27.5-1.el7 scrpms 118 k libmythtv-0.27_0 x86_64 0.27.5-1.el7 scrpms 3.1 M libmythui-0.27_0 x86_64 0.27.5-1.el7 scrpms 684 k libmythupnp-0.27_0 x86_64 0.27.5-1.el7 scrpms 266 k libmythzmq1 x86_64 0.27.5-1.el7 scrpms 105 k libnemesi x86_64 0.7.0-0.4.20110215git.sl7 scrpms 119 k libopencore-amrnb0 x86_64 0.1.3-1.el7 atrpms 93 k libopencore-amrwb0 x86_64 0.1.3-1.el7 atrpms 46 k libpostproc52 x86_64 2.2.4-67.sl7 scrpms 45 k libquicktime0 x86_64 1.2.4-32.el7 scrpms 183 k librtmp0 x86_64 2.3-1.el7 atrpms 42 k libva-glx1 x86_64 1.3.1-11.el7 atrpms 15 k libva-x11_1 x86_64 1.3.1-11.el7 atrpms 16 k libva1 x86_64 1.3.1-11.el7 atrpms 37 k libwmf-lite x86_64 0.2.8.4-39.el7 base 66 k libx264_142 x86_64 0.142-20_20140406.2245.el7 atrpms 372 k libxavs1 x86_64 0.1.51-2.el7 atrpms 131 k libxml++ x86_64 2.37.1-1.el7 epel 99 k libxvidcore4 x86_64 1.3.2-15.el7 atrpms 178 k lirc-libs x86_64 0.9.1a-4.el7 epel 39 k live x86_64 2012.02.04-1.el7 atrpms 292 k lksctp-tools x86_64 1.0.13-3.el7 base 87 k mailcap noarch 2.1.41-2.el7 base 31 k mjpegtools x86_64 1:2.0.0-22.el7 atrpms 715 k mpg123 x86_64 1.20.1-1.sl7 scrpms 275 k mplayer x86_64 4:1.2-94_snap20140413.sl7 scrpms 14 M mplayer-fonts noarch 4:1.0-7.at atrpms 1.0 M mplayer-skins noarch 4:1.0-16 atrpms 14 M mythtv-common x86_64 0.27.5-1.el7 scrpms 639 k mythtv-themes x86_64 0.27.5-1.el7 scrpms 12 M nas-libs x86_64 1.9.3-6.sl7 scrpms 75 k netembryo x86_64 0.1.1-4.sl7 scrpms 24 k nvidia-graphics-devices noarch 1.0-6.el7 atrpms 2.5 k nvidia-graphics-helpers x86_64 0.0.30-33.el7 atrpms 6.4 k nvidia-graphics352.21-kmdl-3.10.0-229.4.2.el7 x86_64 352.21-176.el7 scrpms 3.6 M nvidia-graphics352.21-libs x86_64 352.21-176.el7 scrpms 39 M openal-soft x86_64 1.16.0-2.el7 epel 282 k perl-Business-ISBN noarch 2.06-2.el7 base 25 k perl-Business-ISBN-Data noarch 20120719.001-2.el7 base 24 k perl-Compress-Raw-Bzip2 x86_64 2.061-3.el7 base 32 k perl-Compress-Raw-Zlib x86_64 1:2.061-4.el7 base 57 k perl-DBI x86_64 1.627-4.el7 base 802 k perl-Data-Dumper x86_64 2.145-3.el7 base 47 k perl-Digest noarch 1.17-245.el7 base 23 k perl-Digest-MD5 x86_64 2.52-3.el7 base 30 k perl-Encode-Locale noarch 1.03-5.el7 base 16 k perl-File-Listing noarch 6.04-7.el7 base 13 k perl-HTML-Parser x86_64 3.71-4.el7 base 115 k perl-HTML-Tagset noarch 3.20-15.el7 base 18 k perl-HTTP-Cookies noarch 6.01-5.el7 base 26 k perl-HTTP-Daemon noarch 6.01-5.el7 base 20 k perl-HTTP-Date noarch 6.02-8.el7 base 14 k perl-HTTP-Message noarch 6.06-6.el7 base 82 k perl-HTTP-Negotiate noarch 6.01-5.el7 base 17 k perl-IO-Compress noarch 2.061-2.el7 base 260 k perl-IO-HTML noarch 1.00-2.el7 base 23 k perl-IO-Socket-INET6 noarch 2.69-5.el7 base 20 k perl-IO-Socket-IP noarch 0.21-4.el7 base 35 k perl-IO-Socket-SSL noarch 1.94-3.el7 base 113 k perl-LWP-MediaTypes noarch 6.02-2.el7 base 24 k perl-MythTV x86_64 0.27.5-1.el7 scrpms 54 k perl-Net-Daemon noarch 0.48-5.el7 base 51 k perl-Net-HTTP noarch 6.06-2.el7 base 29 k perl-Net-LibIDN x86_64 0.12-15.el7 base 28 k perl-Net-SSLeay x86_64 1.55-3.el7 base 285 k perl-PlRPC noarch 0.2020-14.el7 base 36 k perl-Socket6 x86_64 0.23-15.el7 base 27 k perl-TimeDate noarch 1:2.30-2.el7 base 52 k perl-URI noarch 1.60-9.el7 base 106 k perl-WWW-RobotRules noarch 6.02-5.el7 base 18 k perl-libwww-perl noarch 6.05-2.el7 base 205 k phonon x86_64 4.6.0-9.el7 base 205 k phonon-backend-gstreamer x86_64 2:4.6.3-3.el7 base 140 k portaudio x86_64 19-16.el7 epel 88 k python-MythTV x86_64 0.27.5-1.el7 scrpms 290 k qt x86_64 1:4.8.5-8.el7 base 4.5 M qt-mysql x86_64 1:4.8.5-8.el7 base 33 k qt-settings noarch 19-23.5.el7 base 17 k qt-x11 x86_64 1:4.8.5-8.el7 base 13 M qt3 x86_64 3.3.8b-51.el7 base 3.5 M qtwebkit x86_64 2.3.4-6.el7 epel 10 M schroedinger x86_64 1.0.11-4.el7 epel 291 k svgalib x86_64 1.9.25-8.sl7 scrpms 412 k transcode x86_64 1.1.7-51.sl7 scrpms 1.2 M twolame x86_64 0.3.12-2.el7 atrpms 79 k xmms-libs x86_64 1:1.2.11-40.el7 atrpms 271 k Transaction Summary ============================================================================================================================= Install 2 Packages (+144 Dependent packages) Total download size: 164 M Installed size: 514 M Is this ok [y/d/N]:
v4l-utils
# yum install v4l-utils Resolving Dependencies --> Running transaction check ---> Package v4l-utils.x86_64 0:0.9.5-4.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved =========================================================================================== Package Arch Version Repository Size =========================================================================================== Installing: v4l-utils x86_64 0.9.5-4.el7 base 163 k Transaction Summary =========================================================================================== Install 1 Package Total download size: 163 k Installed size: 454 k
lib-cec
# yum install libcec Dependencies Resolved ================================================================================================================ Package Arch Version Repository Size ================================================================================================================ Installing: libcec x86_64 2.2.0-2.el7 scrpms 203 k Transaction Summary ================================================================================================================ Install 1 Package Total download size: 203 k Installed size: 716 k Is this ok [y/d/N]: y Downloading packages: libcec-2.2.0-2.el7.x86_64.rpm | 203 kB 00:00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : libcec-2.2.0-2.el7.x86_64 1/1 /sbin/ldconfig: /lib64/libiguanaIR.so.0.3 is not a symbolic link Verifying : libcec-2.2.0-2.el7.x86_64 1/1 Installed: libcec.x86_64 0:2.2.0-2.el7 Complete!
rc protocols
"If more than one item is enclosed in square brackets, then something other than LIRC is getting those signals."
# cat /sys/class/rc/rc0/protocols rc-5 nec rc-6 jvc sony sanyo mce_kbd [lirc]
xinput list
# xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ TopSeed Tech Corp. USB IR Combo Device id=10 [slave pointer (2)] ⎜ ↳ MCE IR Keyboard/Mouse (mceusb) id=14 [slave pointer (2)] ⎜ ↳ USB USB Keykoard id=12 [slave pointer (2)] ⎜ ↳ Microsoft Microsoft Wheel Mouse Optical® id=13 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ TopSeed Tech Corp. USB IR Combo Device id=9 [slave keyboard (3)] ↳ Media Center Ed. eHome Infrared Remote Transceiver (0471:0815) id=11 [slave keyboard (3)] ↳ USB USB Keykoard id=8 [slave keyboard (3)]
/usr/share/X11/xorg.conf.d/90-IgnoreIrRemote.conf
# # Ignore remote controls that are handled by LIRC # Section "InputClass" Identifier "Ignore IR remote as Keyboard input" MatchProduct "Media Center Ed. eHome Infrared Remote Transceiver (147a:e017)|Media Center Ed. eHome Infrared Remote Transceiver (0471:0815)|TopSeed Tech Corp. USB IR Combo Device" MatchIsKeyboard "true" Option "Ignore" "true" EndSection