Tvheadend auf Raspberry Pi3

Ziel:

Ich habe zwei Raspberry Pi als Kodi-Clint im Einsatz! Diese betreibe ich mit einem Image von OSMC! Außerdem habe ich Kodi noch auf einem MacBook und einem Android-Phone installiert! Auf allen diesen Clints möchte ich auch Fernsehen können. Tvheadend als IPTV Stream Server kann das Verteilen der IPTV-Streams übernehmen. Ich möchte diesen Server auf Basis eines Raspberry Pi 3 aufsetzen. Hier bin ich immer wieder auf Schwierigkeiten bei der Installation von Tvheadend gestoßen. Sodass mir nichts anderes Übrigblieb, als den Sourcecode von Tvheadend auf dem Pi selber zu Kompilieren! Die folgenden Schritte basieren auf der Installation des „RASPBIAN JESSIE LITE“ Images von https://www.raspberrypi.org/downloads/raspbian/

1. PI vorbereiten
1
2
3
4
5
6
7
8
	sudo raspi-config
	sudo reboot
	sudo apt-get update
	sudo apt-get upgrade
        sudo apt-get install rpi-update
	sudo rpi-update
	sudo reboot
        sudo apt-get install git
2. TVHeadend installieren
1
2
3
4
5
6
7
	sudo -s
	apt-get install git build-essential pkg-config libssl-dev gettext dvb-tools libdvbv5-0 liburiparser-dev liburiparser1 libavahi-client-dev zlib1g-dev libavcodec-dev libavutil-dev libavformat-dev libswscale-dev
        cd /usr/src
	git clone https://github.com/tvheadend/tvheadend
	cd tvheadend
	./configure
	make

Das Kompelieren des Tvheadend sources dauert auf dem Pi eine Weile, in meinem Fall waren es 1h 28min! Deshalb habe ich mir nach dem Kompilieren erst einmal ein Backup der SD-Card gemacht, falls etwas schief läuft möchte ich nicht schon wieder 2h alles vorbereiten! Vor dem ersten Teststart müssen noch schreibrechte für /root/.hts gesetzt werden!

1
sudo chmod 777 /root/.hts
Den Server ins Autostart legen:

Das war nicht ganz so einfach wie ich dachte, aber ich habe mich an dieses Tut gehalten => http://www.forum-raspberrypi.de/Thread-tutorial-tvheadend-server

Da der tvheadend Server nicht als root laufen sollte legen wir nun einen extra Benutzer an und geben diesem, durch hinzufügen zu der jeweiligen Gruppe, rechte auf Video und Audio zuzugreifen:

1
2
3
sudo groupadd tvheadend
sudo useradd -g tvheadend -G video -m tvheadend
sudo usermod -G audio -a tvheadend

Dann müssen wir noch ein Startscript anlagen! Dieses ist hier schon an die Installation wie ich sie hier beschrieben habe angepasst!

Script bearbeiten: nano /etc/init.d/tvheadend

Folgendes dort einfügen:

#!/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/src/tvheadend/build.linux/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
}
 
case "$1" in
 start) start ;;
 stop) stop ;;
 restart) stop && sleep 2 && start ;;
 *) echo "Usage: $0 [start|stop|restart|status]" && exit 1 ;;
esac
 
exit 0

Script ausführbar machen und in den Runlevel aufnehmen damit es automatisch ausgeführt wird:

chmod +x /etc/init.d/tvheadend
update-rc.d tvheadend defaults

Jetzt können wir den Server über das Script starten:

/etc/init.d/tvheadend start

Und Überprüfen ob der Server läuft!

ps aux | grep -v grep | grep tvhead

Zur Konfiguration schaut euch dieses Video an https://www.youtube.com/watch?v=y8vm9es6FL0 


Posted in TvHeadend auf Raspberry PI 3 by with 5 comments.

Comments

  • Hartmut sagt:

    Bekomme nach „make“ folgende Fehlermeldung:

    ERROR: cmake not found
    root@raspberrypi:/usr/src/tvheadend# make
    Makefile:23: .config.mk: Datei oder Verzeichnis nicht gefunden
    Makefile:656: /support/.mk: Datei oder Verzeichnis nicht gefunden
    make: *** No rule to make target ‚/support/.mk‘. Schluss.

    Wie kann ich den Fehler beheben?

  • Michael sagt:

    Gleiches Problem wie Hartmut…

  • Michael sagt:

    Einfach „sudo apt-get install cmake“ vor dem Befehl „make“ ausführen.

  • dusti sagt:

    Hallo,

    ich habe bei der Installation diese nach /opt/tvheadend/tvheadend-4 ausgeführt (sehr wahrscheinlich nicht die beste Variante 🙁 also ./configure, make und make install…

    Jedenfalls kriege ich jetzt keinen Autostart hin, wenn ich direkt „tvheadend“ aus dem Verzeichnis starte, läuft alles. Nur beim Starten aus /etc/init.d bekomme ich immer den Fehler, dass die Datei/Verzeichnis nicht gefunden wird. Welcher Pfad muss in das Startscript?

  • Longri sagt:

    Das muss ich mir erst noch ein mal ansehen!
    Arbeite gerade an einer neu Installation (Erweiterung auf einer neuen Rasbian Version), da werde ich das überarbeiten!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

%d Bloggern gefällt das: