1. Preparations - you need root permissions - copy the firmware file of your dvb-device to /lib/firmware - make sure, that you system is up to date apt-get update apt-get upgrade - make sure, that you have all tools and libs apt-get install libcurl4-openssl-dev git build-essential gettext libssl-dev w-scan unzip git-core pkg-config dvb-apps libdbus-1-dev cmake libdbus-glib-1-dev libcurl4-openssl-dev libavahi-client-dev zlib1g-dev libiconv* liburiparser* ca-certificates 2. Building tvheadend - get the sources git clone https://github.com/tvheadend/tvheadend - switch to tvheadend cd tvheadend - preconfiguring without transcoding ./configure or without transcoding (that's what I prefer) ./configure --disable-ffmpeg_static --disable-libav - start build make or I you have quadcore cpu make -j4 3. Installation - final make and copy to destination make install - create tvheadend user and group groupadd tvheadend useradd -g tvheadend -G video -m tvheadend - create init.d script #!/bin/bash ### BEGIN INIT INFO # Provides: tvheadend # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Should-Start: $syslog # Should-Stop: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 # Short-Description: start/stop tvheadend Server ### END INIT INFO TVHNAME="tvheadend" TVHBIN="/usr/local/bin/tvheadend" TVHUSER="tvheadend" TVHGROUP="tvheadend" PIDFILE=/var/run/$TVHNAME.pid start() { if [ -e $PIDFILE ]; then PID=$(ps ax | grep -v grep | grep -w $(cat $PIDFILE) | awk '{print $1}') if [ -n "$PID" ]; then echo "$TVHNAME already running (pid $PID)." exit 1 fi fi echo -n "Starting tvheadend: " start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user ${TVHUSER} --exec ${TVHBIN} -- \ -u ${TVHUSER} -g ${TVHGROUP} -f -C echo "Done." } stop() { if [ -e $PIDFILE ]; then PID=$(ps ax | grep -v grep | grep -w $(cat $PIDFILE) | awk '{print $1}') if [ -n "$PID" ]; then echo -n "Stopping $TVHNAME: " start-stop-daemon --stop --quiet --pidfile $PIDFILE --name ${TVHNAME} echo "Done." else echo "$TVHNAME is not running." fi else echo "$TVHNAME is not running." fi } status() { if [ -e $PIDFILE ]; then PID=$(ps ax | grep -v grep | grep -w $(cat $PIDFILE) | awk '{print $1}') if [ -n "$PID" ]; then echo "$TVHNAME is running (pid $PID)." else echo "$TVHNAME is not running." [ -e $PIDFILE ] && exit 1 || exit 3 fi fi } 4. Start sequence ./tvheadend.sh start