header.png
raspiVDR - Server

ein VDR Server auf der Basis von easyVDR

raspiVDR Server

Einen VDR als "TV-Server" fürs ganze Haus mit mehreren Clients, das scheint mir jetzt mit dem stromsparenden Mainbord Q1900M PRO3 von ASROCK möglich zu sein.
Zielvorgabe Energiebedarf
ca 30-35W im Dauerbetrieb sollten erreichbar sein
Zielvorgabe Kosten
Max. 200€, das kann aber nur erreicht werden wenn teilweise vorhandene Hardware weiterverwendet wird!

Mal sehen was letzendlich wirklich erreichbar ist...

Hardware

Mainboard

ASROCK Q1900M PRO3
Formfaktor µATX
CPU J1900 4-Kern-Atomprozessor mit nur 10W TDP
Schnittstellen
2x SATA
3x USB 2.0
1x USB 3.0
Steckplätze für DVB-S2 Karten
2x PCI (die "alten" DVB-S2 Karten sollen noch weiterverwendet werden)
1x PCIe 1x (eine DVB-S2 Karte mit Dualtuner soll zusätzlich angeschafft werden)
1x PCIe 16x (es ist noch Platz für eine NVIDIA VDPAU fähige Grafikkarte - für alle Fälle)
Arbeitsspeicher
4GB DDR3 ist nach meiner Ansicht mehr als genug!

DVB-S2

4 Tuner sollten bei 3 geplanten Clients ausreichen
2x Technotrend TT-budget S2-1600 PCI Karten (aus dem "alten" VDR ausgebaut)
1x TBS-6982 dual Tuner PCIe Karte

restliche Hardware

Laufwerke
3TB SATA 3,5'' (aus Bestand)
DVD mit SATA? Hab ich nicht, brauch ich nicht! Installiert wird über USB-Stick
Gehäuse
Der Server kommt unters Dach da kann ein altes verwendet werden
Stromversorgung 120W HEC ... (aus Bestand)

Software

Als Software für den Server benutze ich easyVDR in der Version 2.0/2.5 an dem inzwischen 3 Raspberry PI (Version 2 oder 3) als Clients hängen. Um mit easyVDR einen VDR als Server zu betreiben sind nach der Installation noch einige Änderungen am System notwendig oder sinnvoll.

VDR-Plugins

Diese zusätzlichen Plugins für den VDR habe ich aktiviert:

streamdev-server

Das streamdev-server Plugin wird von easyVDR bereits bei der Installation aktiviert. Es sind allerdings noch einige zusätzliche Enstellungen vorzunehmen. Das kann wahlweise über das OSD des VDR-Servers oder über die Datei /var/lib/vdr/setup.conf des VDR-Servers eingestellt werden.
Einstellungen VDR-Plugin: streamdev-server
OSD Auswahl setup.conf Wert
Hauptmenüeintrag verstecken Nein streamdev-server.HideMenuEntry 0
Live-TV beim start pausieren Ja streamdev-server.StartSuspended 1
Maximalanzahl an Clients 10 streamdev-server.MaxClients 10
Live-TV Pufferdauer (ms) 0 streamdev-server.LiveBufferMs 0
VDR-zu-VDR Server starten Ja streamdev-server.StartServer 1
Port des VDR-zu-VDR Servers 2004 streamdev-server.ServerPort 2004
Binde an IP 0.0.0.0 streamdev-server.VTPBindIP 0.0.0.0
Priorität für alte Clients 0 streamdev-server.VTPPriority 0
Client darf pausieren Ja streamdev-server.AllowSuspend 1
HTTP Server starten Ja streamdev-server.StartHTTPServer 1
Port des HTTP Servers 3000 streamdev-server.HTTPServerPort 3000
Binde an IP 0.0.0.0 streamdev-server.HTTPBindIP 0.0.0.0
Priorität 0 streamdev-server.HTTPPriority 0
HTTP Streamtyp TS streamdev-server.HTTPStreamType 0

svdrposd

Damit kann das OSD des VDR-Servers auf dem Client dargestellt werden.

femon

Signalstärke und Empfangsqualität der DVB-Karten im VDR-Server kann auch über den VDR-Client dargestellt werden.

peer

Aufnahmen

