Kategorie:Raspbian VDR Streaming Client yaVDR Pakete

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Errata)
K
 
(10 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
=Einleitung=
 
=Einleitung=
Konstruction zone!!!!!!
 
  
Diese experimentelle Anleitung beschreibt die Installation und Konfiguration eines VDR Streaming Client Systems mittels [[Streamdev-plugin]] und einem [[Raspberry Pi]]. Es wird davon ausgegangen, dass es bereits einen VDR mit lauffähigem [[Streamdev-plugin|Streamdev-Server Plugin]] gibt. Für die Bildausgabe auf den TV kommt das [[Rpihddevice-plugin]] zum Einsatz.
+
Diese experimentelle Anleitung beschreibt die Erzeugung von binär Paketen aus den Quelltext-Pakete vom yaVDR-Projekt.  
 
+
Das hat den Vorteil das man sich nicht so sehr um das "drum-herum" wie z.B. Konfigurationsdateien und "Patches" kümmern muss. Diese werden automatisch erstellt.
Hier verwenden wir die Quelltext-Pakete vom yaVDR-Projekt. Das hat den Vorteil das man sich nicht so sehr um das "drum-herum" wie z.B. Konfigurationsdateien und "Patches" kümmern muss. Diese werden automatisch erstellt.
+
  
 
Trotzdem wendet sich die Anleitung an Leute mit Erfahrung in Linux. Anfänger nehmen besser eine speziell angepasste Distribution.
 
Trotzdem wendet sich die Anleitung an Leute mit Erfahrung in Linux. Anfänger nehmen besser eine speziell angepasste Distribution.
Zeile 15: Zeile 13:
 
Es gibt noch einige offenen Punkte. Mithilfe ist sehr willkommen.
 
Es gibt noch einige offenen Punkte. Mithilfe ist sehr willkommen.
 
* Beim zweiten Compilieren beschwert sich dpkg-buildpackage dass Dateien verändert wurden. Offensichtlich fehlt ein Cleanup.
 
* Beim zweiten Compilieren beschwert sich dpkg-buildpackage dass Dateien verändert wurden. Offensichtlich fehlt ein Cleanup.
* Einige Pakete haben fehlende Abängigkeiten
+
* Es wird nur ein Kern benutzt (DEB_BUILD_OPTIONS wird ignoriert)
* Der Scripts ist noch sehr primitiv und fängt Fehler nicht unbedingt ab.
+
* Einige Pakete haben fehlende Abängigkeiten, sind auskommentiert.
 +
* Einige Pakete sind in yaVDR-stable kaputt, sind auskommentiert.
 +
* Der Script ist noch sehr primitiv und fängt Fehler nicht unbedingt ab.
 
* Keys sind noch nicht alle eingetragen, so daß sich apt-get source beschwert (nur Warnung).
 
* Keys sind noch nicht alle eingetragen, so daß sich apt-get source beschwert (nur Warnung).
* Es könnte sein das noch einige Abhänigkeiten fehlen weil sie schon auf meinem Raspian drauf waren.
+
* Es könnte sein das noch einige Abhängigkeiten fehlen weil sie schon auf meinem Raspian drauf waren.
* Dieser Artikel wird gerade Überarbeitet, es gibt neuen Script.
+
 
  
 
==Übersicht==
 
==Übersicht==
Es gibt zwei Scripts, einer holt die Quelltexte, der andere compiliert/paketiert und installiert in einem zweiten Aufruf.
+
Ein Script [[Raspbian VDR Streaming Client yaVDR Pakete/getyavdr.sh|getyavdr.sh]] holt die Quelltexte, compiliert/paketiert und platziert die neuen Pakete in einem lokalen apt-repository.
 +
Damit kann man mittels normalen apt-get Befehlen installieren.
 
Man kann auch alles von Hand machen, aber das war mir zu mühselig.
 
Man kann auch alles von Hand machen, aber das war mir zu mühselig.
  
==Holen der Quelltexte==
+
==Holen der Quelltexte, Build, Paketerzeugung==
 
Wir verwenden "apt-get source", daher müssen die Quell-URLs eingetragen werden. Das [[Rpihddevice-plugin]] ist nicht in yaVDR enthalten, daher holen wir das Paket von e-tobi.
 
Wir verwenden "apt-get source", daher müssen die Quell-URLs eingetragen werden. Das [[Rpihddevice-plugin]] ist nicht in yaVDR enthalten, daher holen wir das Paket von e-tobi.
Der Script installiert auch gleich einige Abhängigkeiten.
+
Der Script [[Raspbian VDR Streaming Client yaVDR Pakete/getyavdr.sh|getyavdr.sh]] installiert auch gleich einige Abhängigkeiten.
  
 
Wir erzeugen einen beliebigen Ordner und arbeiten darin. Beispiel:
 
Wir erzeugen einen beliebigen Ordner und arbeiten darin. Beispiel:
Zeile 33: Zeile 34:
 
  chdir ~/VDR
 
  chdir ~/VDR
  
Nun der Script get.sh (bei Cut/Paste muss das erste Leerzeichen in der Zeile entfernt werden, das ist für die Wikiformatierung).
+
Nun rufen wir den Script [[Raspbian VDR Streaming Client yaVDR Pakete/getyavdr.sh|getyavdr.sh]] auf:
Und nicht vergessen: chmod +x *.sh
+
./getyavdr.sh
  
#!/bin/bash
+
Mit einem Parameter kann man noch sagen was getan werden soll.
#set -x
+
* kein Parameter : macht alles (dauert aber gut 2-3 Stunden)
+
* prepare : Nur Vorbereiten
# install the keys for this PPA
+
* core : VDR core bauen
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8103B360
+
* plugins :  plugins bauen
#sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5289F541
+
* addons : addons bauen
+
* sd_skins : Skin designer skins bauen
sudo gpg --keyserver keyring.debian.org --recv-keys 041390BC
+
sudo gpg --armor --export 041390BC | sudo apt-key add -
+
+
# add ppa with sources
+
sudo sh -c 'echo deb-src http://ppa.launchpad.net/yavdr/stable-vdr/ubuntu trusty main >/etc/apt/sources.list.d/yavdr-src.list'
+
sudo sh -c 'echo deb-src http://e-tobi.net/vdr-experimental jessie base vdr-multipatch >/etc/apt/sources.list.d/etobi-src.list'
+
+
sudo apt-get update
+
#sudo apt-get install ubuntu-keyring
+
+
sudo apt-get install build-essential libssl-dev libboost-dev libpcre3-dev libmagick++-dev cdbs dpatch quilt libpoco-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-icccm4-dev libxcb-util0-dev autofs python-ipaddr python3-dbus
+
+
  # get sources of vdr and some plugins
+
apt-get source vdr vdr-addon-avahi-linker vdr-plugin-devstatus vdr-plugin-femon vdr-plugin-live vdr-plugin-plex vdr-plugin-remotetimers vdr-plugin-remoteosd vdr-plugin-skinnopacity vdr-plugin-streamdev vdr-plugin-systeminfo vdr-plugin-timersync vdr-plugin-tvguideng vdr-plugin-svdrpservice svdrpservice-dev vdr-plugin-skindesigner vdr-plugin-rpihddevice
+
   
+
  
==Pakete erzeugen==
+
Danach kann man normal mit apt-get installieren.
Den Script build.sh ohne Parameter aufrufen. Er compiliert vdr, installiert vdr-dev (damit Plugins gebaut werden können), compiliert plugins die von anderen Plugins verwendet werden, installiert deren -dev Pakete und compiliert den rest der gelisteten Plugins.
+
Das dauert gut eine Stunde auf einem PI2.
+
  
Cross-compiling wäre schneller, aber die Einrichtung ist complizierter (wer beschreibt es?)
+
Wegen der vielen Ausgaben ist es besser diese in eine Datei zu schreiben, dann kann man später nachschauen wenn etwas nicht funktioniert hat.
 +
./getyavdr.sh $* 2>&1 | tee get.log
  
Script build.sh (bei Cut/Paste muss das erste Leerzeichen in der Zeile entfernt werden, das ist für die Wikiformatierung).
+
===getyavdr.sh===
Und nicht vergessen: chmod +x *.sh
+
Nun der Script [[Raspbian VDR Streaming Client yaVDR Pakete/getyavdr.sh|getyavdr.sh]] (per Cut/Paste sichern) und nicht vergessen: chmod +x *.sh
  
#!/bin/bash
+
===Mehr Plugins===
#set -x
+
Hier kommen noch mehr [[Plugins]].
build()
+
Um sie einzufügen:
  {
+
  PLUGINS+=$PLUGINS2
pushd $1
+
 
dpkg-buildpackage -rfakeroot -us -uc -j4
+
Einige bauen noch noch nicht und sind auskommentiert (mit Fehlermeldung).
if [ "$?" != "0" ]; then
+
 
exit $?
+
  PLUGINS2+="vdr-plugin-autosort "
fi
+
  PLUGINS2+="vdr-plugin-autostart "
popd
+
PLUGINS2+="vdr-plugin-avahi4vdr "
}
+
  PLUGINS2+="vdr-plugin-avards "
  export -f build
+
  PLUGINS2+="vdr-plugin-bewegung "
build-module()
+
  PLUGINS2+="vdr-plugin-bgprocess "
  {
+
  PLUGINS2+="vdr-plugin-block "
find . -type d -iname "$1*" -exec bash -c 'build "$0"' {} \;
+
  PLUGINS2+="vdr-plugin-calc "
  }
+
  #PLUGINS2+="vdr-plugin-cecremote " # libplatform-dev
build-plugin()
+
  PLUGINS2+="vdr-plugin-chanman "
  {
+
  PLUGINS2+="vdr-plugin-channellists "
build-module "vdr-plugin-$1"
+
  PLUGINS2+="vdr-plugin-control "
  }
+
  PLUGINS2+="vdr-plugin-duplicates "
build-plugins()
+
PLUGINS2+="vdr-plugin-dynamite "
  {
+
  PLUGINS2+="vdr-plugin-eepg "
for modul in $*; do
+
  #PLUGINS2+="vdr-plugin-epg2vdr " # libjpeg-turbo8-dev
build-plugin $modul
+
  #PLUGINS2+="vdr-plugin-epgsearch "
done
+
  #In file included from confdloader.c:28:0:
}
+
  #uservars.h: In member function ‘virtual std::string cVideodirVar::Evaluate(const cEvent*, bool)’:
build-addon()
+
  #uservars.h:541:13: error: ‘VideoDirectory’ was not declared in this scope
  {
+
  #      return VideoDirectory;
build-module "vdr-addon-$1"
+
  PLUGINS2+="vdr-plugin-epgsync "
  }
+
  PLUGINS2+="vdr-plugin-extb "
build-addons()
+
PLUGINS2+="vdr-plugin-externalplayer "
{
+
  PLUGINS2+="vdr-plugin-extrecmenu "
for modul in $*; do
+
  PLUGINS2+="vdr-plugin-favorites "
build-addon $modul
+
  PLUGINS2+="vdr-plugin-iptv "
done
+
#PLUGINS2+="vdr-plugin-music "
}
+
  #bitmap.c:6:22: fatal error: Magick++.h: No such file or directory
call-dpkg()
+
# #include <Magick++.h>
  {
+
echo $1
+
sudo dpkg -i $1
+
  }
+
export -f call-dpkg
+
  install-modul()
+
  {
+
find . -type f -iname "$1*.deb" -exec bash -c 'call-dpkg "$0"' {} \;
+
  }
+
install-plugin()
+
  {
+
install-modul "vdr-plugin-$1_"
+
}
+
install-plugins()
+
{
+
for modul in $*; do
+
install-plugin $modul
+
done
+
  }
+
install-addon()
+
{
+
install-modul "vdr-addon-$1_"
+
  }
+
  install-addons()
+
  {
+
for modul in $*; do
+
install-addon $modul
+
done
+
  }
+
  build-vdr()
+
  {
+
find . -type d -iname "vdr-?.?.?" -exec bash -c 'build "$0"' {} \;
+
  }
+
install-dev()
+
  {
+
find . -type f -iname "vdr-dev*.deb" -exec bash -c 'call-dpkg "$0"' {} \;
+
  }
+
install-vdr()
+
{
+
find . -type f -iname "vdr_?.?.?*.deb" -exec bash -c 'call-dpkg "$0"' {} \;
+
  }
+
 
   
 
   
  if [ "x$1" == "x" ]; then
+
  PLUGINS2+="vdr-plugin-newsticker "
  PLUGINS1="svdrpservice skindesigner"
+
PLUGINS2+="vdr-plugin-noepg "
  PLUGINS="devstatus femon plex remotetimers remoteosd skinnopacity streamdev systeminfo timersync tvguideng live rpihddevice"
+
  PLUGINS2+="vdr-plugin-nordlichtsepg "
  build-vdr && install-dev
+
  PLUGINS2+="vdr-plugin-pulsecontrol "
  build-plugins $PLUGINS1
+
  PLUGINS2+="vdr-plugin-radio "
  install-modul libskindesignerapi0
+
PLUGINS2+="vdr-plugin-recsearch "
  install-modul libskindesignerapi-dev
+
  #PLUGINS2+="vdr-plugin-skinflat "
  build-plugins $PLUGINS
+
  #PLUGINS2+="vdr-plugin-skinflatplus "
  build-addons avahi-linker
+
  #PLUGINS2+="vdr-plugin-satip "
  else
+
  #PLUGINS2+="vdr-plugin-squeezebox "
  install-vdr
+
  #PLUGINS2+="vdr-plugin-weatherforecast "
  install-plugins svdrpservice skindesigner devstatus femon plex remotetimers remoteosd skinnopacity systeminfo timersync tvguideng live streamdev-client rpihddevice
+
  # # libcurl4-gnutls-dev : Conflicts: libcurl4-openssl-dev but 7.38.0-4+deb8u2 is to be installed
  install-addons avahi-linker
+
  # # libcurl4-openssl-dev : Conflicts: libcurl4-gnutls-dev but 7.38.0-4+deb8u2 is to be installed
  fi
+
  PLUGINS2+="vdr-plugin-screenshot "
 +
  PLUGINS2+="vdr-plugin-sndctl "
 +
  #PLUGINS2+="vdr-plugin-ttxtsubs " # ttxtsubs.c:52:2: error: #error "This version of ttxtsubs requires the ttxtsubs patch version 2 to be applied to VDR!!"
 
   
 
   
 
+
#PLUGINS2+="vdr-plugin-webvideo "
==Installieren==
+
#sh: 0: Can't open /usr/share/vdr-dev/dependencies.sh
Wenn der Script build.sh alle .deb Pakete erzeugt hat, kann man sie installieren.
+
  #debian/rules:35: recipe for target 'common-binary-predeb-arch' failed
  build.sh install
+
#make: *** [common-binary-predeb-arch] Error 127
 +
 +
 
  
 
==Post-Install Aktionen==
 
==Post-Install Aktionen==
Zeile 171: Zeile 119:
 
Eventuell sollte man SHUTDOWNCMD= auf einen Script setzen der das gewünschte Ausschaltverhalten erzeugt (gibt vielleicht einen neuen Beitrag).
 
Eventuell sollte man SHUTDOWNCMD= auf einen Script setzen der das gewünschte Ausschaltverhalten erzeugt (gibt vielleicht einen neuen Beitrag).
  
Mehr Details findet man bei [http://www.yavdr.org/documentation/de/index.html yavdr].
+
Mehr Details findet man bei [[YaVDR]].
 
+
==Scripts Download==
+
Hier im Wiki sind keine .sh extensions möglich, daher sind sie mit .png versehen. Bitte nach dem Download entfernen und "chmod +x *.sh" nicht vergessen.
+
  
 
Wie immer: keine Garantie, Verwendung auf eigenes Risiko.
 
Wie immer: keine Garantie, Verwendung auf eigenes Risiko.
  
Download mit Rechtsklick und "save linked contents as" (je nach Browser):
+
 
[[Medium:get.sh.png‎]]
+
[[Kategorie:RaspberryPi]]
[[Medium:Build.sh.png‎]]
+
[[Kategorie:Installationsanleitungen]]
 +
[[Kategorie:Streaming]]
 +
[[Kategorie:YaVDR]]

Aktuelle Version vom 20. Februar 2016, 19:38 Uhr

Inhaltsverzeichnis

[Bearbeiten] Einleitung

Diese experimentelle Anleitung beschreibt die Erzeugung von binär Paketen aus den Quelltext-Pakete vom yaVDR-Projekt. Das hat den Vorteil das man sich nicht so sehr um das "drum-herum" wie z.B. Konfigurationsdateien und "Patches" kümmern muss. Diese werden automatisch erstellt.

Trotzdem wendet sich die Anleitung an Leute mit Erfahrung in Linux. Anfänger nehmen besser eine speziell angepasste Distribution.

[Bearbeiten] Voraussetzungen

Einrichtung des Raspberry und Raspian Jessie ähnlich wie dort beschrieben. Lirc oder CEC sollten auch schon eingerichtet sein damit die Fernbedienung gleich funktioniert.

[Bearbeiten] Errata

Es gibt noch einige offenen Punkte. Mithilfe ist sehr willkommen.

  • Beim zweiten Compilieren beschwert sich dpkg-buildpackage dass Dateien verändert wurden. Offensichtlich fehlt ein Cleanup.
  • Es wird nur ein Kern benutzt (DEB_BUILD_OPTIONS wird ignoriert)
  • Einige Pakete haben fehlende Abängigkeiten, sind auskommentiert.
  • Einige Pakete sind in yaVDR-stable kaputt, sind auskommentiert.
  • Der Script ist noch sehr primitiv und fängt Fehler nicht unbedingt ab.
  • Keys sind noch nicht alle eingetragen, so daß sich apt-get source beschwert (nur Warnung).
  • Es könnte sein das noch einige Abhängigkeiten fehlen weil sie schon auf meinem Raspian drauf waren.


[Bearbeiten] Übersicht

Ein Script getyavdr.sh holt die Quelltexte, compiliert/paketiert und platziert die neuen Pakete in einem lokalen apt-repository. Damit kann man mittels normalen apt-get Befehlen installieren. Man kann auch alles von Hand machen, aber das war mir zu mühselig.

[Bearbeiten] Holen der Quelltexte, Build, Paketerzeugung

Wir verwenden "apt-get source", daher müssen die Quell-URLs eingetragen werden. Das Rpihddevice-plugin ist nicht in yaVDR enthalten, daher holen wir das Paket von e-tobi. Der Script getyavdr.sh installiert auch gleich einige Abhängigkeiten.

Wir erzeugen einen beliebigen Ordner und arbeiten darin. Beispiel:

mkdir ~/VDR
chdir ~/VDR

Nun rufen wir den Script getyavdr.sh auf:

./getyavdr.sh

Mit einem Parameter kann man noch sagen was getan werden soll.

  • kein Parameter : macht alles (dauert aber gut 2-3 Stunden)
  • prepare : Nur Vorbereiten
  • core : VDR core bauen
  • plugins : plugins bauen
  • addons : addons bauen
  • sd_skins : Skin designer skins bauen

Danach kann man normal mit apt-get installieren.

Wegen der vielen Ausgaben ist es besser diese in eine Datei zu schreiben, dann kann man später nachschauen wenn etwas nicht funktioniert hat.

./getyavdr.sh $* 2>&1 | tee get.log

[Bearbeiten] getyavdr.sh

Nun der Script getyavdr.sh (per Cut/Paste sichern) und nicht vergessen: chmod +x *.sh

[Bearbeiten] Mehr Plugins

Hier kommen noch mehr Plugins. Um sie einzufügen:

PLUGINS+=$PLUGINS2

Einige bauen noch noch nicht und sind auskommentiert (mit Fehlermeldung).

PLUGINS2+="vdr-plugin-autosort "
PLUGINS2+="vdr-plugin-autostart "
PLUGINS2+="vdr-plugin-avahi4vdr "
PLUGINS2+="vdr-plugin-avards "
PLUGINS2+="vdr-plugin-bewegung "
PLUGINS2+="vdr-plugin-bgprocess "
PLUGINS2+="vdr-plugin-block "
PLUGINS2+="vdr-plugin-calc "
#PLUGINS2+="vdr-plugin-cecremote " # libplatform-dev
PLUGINS2+="vdr-plugin-chanman "
PLUGINS2+="vdr-plugin-channellists "
PLUGINS2+="vdr-plugin-control "
PLUGINS2+="vdr-plugin-duplicates "
PLUGINS2+="vdr-plugin-dynamite "
PLUGINS2+="vdr-plugin-eepg "
#PLUGINS2+="vdr-plugin-epg2vdr "	# libjpeg-turbo8-dev
#PLUGINS2+="vdr-plugin-epgsearch "
#In file included from confdloader.c:28:0:
#uservars.h: In member function ‘virtual std::string cVideodirVar::Evaluate(const cEvent*, bool)’:
#uservars.h:541:13: error: ‘VideoDirectory’ was not declared in this scope
#      return VideoDirectory;
PLUGINS2+="vdr-plugin-epgsync "
PLUGINS2+="vdr-plugin-extb "
PLUGINS2+="vdr-plugin-externalplayer "
PLUGINS2+="vdr-plugin-extrecmenu "
PLUGINS2+="vdr-plugin-favorites "
PLUGINS2+="vdr-plugin-iptv "
#PLUGINS2+="vdr-plugin-music "
#bitmap.c:6:22: fatal error: Magick++.h: No such file or directory
# #include <Magick++.h>

PLUGINS2+="vdr-plugin-newsticker "
PLUGINS2+="vdr-plugin-noepg "
PLUGINS2+="vdr-plugin-nordlichtsepg "
PLUGINS2+="vdr-plugin-pulsecontrol "
PLUGINS2+="vdr-plugin-radio "
PLUGINS2+="vdr-plugin-recsearch "
#PLUGINS2+="vdr-plugin-skinflat "
#PLUGINS2+="vdr-plugin-skinflatplus "
#PLUGINS2+="vdr-plugin-satip "	
#PLUGINS2+="vdr-plugin-squeezebox "
#PLUGINS2+="vdr-plugin-weatherforecast "
#				# libcurl4-gnutls-dev : Conflicts: libcurl4-openssl-dev but 7.38.0-4+deb8u2 is to be installed
#				# libcurl4-openssl-dev : Conflicts: libcurl4-gnutls-dev but 7.38.0-4+deb8u2 is to be installed
PLUGINS2+="vdr-plugin-screenshot "
PLUGINS2+="vdr-plugin-sndctl "
#PLUGINS2+="vdr-plugin-ttxtsubs " # ttxtsubs.c:52:2: error: #error "This version of ttxtsubs requires the ttxtsubs patch version 2 to be applied to VDR!!"

#PLUGINS2+="vdr-plugin-webvideo "
#sh: 0: Can't open /usr/share/vdr-dev/dependencies.sh
#debian/rules:35: recipe for target 'common-binary-predeb-arch' failed
#make: *** [common-binary-predeb-arch] Error 127


[Bearbeiten] Post-Install Aktionen

Für autostart sollte man /etc/default/vdr editieren und ENABLE=1 setzen. Eventuell sollte man SHUTDOWNCMD= auf einen Script setzen der das gewünschte Ausschaltverhalten erzeugt (gibt vielleicht einen neuen Beitrag).

Mehr Details findet man bei YaVDR.

Wie immer: keine Garantie, Verwendung auf eigenes Risiko.

Seiten in der Kategorie „Raspbian VDR Streaming Client yaVDR Pakete“

Diese Kategorie enthält folgende Seite: