MythTV Install 0.27+

During my many years of experience with MythTV, I’ve tried many different Linuxdistroes and MythTV stable/testing, and in the end, I’m ended up with Debian Linux. My Choices are many through times, but its my believe that stable is the rigth and most stable solution for running MythTV for normal people, without alot of Linux experience. I had many friends through time asking me to build them a solution like mine, for whole house solution. But after building a new frontend/backend from scratch so many times, I’ve desidet to create scripts, that’ll do most of the installation automaticly of needed packages, and building MythTV from scratch, the first time, to maintain them through the time of use.

My guide for installing Mythtv is defined so, you’ll need to have installed Debian Linux as a netinstall. You’ll need to have a little experience with Linux, sine I’m not explaining all the basic knowledge about Linux. After that you’ll login using SSH and as root do:

sudo apt-get install libdrm-dev libdrm2 libkms1 git build-essential fluxbox gdm3 xorg automake autoconf firmware-realtek alsa-base alsa-source linux-sound-base libasound2-dev libasound2 alsa-oss alsa-tools alsa-utils alsaplayer-alsa libalsaplayer-dev libalsaplayer0 gstreamer0.10-alsa libcrypto++-dev libcrypto++-utils libopenal-dev libopenal1 pulseaudio snd-gtk-pulse libsox2 sox qt4-qmake qtcreator libfreetype6-dev libavifile-0.7c2 twolame lame libmp3lame-dev libmp3lame0 pkg-config libxxf86vm-dev libxinerama-dev lxrandr libxrandr-dev libxrandr2 x11-xserver-utils python-urlgrabber python-lxml python3-lxml xml-core python-mysqldb yasm libdbd-mysql-perl libhttp-parser-perl libnet-https-any-perl libcrypt-ssleay-perl libnet-upnp-perl libio-socket-inet6-perl libio-socket-multicast6-perl gstreamer0.10-pulseaudio libao-dev pulseaudio-module-gconf pulseaudio-utils snd-gtk-pulse xmms2-plugin-pulse transmageddon liboauth0 python-oauth libqoauth1 libqoauth-dev libxml-simple-perl libxml-simpleobject-libxml-perl libtest-xml-simple-perl libdate-manip-perl libxml-xpath-perl libxml-xslt-perl libimage-size-perl libdatetime-format-iso8601-perl libsoap-lite-perl python-simplejson libqjson0 python-cjson libjson-rpc-perl libjson-perl libaudio-file-perl libogg-vorbis-decoder-perl vorbis-tools vorbisgain libvorbis-dev libvorbis0a libvorbisenc2 libvorbisfile3 libtagc0-dev libtagc0 libtag1c2a libtag1-dev flac libflac++-dev libflac++6 libflac-dev libflac8 libmysqlclient-dev libmysql++-dev ethtool fftw-dev libfftw3-3 libfftw3-bin sfftw2 sfftw-dev fftw2 libfftw3-dev libfftw3-mpi-dev libfftw3-mpi3 mffm-fftw-dev mffm-fftw1 python-fftw libcdio13 libcdio-cdda1 libcdio-paranoia1 libcdio-cdda-dev libcdio-dev libcdio-paranoia-dev libcdio-utils libdevice-cdio-perl libdrm2 intel-gpu-tools libdrm-dev libdrm-intel1 libkms1 python-drmaa libgbm-dev libgbm1 libx264-dev libxvidcore4 libxvidcore-dev wakeonlan

For my Setup I’ve choose to create a folder in / to get the different need storages need to mount from different storage places. To do that :

mkdir -p /storage/records
mkdir /storage/movies
mkdir /storage/music
mkdir /storage/pictures
mkdir /storage/scripts
chown -R myth.users /storage
chmod 777 -R /storage
mkdir -p /home/myth/.mythtv

And actually you’re now ready to start with MyhTV setup:

mkdir /root/GIT
cd /root/GIT/
git clone -b fixes/0.26 git://github.com/MythTV/mythtv.git

This will download the latest stable MythTV source and place it in /root/GIT/mythtv . Now you’ll have to configure and then again some changes perhaps regarding your hardware, but the basicinstallation is:

cd mythtv/mythtv
./configure –prefix=/usr –enable-mmx –enable-proc-opt –enable-audio-oss –enable-audio-alsa –disable-audio-jack –disable-audio-pulse –disable-altivec –disable-distcc –disable-ccache –enable-vdpau –enable-dvb –dvb-path=/usr/include –enable-lirc –enable-joystick-menu –enable-ivtv –enable-firewire –enable-xrandr –enable-xv –enable-x11 –with-bindings=perl,python –enable-libmp3lame –enable-libx264 –enable-libxvid –enable-nonfree
make -j 6
make install

Depending on your hardware you might change some params, but after getting this compiled and installed, you’ll need to do thje same with mythplugins.

cd mythtv/mythplugins
./configure –prefix=/usr –enable-all –enable-mytharchive –enable-mythbrowser –enable-mythgallery –enable-mythgame –enable-mythmusic –enable-mythnews –enable-mythweather –enable-mythzoneminder
make -j 4
make install

and VIOLA – You have now installed MythTV and ready to reboot your machine and start the either backend/frontend up for the first time. I’ll describe the different extra setting underneath for either MasterBackend og Frontend. There’s a little difference in the setup, carse of the shared libaries (all storage through network) .

MasterBackend:

Installing a MasterBackEnd (MBE) have some extra options, depending on what you’ll use for the storage. I choose the NFS type of sharing libaries, but using a NAS or something like it, could give some problems since it should use Samba instead of NFS. But using NFS you can do it like this – since I’m store all data on the MBE.

Configuring the NFS server:

Install the needed packages for the NFS-server:

apt-get install nfs-kernel-server

This will install your NFS-server on the MBE, so now you’ll need to configure som files, those need are /etc/idmap.conf and /etc/exports.

/etc/idmaps.conf

[General]
Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = pbj-design.dk[Mapping]
Nobody-User = mythtv
Nobody-Group = mythtv

 

/etc/exports

# /etc/exports
#
# List of directories exported to NFS clients. See exports(5).
# Use exportfs -arv to reread.
#
# Example for NFSv2 and NFSv3:
#
# Example for NFSv4:
# Using Kerberos and integrity checking:
#
/storage 192.168.20.0/255.255.0.0(sync,fsid=0,rw,no_subtree_check,no_root_squash)
/storage/music 192.168.20.0/255.255.0.0(sync,rw,nohide,no_subtree_check,no_root_squash)
/storage/records 192.168.20.0/255.255.0.0(sync,rw,nohide,no_subtree_check,no_root_squash)
/storage/pictures 192.168.20.0/255.255.0.0(sync,rw,nohide,no_subtree_check,no_root_squash)
/storage/data 192.168.20.0/255.255.0.0(sync,rw,nohide,no_subtree_check,no_root_squash)

As you can see those directories, created during startup which are the libaries placed on MBE physycal, and mounted using NFS which holds every data. In my setup I’ll use the 192.168.20.0/24 network to use for my MythTV zone.