Der VDR-Server soll auch alle Timer die an den Clients angestoßen werden bearbeiten und die Aufnahmen für alle Clients zur Verfügung stellen. Der VDR der auf den Clients läuft, benötigt in dem Aufnahmeordner des VDR-Servers schreibenden Zugriff um
  • Direktaufnahmen auf dem Server abzuspeichern.
  • Die Wiedergabeposition einer Aufnahme abzuspeichern.
  • Aufnahmen zu löschen
In der Voreinstellung von easyVDR und wahrscheinlich auch vielen anderen VDR-Distributionen läuft der VDR unter dem User vdr und legt die Aufnahmedateien wie folgt an:
Dateirechte Aufnahmen
Benutzer Lesen Schreiben Ausführen: Datei/Ordner
Eigentümer: vdr X X - / X
Gruppe: vdr X - - / X
Andere X - - / X

In der Kurzfassung: Ordner werden mit den Rechten 0755 und Dateien mit den Rechteb 0644 angelegt. Was uns hier fehlt ist die Schreibberechtigung für die Gruppe vdr also die Rechte 0775 und 0664. Um das zu erreichen muss dieses Verhalten vor dem Start des VDR mit umask 0002 geändert werden. Hier bei easyVDR kann das durch einen zusätzlichen Eintrag in /etc/default/vdr erfolgen.
/etc/default/vdr
umask 0002
Achtung diese Änderung könnte bei einem Systemupdate wieder überschrtieben werden!

Sind schon älter Aufnahmen auf dem VDR-Server, dann müssen auch für diese nachträglich die Dateirechte abgeändert werden.
find /video0/ -type d -exec sudo chmod 775 {} +
find /video0/ -type f -exec sudo chmod 664 {} +

Benutzer anlegen

Der VDR auf meinen Clients läuft unter dem Benutzer pi . Deshalb benotigt auch der VDR-Server einen Benutzer pi dem man auch noch der Gruppe vdr zuordnen muss.
sudo adduser pi
sudo adduser pi vdr

Aufnahmeordner

Damit die aufgenommenen Sendungen auch uber das Netzwerk den Clients zur Verfügung stehen, muss noch der Aufnahmeordner im lokalen Netzwerk freigegeben werden. Da die Clients auch unter Linux laufen, kann dies als NFS Freigabe erfolgen.

NFS

Eine NFS-Freigabe mit easyVDR erfolgt in 2 (3) Stufen:

Stufe1:
Über einen 2. PC per SSH (Linux) oder Putty (Windows) kann man sich auf dem easyVDR Server einloggen.
sudo setup startet das Konfiguratuionstool von easyVDR. Dort im Bereich Netzwerk -> NFS den NFS Server konfigurieren.

Stufe2:
Über das OSD am easyVDR Server die Einstellung:
.System & Einstellungen
...Einstellungen
.....System-Einstellungen
.......Netzwerk ...
.........Dienste und Fernzugriff auf diesen VDR
...........NFS-Server starten
Den Eintrag NFS Server starten auf ja setzen
Danach den easyVDR Server neu starten

Stufe 3:
Da bis einschließlich easyVDR 2.5 die Ordnerfreigabe in der Konfigurationsdatei vom NFS Server nicht richtig gesetzt wird, sollte diese Datei noch überprüft werden.

