YaVDR/Templates
Hepi (Diskussion | Beiträge) K |
Ulf (Diskussion | Beiträge) (→Ganz kurzes Beispiel Buffer anpassen-NICHT UPDATESICHER-) |
||
(8 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
+ | {{Vorlage:YaVDRNavigation}} | ||
Viele Konfigurationsdateien werden regelmäßig automatisch von yaVDR mit neuem Inhalt überschrieben. Wenn man manuelle Änderungen an Konfigurationsdateien vornehmen möchte, die langfristig überleben sollen, so sollte man das Templating-Konzept verstehen und sich Custom-Templates anlegen. Dieser Artikel erklärt beides. | Viele Konfigurationsdateien werden regelmäßig automatisch von yaVDR mit neuem Inhalt überschrieben. Wenn man manuelle Änderungen an Konfigurationsdateien vornehmen möchte, die langfristig überleben sollen, so sollte man das Templating-Konzept verstehen und sich Custom-Templates anlegen. Dieser Artikel erklärt beides. | ||
== Problembeschreibung == | == Problembeschreibung == | ||
− | + | Unter yaVDR werden die wichtigsten Konfigurationsdateien automatisch aus Vorlagen zusammengestellt. Diese Vorlagen werden auch Templates genannt. Templates, die das yaVDR-Team ausliefert, nennen wir im Folgenden Standard-Templates. Eine [http://www.yavdr.org/developer-zone/template-overview/ Übersicht der Standard-Templates] befindet sich auf der yaVDR Homepage. | |
Will man nun etwas in die Konfigurationsdateien einfügen, hat man folgende Probleme: | Will man nun etwas in die Konfigurationsdateien einfügen, hat man folgende Probleme: | ||
Zeile 9: | Zeile 10: | ||
Deshalb gibt es die Möglichkeit, Custom-Templates anzulegen, welche die Standard-Templates ergänzen oder Teile von ihnen überschreiben. Alle Custom-Templates sind manuell anzulegen unterhalb des Ordners <code>/etc/yavdr/templates_custom/</code>. In diesem Ordner wird bei Paketupdates nichts verändert, gelöscht, überschrieben. | Deshalb gibt es die Möglichkeit, Custom-Templates anzulegen, welche die Standard-Templates ergänzen oder Teile von ihnen überschreiben. Alle Custom-Templates sind manuell anzulegen unterhalb des Ordners <code>/etc/yavdr/templates_custom/</code>. In diesem Ordner wird bei Paketupdates nichts verändert, gelöscht, überschrieben. | ||
− | {{Box Hinweis|Um den Frust bei Euch klein zu halten, werden alte Versionen von Konfigurationsdateien vor dem Überschreiben | + | {{Box Hinweis|Um den Frust bei Euch klein zu halten, werden alte Versionen von Konfigurationsdateien vor dem Überschreiben gesichert (unterhalb von <code>/var/cache/yavdr/process-template-backup</code>).}} |
==Beispiele== | ==Beispiele== | ||
===Ausführliches Beispiel /etc/X11/xorg.conf.yavdr=== | ===Ausführliches Beispiel /etc/X11/xorg.conf.yavdr=== | ||
− | Als praktisches Beispiel nehmen wir uns mal die Konfigurationsdatei /etc/X11/xorg.conf.yavdr vor. | + | Als praktisches Beispiel nehmen wir uns mal die Konfigurationsdatei <code>/etc/X11/xorg.conf.yavdr</code> vor. |
− | Existieren keine Custom-Templates, wird die Datei xorg.conf.yavdr gänzlich aus den Standard-Templates generiert, welche das yaVDR-Team pflegt, ausliefert und aktualisiert. Bevor wir Custom Templates für die xorg.conf.yavdr anlegen, schauen wir uns erst die yaVDR-Standard-Templates für diese Datei an. Diese liegen | + | Existieren keine Custom-Templates, wird die Datei xorg.conf.yavdr gänzlich aus den Standard-Templates generiert, welche das yaVDR-Team pflegt, ausliefert und aktualisiert. Bevor wir Custom Templates für die xorg.conf.yavdr anlegen, schauen wir uns erst die yaVDR-Standard-Templates für diese Datei an. Diese liegen im Verzeichnis <code>/usr/share/yavdr/templates/etc/X11/xorg.conf.yavdr/</code>. Den Inhalt des Verzeichnisses zeigt Dir folgender Befehl an: |
− | + | ||
− | + | ||
− | + | ||
ls -all /usr/share/yavdr/templates/etc/X11/xorg.conf.yavdr/ | ls -all /usr/share/yavdr/templates/etc/X11/xorg.conf.yavdr/ | ||
Zeile 23: | Zeile 21: | ||
Wenn du etwas einfügen willst, dann erzeugst du, falls nötig, das Verzeichnis | Wenn du etwas einfügen willst, dann erzeugst du, falls nötig, das Verzeichnis | ||
− | mkdir -p /etc/yavdr/templates_custom/etc/X11/xorg.conf.yavdr/ | + | sudo mkdir -p /etc/yavdr/templates_custom/etc/X11/xorg.conf.yavdr/ |
In diesem Verzeichnis legst du eine Datei mit beliebigem Namen an. Du musst nur sicherstellen, dass der Name an die richtige Stelle zwischen den Namen der anderen Dateien sortiert würde. | In diesem Verzeichnis legst du eine Datei mit beliebigem Namen an. Du musst nur sicherstellen, dass der Name an die richtige Stelle zwischen den Namen der anderen Dateien sortiert würde. | ||
Zeile 46: | Zeile 44: | ||
Das Verfahren funktioniert natürlich nicht nur mit xorg.conf.yavdr | Das Verfahren funktioniert natürlich nicht nur mit xorg.conf.yavdr | ||
+ | |||
=== Kurzes Beispiel /etc/vdr/vdr-nvram-wakeup.conf === | === Kurzes Beispiel /etc/vdr/vdr-nvram-wakeup.conf === | ||
Um eigene updatesichere Templates für vdr-nvram-wakeup.conf zu erstellen beginnen wir mit dem Verzeichnis: | Um eigene updatesichere Templates für vdr-nvram-wakeup.conf zu erstellen beginnen wir mit dem Verzeichnis: | ||
Zeile 63: | Zeile 62: | ||
Und dann das Ergebnis prüfen mit: | Und dann das Ergebnis prüfen mit: | ||
cat /etc/vdr/vdr-nvram-wakeup.conf | cat /etc/vdr/vdr-nvram-wakeup.conf | ||
− | === Ganz kurzes | + | === Ganz kurzes Beispiel Buffer anpassen-NICHT UPDATESICHER-=== |
− | In diesem Beispiel passen wir die mitgelieferten Templates mit aktuell gehandelten Bestwerten an. | + | In diesem Beispiel passen wir die bei yavdr 0.4 mitgelieferten Templates mit aktuell gehandelten Bestwerten an. |
nano /usr/share/yavdr/templates/etc/xine/config/70_engine | nano /usr/share/yavdr/templates/etc/xine/config/70_engine | ||
− | Dort suchen wir folgende Werte und passen nur | + | Dort suchen wir folgende Werte und passen nur die Zahlenwerte an: |
# Anzahl der Audiopuffer | # Anzahl der Audiopuffer | ||
# numeric, default: 230 | # numeric, default: 230 | ||
− | engine.buffers.audio_num_buffers: | + | engine.buffers.audio_num_buffers:800 |
# Anzahl der Videopuffer | # Anzahl der Videopuffer | ||
# numeric, default: 500 | # numeric, default: 500 | ||
− | engine.buffers.video_num_buffers: | + | engine.buffers.video_num_buffers:1800 |
+ | # default number of video frames | ||
+ | # numeric, default: 15 | ||
+ | engine.buffers.video_num_frames:30 | ||
− | Das Gleiche tun die vdr-sxfe user (oder auch alle es schadet ja nicht) mit folgender Datei: | + | Das Gleiche tun die vdr-sxfe user (oder auch alle, es schadet ja nicht) mit folgender Datei: |
nano /usr/share/yavdr/templates/etc/vdr-sxfe/config_xineliboutput/70_engine | nano /usr/share/yavdr/templates/etc/vdr-sxfe/config_xineliboutput/70_engine | ||
− | Dann beide | + | VDR-Frontend Stoppen |
+ | stop vdr-frontend | ||
+ | Dann beide Dateien noch verarbeiten: | ||
process-template /etc/vdr-sxfe/config_xineliboutput | process-template /etc/vdr-sxfe/config_xineliboutput | ||
process-template /etc/xine/config | process-template /etc/xine/config | ||
− | Und VDR | + | Und VDR neu starten: |
− | + | ||
start vdr-frontend | start vdr-frontend | ||
==Zusammenfassung== | ==Zusammenfassung== | ||
+ | [[Datei:yavdr_templating-visualization.png]] | ||
+ | |||
+ | |||
Die originalen Vorlagen von yaVDR liegen in: /usr/share/yavdr/templates | Die originalen Vorlagen von yaVDR liegen in: /usr/share/yavdr/templates | ||
Zeile 90: | Zeile 96: | ||
Daraus erzeugt process-template dann eine Datei. | Daraus erzeugt process-template dann eine Datei. | ||
+ | |||
+ | |||
===Einige Dateien benötigen besondere Rechte oder Sicherheitseinstellungen.=== | ===Einige Dateien benötigen besondere Rechte oder Sicherheitseinstellungen.=== |
Aktuelle Version vom 2. Juli 2012, 21:05 Uhr
basierend auf Nvidia VDPAU, VDR und Ubuntu Linux
Die offizielle deutschsprachige Dokumentation befindet sich auf der yaVDR-Website: http://yavdr.org/documentation/de.
Die offizielle englischsprachige Dokumentation befindet sich auf der yaVDR-Website: http://yavdr.org.
Viele Konfigurationsdateien werden regelmäßig automatisch von yaVDR mit neuem Inhalt überschrieben. Wenn man manuelle Änderungen an Konfigurationsdateien vornehmen möchte, die langfristig überleben sollen, so sollte man das Templating-Konzept verstehen und sich Custom-Templates anlegen. Dieser Artikel erklärt beides.
Inhaltsverzeichnis |
[Bearbeiten] Problembeschreibung
Unter yaVDR werden die wichtigsten Konfigurationsdateien automatisch aus Vorlagen zusammengestellt. Diese Vorlagen werden auch Templates genannt. Templates, die das yaVDR-Team ausliefert, nennen wir im Folgenden Standard-Templates. Eine Übersicht der Standard-Templates befindet sich auf der yaVDR Homepage.
Will man nun etwas in die Konfigurationsdateien einfügen, hat man folgende Probleme:
- Wenn man die Konfigurationsdatei direkt ändert, wird die manuelle Änderung überschrieben beim nächsten Paketupdate eines Paketes wie yavdr-utils, yavdr-startup oder ähnlichem. Beim Installieren des Paketes werden meist alle Konfigurationsdateien neu generiert, basierend auf den Standard-Templates.
- Wenn man nun denkt, man ist schlau, und ändert gleich die Standard-Templates, ist man auch nicht sicher: Die Standard-Templates werden bei einem Paketupdate aktualisiert und dabei werden manuelle Änderungen auch überschrieben.
Deshalb gibt es die Möglichkeit, Custom-Templates anzulegen, welche die Standard-Templates ergänzen oder Teile von ihnen überschreiben. Alle Custom-Templates sind manuell anzulegen unterhalb des Ordners /etc/yavdr/templates_custom/
. In diesem Ordner wird bei Paketupdates nichts verändert, gelöscht, überschrieben.
Um den Frust bei Euch klein zu halten, werden alte Versionen von Konfigurationsdateien vor dem Überschreiben gesichert (unterhalb von /var/cache/yavdr/process-template-backup
).
[Bearbeiten] Beispiele
[Bearbeiten] Ausführliches Beispiel /etc/X11/xorg.conf.yavdr
Als praktisches Beispiel nehmen wir uns mal die Konfigurationsdatei /etc/X11/xorg.conf.yavdr
vor.
Existieren keine Custom-Templates, wird die Datei xorg.conf.yavdr gänzlich aus den Standard-Templates generiert, welche das yaVDR-Team pflegt, ausliefert und aktualisiert. Bevor wir Custom Templates für die xorg.conf.yavdr anlegen, schauen wir uns erst die yaVDR-Standard-Templates für diese Datei an. Diese liegen im Verzeichnis /usr/share/yavdr/templates/etc/X11/xorg.conf.yavdr/
. Den Inhalt des Verzeichnisses zeigt Dir folgender Befehl an:
ls -all /usr/share/yavdr/templates/etc/X11/xorg.conf.yavdr/
Diese Template-Dateien erzeugen nach Namen sortiert die xorg.conf.yavdr. Das heißt, sie werden alphabetisch abgearbeitet bzw. wenn sie mit Ziffern beginnen, numerisch sortiert. Eine einzelne Datei ist also nur ein Schnipsel des Ganzen.
Wenn du etwas einfügen willst, dann erzeugst du, falls nötig, das Verzeichnis
sudo mkdir -p /etc/yavdr/templates_custom/etc/X11/xorg.conf.yavdr/
In diesem Verzeichnis legst du eine Datei mit beliebigem Namen an. Du musst nur sicherstellen, dass der Name an die richtige Stelle zwischen den Namen der anderen Dateien sortiert würde.
Beispiel:
- 001mein_template
Der Inhalt dieser Datei (Deine Anpassungen) wird nun beim Generieren von xorg.conf.yavdr eingefügt, und zwar zwischen 000header und 0100serverlayout-header:
- 000header
- 001mein_template
- 0100serverlayout-header
- ...
Danach führst du das Kommando
sudo process-template /etc/X11/xorg.conf.yavdr
aus, fertig.
Solltest du etwas von uns ersetzen wollen, dann muss deine Datei den selben Namen wie unsere Datei haben. Wenn jetzt in Zukunft wieder eine neue xorg.conf.yavdr von uns kommt, dann werden deine Änderungen automatisch berücksichtigt.
Das Verfahren funktioniert natürlich nicht nur mit xorg.conf.yavdr
[Bearbeiten] Kurzes Beispiel /etc/vdr/vdr-nvram-wakeup.conf
Um eigene updatesichere Templates für vdr-nvram-wakeup.conf zu erstellen beginnen wir mit dem Verzeichnis:
mkdir -p /etc/yavdr/templates_custom/etc/vdr/vdr-nvram-wakeup.conf/
Dorthin kopieren wir nur die benötigten original Templates:
cp /usr/share/yavdr/templates/etc/vdr/vdr-nvram-wakeup.conf/10_enable-nvram /etc/yavdr/templates_custom/etc/vdr/vdr-nvram-wakeup.conf/ cp /usr/share/yavdr/templates/etc/vdr/vdr-nvram-wakeup.conf/20_commandline /etc/yavdr/templates_custom/etc/vdr/vdr-nvram-wakeup.conf/ cp /usr/share/yavdr/templates/etc/vdr/vdr-nvram-wakeup.conf/30_specialshutdown /etc/yavdr/templates_custom/etc/vdr/vdr-nvram-wakeup.conf/ cp /usr/share/yavdr/templates/etc/vdr/vdr-nvram-wakeup.conf/40_force-reboot /etc/yavdr/templates_custom/etc/vdr/vdr-nvram-wakeup.conf/
Und passen die Kopien der Reihe nach unseren Bedürfnissen an:
nano /etc/yavdr/templates_custom/etc/vdr/vdr-nvram-wakeup.conf/10_enable-nvram nano /etc/yavdr/templates_custom/etc/vdr/vdr-nvram-wakeup.conf/20_commandline nano /etc/yavdr/templates_custom/etc/vdr/vdr-nvram-wakeup.conf/30_specialshutdown nano /etc/yavdr/templates_custom/etc/vdr/vdr-nvram-wakeup.conf/40_force-reboot
Jetzt noch:
process-template /etc/vdr/vdr-nvram-wakeup.conf
Und dann das Ergebnis prüfen mit:
cat /etc/vdr/vdr-nvram-wakeup.conf
[Bearbeiten] Ganz kurzes Beispiel Buffer anpassen-NICHT UPDATESICHER-
In diesem Beispiel passen wir die bei yavdr 0.4 mitgelieferten Templates mit aktuell gehandelten Bestwerten an.
nano /usr/share/yavdr/templates/etc/xine/config/70_engine
Dort suchen wir folgende Werte und passen nur die Zahlenwerte an:
# Anzahl der Audiopuffer # numeric, default: 230 engine.buffers.audio_num_buffers:800 # Anzahl der Videopuffer # numeric, default: 500 engine.buffers.video_num_buffers:1800 # default number of video frames # numeric, default: 15 engine.buffers.video_num_frames:30
Das Gleiche tun die vdr-sxfe user (oder auch alle, es schadet ja nicht) mit folgender Datei:
nano /usr/share/yavdr/templates/etc/vdr-sxfe/config_xineliboutput/70_engine
VDR-Frontend Stoppen
stop vdr-frontend
Dann beide Dateien noch verarbeiten:
process-template /etc/vdr-sxfe/config_xineliboutput process-template /etc/xine/config
Und VDR neu starten:
start vdr-frontend
[Bearbeiten] Zusammenfassung
Die originalen Vorlagen von yaVDR liegen in: /usr/share/yavdr/templates
Verzeichnis für eigene Vorlagen: /etc/yavdr/templates_custom
Daraus erzeugt process-template dann eine Datei.
[Bearbeiten] Einige Dateien benötigen besondere Rechte oder Sicherheitseinstellungen.
Das läßt sich so erreichen:
sudo process-template --owner=vdr --group=vdr /var/lib/vdr/setup.conf sudo process-template --mode 755 /usr/bin/start-xine