Ubuntu Intrepid Ibex Installation

From MythTV Official Wiki
Revision as of 00:19, 26 October 2008 by Gargan (talk | contribs) (mythweb: added info for linking and config)

Jump to: navigation, search

Source Installation on Ubunut 8.10 Intrepid Ibex

See Ubuntu Installation Guides for installing on other Ubuntu versions.

This will allow you to build and install the latest build on ubuntu 8.10.

I personally suggest installing xubuntu over ubuntu - it boots just that much faster - but thats a personal opinion.

Prerequesites

First install required packages:

 sudo apt-get install build-essential liblircclient-dev libasound2-dev libdts-dev libdvdnav-dev \
 libxv-dev libxxf86vm-dev transcode libmp3lame-dev subversion qt4-dev-tools libqt4-dev libsamplerate0 \
 libxvidcore4 liba52-0.7.4-dev libfame-dev libcdio-dev msttcorefonts libasound2-doc libmad0-dev \ 
 libid3tag0-dev libvorbis-dev libflac-dev libcdaudio-dev libcdparanoia0-dev fftw3-dev libfaad-dev \
 libsmpeg-dev libmp4v2-dev libtag1-dev mysql-server libvisual-0.4-dev libexif-dev 

To install css support use:

/usr/share/doc/libdvdread3/install-css.sh

If you want mythweb as well - you need

 sudo apt-get install apache2 php5 libapache2-mod-php5 php5-mysql

How do I get and compile the source code?

svn co http://svn.mythtv.org/svn/trunk/mythtv
svn co http://svn.mythtv.org/svn/trunk/mythplugins
svn co http://svn.mythtv.org/svn/trunk/myththemes

then simply go in each directory and run:

./configure
make
make install

if you dont want some modules you might want to disable then in mythplugins (ie. phone and flix support)

./configure --disable-mythphone --disable-mythnetflix

optional tasks

creating the mythtv user

to run mythtv as its own user I created one (so the backend doesnt run as root)

sudo useradd mythtv


running mythtv on start

I use a slightly modified script from mythbuntu for that. Just copy the content to /etc/init.d/mythtv-backend - chmod it with sudo chmod 755 /etc/init.d/mythtv-backend

To start every time you still have to add it to the rc: update-rc.d mythtv-backend defaults

Also create a log directory for mythtv:

sudo mkdir /var/log/mythtv
sudo chown mythtv:mythtv /var/log/mythtv
#! /bin/sh
### BEGIN INIT INFO
# Provides:          mythtv-backend
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/Stop the MythTV server.
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/mythbackend
NAME="mythbackend"
DESC="MythTV server"

test -x $DAEMON || exit 0

. /lib/lsb/init-functions

set -e

prime_firewire()
{
    if [ "$ENABLE_FIREWIRE" = "TRUE" ]; then
        log_daemon_msg "Priming Firewire "
        su - $USER -c "/usr/bin/mythprime"
        log_end_msg $?
    fi
}

USER=mythtv
USER_HOME=$(grep ^$USER /etc/passwd | awk -F : '{print $6}')
RUNDIR=/var/run/mythtv
ARGS="--daemon --logfile /var/log/mythtv/mythbackend.log --pidfile $RUNDIR/$NAME.pid"
EXTRA_ARGS=""
NICE=0

if [ -f /etc/default/mythtv-backend ]; then
  . /etc/default/mythtv-backend
fi

ARGS="$ARGS $EXTRA_ARGS"

mkdir -p $RUNDIR
chown -R $USER $RUNDIR

unset DISPLAY
unset SESSION_MANAGER

#create a symbolic link for mysql.txt so it can't be overwritten
mkdir -p $USER_HOME/.mythtv
chown -R $USER $USER_HOME/.mythtv
if [ ! -e $USER_HOME/.mythtv/mysql.txt ]; then
        ln -s /etc/mythtv/mysql.txt $USER_HOME/.mythtv/mysql.txt
fi

case "$1" in
  start)
        if [ -e $RUNDIR/$NAME.pid ]; then
                PIDDIR=/proc/$(cat $RUNDIR/$NAME.pid)
                if [ -d ${RUNDIR} -a "$(readlink -f ${RUNDIR}/exe)" = "${DAEMON}" ]; then
                        log_success_msg "$DESC already started; use restart instead."
                        exit 1
                else
                        log_success_msg "Removing stale PID file $RUNDIR/$NAME"
                        rm -f $RUNDIR/$NAME.pid
                fi
        fi
        prime_firewire
        log_daemon_msg "Starting $DESC: $NAME "
        start-stop-daemon --start --pidfile $RUNDIR/$NAME.pid \
                --chuid $USER --nicelevel $NICE --exec $DAEMON -- $ARGS
        log_end_msg $?
        ;;
  stop)
        log_daemon_msg "Stopping $DESC: $NAME "
        start-stop-daemon --stop --oknodo --pidfile $RUNDIR/$NAME.pid \
                --chuid $USER --exec $DAEMON -- $ARGS
        log_end_msg $?
        test -e $RUNDIR/$NAME.pid && rm $RUNDIR/$NAME.pid
        ;;
  restart|force-reload)
        log_daemon_msg "Restarting $DESC: $NAME "
        start-stop-daemon --stop --oknodo --pidfile $RUNDIR/$NAME.pid \
                --chuid $USER --exec $DAEMON -- $ARGS
        sleep 3
        prime_firewire
        start-stop-daemon --start --pidfile $RUNDIR/$NAME.pid \
                --chuid $USER --nicelevel $NICE --exec $DAEMON -- $ARGS
    log_end_msg $?
        ;;
  status)
        # We want to maintain backward compatibility with Hardy,
        # so we're not going to use status_of_proc()
        pidofproc -p $RUNDIR/$NAME.pid $DAEMON >/dev/null && status=0 || status=$?
        if [ $status -eq 0 ]; then
                log_success_msg "$NAME is running"
        else
                log_failure_msg "$NAME is not running"
        fi
        exit $status
        ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
        exit 2
        ;;
esac

exit 0

autostart frontend in xubuntu

Create a file in ~/.config/autostart/mythfrontend.desktop:

[Desktop Entry]
Encoding=UTF-8
Version=0.9.9
Type=Application
Name=MythTV Frontend
Comment=
Exec=mythfrontend
StartupNotify=false
Terminal=false
Hidden=false

mythweb

For mythweb I just created a symlink to the checked out mythweb in the /var/www:

sudo ln -s /usr/local/src/mythtv/mythweb /var/www/mythweb

you have to enable mod-rewrite

sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

and copy/edit the apache config

sudo cp mythplugins/mythweb/mythweb.conf.apache /etc/apache2/sites-available/mythweb.conf
sudo ln -s /etc/apache2/sites-available/mythweb.conf /etc/apache2/sites-enabled/mythweb.conf

after that restart and have fun:

sudo /etc/init.d/apache restart

Something didnt work - what next?

With this you should be able to compile and install mythtv on a new (x)ubunut box. Most problems come with mythtv setup (config files, database initialisation etc.) Please refer to the other wiki pages/documentation (like Ubuntu_Dapper_Installation#After_Installation) for info on that