Konfigurationsdatei NFS Server /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
###_inserted_by_easyvdr_setup-do_not_edit__###
###################-begin-####################
/media/easyvdr01/video0 *(rw,no_subtree_check)
#/media/easyvdr01/filme1 *(rw,no_subtree_check)
#/media/easyvdr01/filme2 *(rw,no_subtree_check)
#/media/easyvdr01/filme3 *(rw,no_subtree_check)
#/media/easyvdr01/mp3 *(rw,no_subtree_check)
#/media/easyvdr01/photos *(rw,no_subtree_check)
/media/easyvdr01 *(rw,no_subtree_check)
#/ *(rw,no_subtree_check)
###################--end--####################
###_inserted_by_easyvdr_setup-do_not_edit__###
Mindestens der Eintrag /media/easyvdr01/video0 *(rw,no_subtree_check) sollte freigegeben sein (also ohne die Raute # am Zeilenanfang)







Die nachfolgenden Infos werden z.Zeit überarbeitet

Software (alt)

Für einen VDR-Server muss es keine der speziellen VDR-Distributionen sein, das kann auch mit ein wenig Handarbeit aus einer normalen Linux Distribution gebaut werden.

Der 1. Versuch

Xubuntu 14.04 verwende ich auch privat und geschäftlich, das ist auch eine solide Basis für den VDR-Server. Als Ergänzung zur Standard Installation wurde meine Festplatte so vorbereitet:
/dev/sda1 im Format ext4
ca. 30GB für das Betriebsystem Xubuntu 14.04 Mountpoint: /
/dev/sda2 im Format xfs
fast der ganze Rest als Datenpartition Mountpoint: /daten
/dev/sda3 als SWAP
ca. 2 GB
Wie immer nach einer Installation von Debian Linux oder einer darauf aufbauenden Distribution:
sudo apt-get update
sudo apt-get upgrade
Zusätzlich zur Standard Installation ist die Installation dieser Pakete sinnvoll:
mc Ein Dateimanager für das Terminal
openssh-server Für den Zugriff auf den VDR übers Netzwerk ssh und sftp
vlc als Mediaplayer z.B. um zu Testen ob der VDR richtig läuft.
sudo apt-get install mc openssh-server vlc browser-plugin-vlc

DVB Karten

Skystar S2
Diese DVB-S2 Karten laufen nicht "out of the box", die Kernelmodule und die Firmware für diese Karten sind in der Standard Xubuntu 14.04 Distribution nicht vorhanden. Mit einem kleinen Umweg und viieel Zeit lässt sich das aber nachinstallieren, auch wenn man kein Linux Experte ist.

Wir benötigen für die Technisat Skystar S2

Die Firmware dvb-fe-cx24120-1.20.58.2.fw
Näheres zur Firmware findest du auf
http://www.forum.free-x.de/wbb/index.php?page=Thread&postID=8126#post8126
Download Link:
dvb-fe-cx24120-1.20.58.2.fw
# Kopiere die Firmware nach: /lib/firmware
sudo cp *.fw /lib/firmware

Ein Paket media-build-experimental-dkms.deb
Das holen wir uns aus dem PPA base-unstable aus der Distribution easyVDR 2.0 http://www.easy-vdr.de
Achtung!! Es werden alle "media" Kernelmodule neu gebaut und das dauert sehr lange bei mir waren das ca. 30 min auf einer J1900 Atom CPU ohne dass eine Aktivitätsanzeige vorhanden ist
Also viel Geduld !!
sudo add-apt-repository ppa:easyvdr-team/base-unstable
sudo apt-get update
sudo apt-get install media-build-experimental-dkms

VDR

Infos zum VDR und Download der aktuellen Version bei http://www.tvdr.de. Für Fragen dazu wurde das Forum http://www.vdr-portal.de eingerichtet.
Zunächst installieren wir uns die benötigten Pakete um den VDR aus den aktuellen Quellen neu zu bauen. Da VDR auch in der Standard Xubuntu Distribution enthalten ist geht das mit wenigen Zeilen im Terminal:
sudo apt-get build-dep vdr
sudo apt-get build-dep vdr-plugin-streamdev-server
sudo apt-get install build-essential ncurses-dev
Dann Suchen wir uns einen Ordner in dem wir den Quelltext vom VDR entpacken können, das kann irgendwo in deinem HOME Ordner sein:
mkdir source
mkdir source/vdr
cd source/vdr
Wir laden uns den aktuellenVDR aus http://www.tvdr.de und entpacken alles in den oben gewählten Ordner ../source/vdr und erstellen einen Symlink "vdr" auf den entpakten Ordner
Wir laden die benötigten Plugins und entpacken sie nach ...source/vdr/vdr/PLUGINS/src und erstellen für jedes Plugin wieder einen Symlink "pluginname"
cd vdr
make
Wir erstellen den Video Ordner in den die Aufnahmen des VDR gespeichert werden (Hier im Ordner /daten, dem Mountpoint der großen Partition)
sudo mkdir /daten/video0
# symlink nach /srv/vdr/video

sudo adduser vdr --shell /bin/false --disabled-password
sudo adduser ichbins vdr
sudo adduser vdr video
sudo make install
sudo chown -R vdr:vdr /var/cache/vdr
sudo chown -R vdr:vdr /var/lib/vdr
  1. /usr/local/bin/ -> VDR
  2. /usr/local/lib/vdr/ -> Plugins
  3. /usr/local/share/locale/ -> Locale
  4. /var/lib/vdr/ -> Conf
  5. /var/cache/vdr/ -> epg.data