Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
epgd_mit_vdr_in_gentoo [2016/11/02 21:23] lomaepgd_mit_vdr_in_gentoo [2017/04/01 21:10] (aktuell) – gelöscht admin
Zeile 1: Zeile 1:
  
-====== Einleitung ====== 
- 
-Ziel ist es, eine zentrale EPG-Datenbank zu haben, die alle Infos von epgdata, thetvdb, themoviedb, eplist, etc. vom Internet läd, und alles zusammenfügt, um ein möglichst gutes EPG zu bekommen. Zentrale Datenbank deshalb, da alle Infos und Bilder ca. 5GB Daten sind, die ja nicht für jeden VDR extra runtergeladen werden sollen, sondern nur einmal. Zum einen, um den hohem Internet-Traffic zu verringern, als auch wegen Verarbeitungsgeschwindigkeit, da alle Infos zum VDR-Start schon im lokalen Netz sind. 
- 
-Die Datenbank kann überall installiert werden. Es ist aber erfahrungsgemäß einfacher diese direkt am VDR zu installieren.  
- 
- 
-====== Installation ====== 
- 
-Der EPGD Dienst selbst wird am VDR installiert. EPGD kann standardmäßig über den Kostenpflichtigen Diensthttp://www.epgdata.com bedient werden. Wir witmen uns hier aber der kostenlosen Lösung von TVM. Folgende Overlays müssen eingetragen werden: 
- 
-Für EPGD https://github.com/3PO/3PO-overlay 
-   
-  nano /etc/portage/repos.conf/3po-overlay.conf 
-   
-  [3PO-overlay] 
-  location = /var/db/repos/3PO-overlay 
-  sync-type = git 
-  sync-uri = git://github.com/3PO/3PO-overlay.git 
-  auto-sync = yes 
- 
- 
-Für epgd2vdr: https://styrion.at/gentoo/overlay/iteas-enterprise.xml 
-   
-  layman -a iteas-enterprise -o https://styrion.at/gentoo/overlay/iteas-enterprise.xml -L 
- 
-Nun die Pakete installieren: 
-   
-  =media-tv/epgd-9999 tvm 
-  =media-tv/epgd-plugin-tvm-9999 
- 
-Wichtig ist das die Pakete immer die gleiche API verwenden, da es sonst nicht funktioniert.  
-   
-  emerge -va epgd vdr-epg2vdr 
- 
-Nach erfolgreicher Installation gehen wir zur Konfiguration über, die nicht ganz ohne ist.  
- 
- 
-====== Konfiguration ====== 
- 
-Zuerst stoppen wir unseren VDR. 
-   
-  systemctl stop vdr.service 
- 
-Jetzt müssen einige Dinge am EPGD konfiguriert werden. In der Config muss die Zeile zum epgdata.com auskommentiert werden. Weiters müssen wir unseren Datenbankuser und ein paar Intervalle festlegen. Wobei die Intervalle natürlich jedem selbst überlassen sind. 
-   
-  nano /etc/epgd/epgd.conf 
-   
-  DbHost = dbserver.local 
-  DbPort = 3306 
-  DbName = epg2vdr 
-  DbUser = epg2vdr 
-  DbPass = geheim 
-   
-  CheckInitial = 1 
-  DaysInAdvance = 15 
-  DaysToUpdate = 4 
-  UpdateTime = 12 
-   
-  # --------------- 
-  # epgdata plugin 
-  # --------------- 
-   
-  #epgdata.url = http://www.epgdata.com 
-  #epgdata.pin = insert-your-pin-here 
-   
-  # Download timeout in seconds (default 180) 
-  #epgdata.timeout = 180 
- 
-Jetzt müssen wir im Verzeichnis **"/etc/epgd"** die Datei **"tvmovie-channelmap.conf"** auf **"channelmap.conf"** verlinken. Diese Config wird immer von EPGD eingelesen.  
-   
-  ln -s tvmovie-channelmap.conf channelmap.conf 
- 
-Wer die Datei nicht hat, hier zum Download: {{datei:tvmovie-channelmap_conf.txt}} 
-Also nächstes sagen wir dem VDR das er seine Epgdaten bei unserem Datenbankserver holen soll. Dazu mal das Plugin aktivieren und die Benutzerdaten hinterlegen. Die Datei kann/muss mit folgenden [[http://wwwa.tvmovie.de/static/tvghost/html/onlinedata/cftv520/datainfo.txt|IDs]] angepasst werden.  
-   
-  eselect vdr-plugin list 
-  Available VDR plugins: 
-    [1]   conflictcheckonly 
-    [2]   epg2vdr  
-    [3]   epgsearch * 
-    [4]   epgsearchonly 
-    [5]   live * 
-    [6]   quickepgsearch 
-    [7]   streamdev-server * 
-    [8]   vdrmanager * 
-    [9]  vnsiserver * 
-   
-  eselect vdr-plugin enable 2 
-   
-  eselect vdr-plugin list 
-  Available VDR plugins: 
-    [1]   conflictcheckonly 
-    [2]   epg2vdr * 
-    [3]   epgsearch * 
-    [4]   epgsearchonly 
-    [5]   live * 
-    [6]   quickepgsearch 
-    [7]   streamdev-server * 
-    [8]   vdrmanager * 
-    [9]  vnsiserver * 
- 
-Datenbankbenutzer dem VDR übergeben: 
-   
-  nano /etc/vdr/setup.conf 
-   
-  epg2vdr.DbHost = dbserver.local 
-  epg2vdr.DbName = epg2vdr 
-  epg2vdr.DbPass = geheim 
-  epg2vdr.DbPort = 3306 
-  epg2vdr.DbUser = epg2vdr 
- 
-Nun noch den EPGD in den Autostart legen: 
-   
-  systemctl enable epgd.service 
- 
- 
- 
-====== Live Interface ====== 
- 
-Wer das Live Interface benutzt möchte natürlich auch dort seine Bilder sehen. Hierfür folgende Config bearbeiten: 
-   
-  nano /etc/conf.d/vdr.live 
-   
-  LIVE_EPGIMGDIR="/var/cache/vdr/epgimages/" 
- 
-Beim Neustart des VDR (wenn alle Sender geladen wurden) werden auch hier und eine wesentlich bessere Beschreibung angezeigt. 
- 
-====== Erstellung der Datenbank ====== 
- 
-Folgendes Einträge sind in der Datenbankconfig erforderlich: 
-   
-  nano /etc/mysql/my.cnf 
-   
-  [mysqld] 
-  default-storage-engine = innodb 
-  innodb_large_prefix=ON 
-  innodb_file_format=BARRACUDA 
- 
-BIN Log auf jedem Fall abstellen. Nach einem Neustart von MYSQL kann Datenbank und User mit dem Werkzeug "epgd-tool" erstellt werden. Das Tool ist selbst erklärend. Sollte das nicht funktionieren kann man die Datenbank auch selbst manuell anlegen. Die Datenbank mit dem Tool mit folgendes Daten angelegt: 
-  * Datenbank: epg2vdr 
-   * User: epg2vdr 
-   * Passwort: epg 
- 
- 
-==== Datenbank manuell anlegen (normal nicht notwendig) ==== 
- 
- 
-Um die Datenbank erstellen zu können loggen wir uns auf unseren DBhost mit dem MYSQL Root User in die MYSQL CLI ein. Dann legen wir die Datenbank mit allen erforderlichen Rechten und Features an: 
-   
-  mysql -u root -p 
-   
-  CREATE DATABASE epg2vdr charset utf8; 
-  CREATE USER 'epg2vdr'@'%' IDENTIFIED BY 'epg'; 
-  GRANT ALL PRIVILEGES ON epg2vdr.* TO 'epg2vdr'@'%'; 
-  DROP FUNCTION IF EXISTS epglv; 
-  DROP FUNCTION IF EXISTS epglvr; 
-  CREATE FUNCTION epglv RETURNS INT SONAME 'mysqlepglv.so'; 
-  CREATE FUNCTION epglvr RETURNS INT SONAME 'mysqlepglv.so'; 
-  set global innodb_file_format = BARRACUDA; 
-  set global innodb_large_prefix = ON; 
-  SELECT * FROM mysql.func; 
-  FLUSH PRIVILEGES; 
- 
-Auf dem Datenbankserver selbst fehlt natürlich das Plugin für den epgd. Diesen kann man sie direkt vom VDR kopieren  
-   
-  /usr/lib64/mysql/plugin/mysqlepglv.so 
- 
-Oder man installiert den ganzen epgd am DBhost auch. Aber nachdem nur diese eine Datei benötigt wird, genügt es diese zu kopieren. Das funktioniert natürlich nur wenn die Architektur der Hosts identisch ist.  
-Nachdem wir ja von einem anderen Host auf unsere Datenbank zugreifen, nicht vergessen die Zugriffsrechte am Datenbankserver zu setzten. 
- 
- 
-====== Abschluss und Starten des EPGD ====== 
- 
-Nun kann man den EPGD starten und danach die VDR. Startreihenfolge der Services sollte also passen. Beim Ersten Start des Epgd werden sämtliche Tabellen angelegt, danach wird mit dem Füllen dieser begonnen. Dieser Vorgang kann schon mal einen ganzen Tag in Anspruch nehmen.  
- 
-Das Startscript sollte so aussehen. Wichtig ist hier das auch der Pfad für die Plugins gesetzt ist: 
-   
-  [Unit] 
-  Description=Database driven EPG Data collector 
-  After=mysqld.service 
-   
-  [Service] 
-  Type=forking 
-  ExecStart=/usr/bin/epgd -c /etc/epgd -p /usr/lib/epgd/plugins 
-   
-  [Install] 
-  WantedBy=multi-user.target 
- 
- 
-<code> 
-systemctl start epgd.service 
-systemctl start vdr.service 
-</code> 
-Die Datenbank kann gut bis zu 6GB groß werden. Je nachdem was alles an Sendern ausgewählt wurde. Um die Downloadmenge und die Sender einzuschränken kann man noch folgende Datei auf seine Bedürfnisse bearbeiten: 
-   
-  /etc/epgd/tvmovie-channelmap.conf 
- 
- 
- 
-===== Empfehlungen ===== 
- 
-Die Datenbank sollte hier wirklich auf einem eigenen Datenbankserver liegen. Virtualisiert man hier, die Datenbank auf einem eigenen Raid, getrennt von der VDR ablegen. Das I/O hier ist enorm. (60 und 134 Queries per second). Ich selbst habe hier den VDR auf einer eigenen SSD und den Datenbankserver einem getrennten Raid am laufen.