VDR4Arch
(Änderungen vom Wiki aus dem Github-Projekt hinzugefügt.) |
(Mit Github-Wiki synchronisiert) |
||
Zeile 39: | Zeile 39: | ||
=====Intel(VA-API)===== | =====Intel(VA-API)===== | ||
− | Zuerst muss der X-Server an die Ausgabe mit dem VDR angepasst werden. Dazu muss eine Konfigurationsdatei erstellt werden | + | Zuerst muss der Treiber installiert werden: |
+ | pacman -S xf86-video-intel | ||
+ | |||
+ | Danach wird der X-Server an die Ausgabe mit dem VDR angepasst werden. Dazu muss eine Konfigurationsdatei erstellt werden | ||
# nano /etc/X11/xorg.conf.d/20-vdr.conf | # nano /etc/X11/xorg.conf.d/20-vdr.conf | ||
mit folgendem Inhalt | mit folgendem Inhalt | ||
Zeile 106: | Zeile 109: | ||
=====NVidia(VDPAU)===== | =====NVidia(VDPAU)===== | ||
− | Zuerst muss der X-Server an die Ausgabe mit dem VDR angepasst werden. Dazu muss eine Konfigurationsdatei erstellt werden | + | Zuerst muss der Treiber installiert werden |
+ | pacman -S nvidia | ||
+ | |||
+ | Danach wird der X-Server an die Ausgabe mit dem VDR angepasst werden. Dazu muss eine Konfigurationsdatei erstellt werden | ||
# nano /etc/X11/xorg.conf.d/20-vdr.conf | # nano /etc/X11/xorg.conf.d/20-vdr.conf | ||
mit folgendem Inhalt | mit folgendem Inhalt | ||
Zeile 168: | Zeile 174: | ||
=====Softhddevice===== | =====Softhddevice===== | ||
− | # pacman -S | + | # pacman -S vdr-softhddevice |
Und über einen entsprechenden Symlink aktivieren | Und über einen entsprechenden Symlink aktivieren | ||
Zeile 176: | Zeile 182: | ||
=====Xineliboutput (eigenständiger VDR)===== | =====Xineliboutput (eigenständiger VDR)===== | ||
− | # pacman -S | + | # pacman -S vdr-xineliboutput |
Und über einen entsprechenden Symlink aktivieren | Und über einen entsprechenden Symlink aktivieren | ||
Zeile 187: | Zeile 193: | ||
=====Xineliboutput (Client/Server)===== | =====Xineliboutput (Client/Server)===== | ||
======Server====== | ======Server====== | ||
− | # pacman -S | + | # pacman -S vdr-xineliboutput |
Und über einen entsprechenden Symlink aktivieren | Und über einen entsprechenden Symlink aktivieren | ||
Zeile 262: | Zeile 268: | ||
[Unit] | [Unit] | ||
After=network-online.target | After=network-online.target | ||
+ | Wants=network-online.target | ||
Zusätzlich muss die Netzwerkeinstellung überarbeitet werden. Es hat sich gezeigt, das nicht alle netzwerbereitstellenden Daemons dazu in der Lage sind zu erkennen, wann das Netzwerk verfügbar ist. Dadurch hat das network-online.target keine Wirkung. | Zusätzlich muss die Netzwerkeinstellung überarbeitet werden. Es hat sich gezeigt, das nicht alle netzwerbereitstellenden Daemons dazu in der Lage sind zu erkennen, wann das Netzwerk verfügbar ist. Dadurch hat das network-online.target keine Wirkung. | ||
− | Es ist also empfehlenswert die Netzwerkverbindung auf systemd-networkd umzustellen. Dazu gibt es eine sehr umfangreiche Erklärung im [https://wiki.archlinux.org/index.php/Systemd-networkd#Basic_DHCP_network Arch Wiki] | + | Sicher funktioniert es mit systemd-networkd oder NetworkManager |
+ | |||
+ | Es ist also empfehlenswert die Netzwerkverbindung auf systemd-networkd umzustellen und folgenden Befehl auszuführen. | ||
+ | |||
+ | systemctl enable systemd-networkd-wait-online | ||
+ | |||
+ | Dazu gibt es eine sehr umfangreiche Erklärung im [https://wiki.archlinux.org/index.php/Systemd-networkd#Basic_DHCP_network Arch Wiki] | ||
+ | |||
+ | Für NetworkManager ist es dieser Befehl | ||
+ | |||
+ | systemctl enable NetworkManager-wait-online | ||
====Sicherer Shutdown über den Powerbutton==== | ====Sicherer Shutdown über den Powerbutton==== | ||
Zeile 283: | Zeile 300: | ||
wird der Daemon aktiviert und gestartet. | wird der Daemon aktiviert und gestartet. | ||
− | ==VDR4Arch- | + | ==VDR4Arch-Testing== |
− | + | ||
− | [vdr4arch- | + | [vdr4arch-testing] |
Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch | Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch | ||
Zeile 292: | Zeile 308: | ||
Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch | Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch | ||
− | + | ====Wechsel zurück von VDR4Arch-Testing nach VDR4Arch==== | |
− | + | ||
− | + | ||
− | ====Wechsel zurück von VDR4Arch- | + | |
− | + | ||
Zuerst muss | Zuerst muss | ||
− | [vdr4arch- | + | [vdr4arch-testing] |
Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch | Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch | ||
aus /etc/pacman.conf entfernt werden | aus /etc/pacman.conf entfernt werden | ||
− | + | Der eigentliche Downgrade läuft über | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
pacman -Syuu (Achtung zweimal "u") | pacman -Syuu (Achtung zweimal "u") | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Selbst kompilieren== | ==Selbst kompilieren== |
Version vom 18. Oktober 2014, 19:02 Uhr
Inhaltsverzeichnis |
Allgemein
VDR4Arch ist ein fertiger Paketsatz für VDR auf Arch Linux. Höchstes Ziel ist es dabei, die Regeln des Arch Linux DeveloperWikis einzuhalten.
Installation
Diese Installationsanleitung setzt direkt nach der Grundinstallation aus der Arch Linux-Wikiseite an. Solltest du jetzt noch keine lauffähige Arch Linux Grundinstallation haben beginne bitte hier
Im neu gebooteten System installieren wir zuerst die vdr4arch-keyring
# wget http://creimer.net/vdr4arch/repo/vdr4arch-keyring-20130219-1-any.pkg.tar.xz # pacman -U vdr4arch-keyring-20130219-1-any.pkg.tar.xz
und fügen anschließend das Repository an das Ende von /etc/pacman.conf
[vdr4arch] Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch
Dann aktualisieren wir die lokale Paketdatenbank
# pacman -Sy
Über
# pacman -Sl vdr4arch
kann man die verfügbaren Pakete auflisten.
Weitere Einzelheiten können auch in der Paketübersicht nachgelesen werden.
Ausgabe VA-API/VDPAU
Vorbereitung
Sollte der X-Server nicht schon auf eine andere Weise gestartet werden, muss der Start des X-Servers aktiviert werden. Dazu benötigen wir xlogin.
# pacman -S xlogin
Dieses aktivieren wir über
# systemctl enable xlogin@vdr
Intel(VA-API)
Zuerst muss der Treiber installiert werden:
pacman -S xf86-video-intel
Danach wird der X-Server an die Ausgabe mit dem VDR angepasst werden. Dazu muss eine Konfigurationsdatei erstellt werden
# nano /etc/X11/xorg.conf.d/20-vdr.conf
mit folgendem Inhalt
Section "Screen" Identifier "Screen0" Device "Device0" Monitor "HDMI1" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1920x1080_50" "1920x1080_60" "1920x1080_24" EndSubSection EndSection Section "Monitor" Identifier "HDMI1" Modeline "1920x1080_24" 74.230 1920 2560 2604 2752 1080 1084 1089 1125 +hsync +vsync Modeline "1920x1080_50" 148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync Modeline "1920x1080_60" 148.500 1920 2008 2056 2200 1080 1084 1089 1125 +hsync +vsync EndSection Section "Extensions" Option "Composite" "Disable" EndSection
Damit die Tonausgabe auch funktioniert legen stellen wir das Standard Device von ALSA in der /etc/asound.conf um.
Bei Intel sollte grundsätzlich das hier funktionieren.
pcm.!default { type hw card PCH device 7 }
Sollte wider erwarten nicht funktionieren, lohnt sich ein Blick in die Deviceliste.
Dafür installieren wir alsa-utils
# pacman -S alsa-utils
und geben die Deviceliste mit
# aplay -l
aus.
**** List of PLAYBACK Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1] Subdevices: 1/1 Subdevice #0: subdevice #0
Intel hat in den neueren Treiberversionen einen unschönen Grauschleier über dem Bild. Um diesen wegzubekommen installieren wir xorg-xrandr
pacman -S xorg-xrandr
und erstellen die Datei /home/vdr/.xinitrc
#!/usr/bin/bash xrandr --output HDMI1 --set "Broadcast RGB" "Full"
NVidia(VDPAU)
Zuerst muss der Treiber installiert werden
pacman -S nvidia
Danach wird der X-Server an die Ausgabe mit dem VDR angepasst werden. Dazu muss eine Konfigurationsdatei erstellt werden
# nano /etc/X11/xorg.conf.d/20-vdr.conf
mit folgendem Inhalt
Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" DefaultDepth 24 Option "ExactModeTimingsDVI" "True" Option "FlatPanelProperties" "Dithering = disabled" Option "NoLogo" "True" SubSection "Display" Depth 24 Modes "1920x1080_50" "1920x1080_60_0" "1920x1080_24" EndSubSection EndSection
Dieses Grundgerüst muss dann in Ausnahmefällen noch etwas erweitert werden:
Option "DPI" "100x100" Option "UseEdidDpi" "False"
Für Displays mit falschen DPI-Angaben
Option "CustomEDID" "DFP-0:/etc/X11/edid.bin"
Zum Einlesen einer edid.bin
Eine edid.bin erstellt man so:
# X -verbose 6 > /tmp/xlog 2>&1
Muss nach etwa 5 Sekunden mit Strg + C abgebrochen werden
# nvidia-xconfig --extract-edids-from-file=/tmp/xlog --extract-edids-output-file=/etc/X11/edid.bin
Damit die Tonausgabe auch funktioniert legen stellen wir das Standard Device von ALSA in der /etc/asound.conf um.
Bei NVidia Grafikkarten sollte grundsätzlich das hier funktionieren.
pcm.!default { type hw card NVidia device 7 }
Sollte wider erwarten nicht funktionieren, lohnt sich ein Blick in die Deviceliste.
Dafür installieren wir alsa-utils
# pacman -S alsa-utils
und geben die Deviceliste mit
# aplay -l
aus.
**** List of PLAYBACK Hardware Devices **** card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1] Subdevices: 0/1 Subdevice #0: subdevice #0
Plugins
Softhddevice
# pacman -S vdr-softhddevice
Und über einen entsprechenden Symlink aktivieren
# cd /etc/vdr/conf.d # ln -s ../conf.avail/50-softhddevice.conf .
Xineliboutput (eigenständiger VDR)
# pacman -S vdr-xineliboutput
Und über einen entsprechenden Symlink aktivieren
# cd /etc/vdr/conf.d # ln -s ../conf.avail/50-xineliboutput.conf .
Setze --local=sxfe (oder --local=fbfe) und --remote=none in der /etc/vdr/conf.d/50-xineliboutput.conf
Xineliboutput (Client/Server)
Server
# pacman -S vdr-xineliboutput
Und über einen entsprechenden Symlink aktivieren
# cd /etc/vdr/conf.d # ln -s ../conf.avail/50-xineliboutput.conf .
Setze --local=none und --remote=3789 in der /etc/vdr/conf.d/50-xineliboutput.conf
Client
Installiere die Xineliboutput Frontends
# pacman -S xineliboutput-frontends
Um vdr-sxfe zu starten:
# vdr-sxfe <IP-Adresse des Servers>
Um vdr-fbfe zu starten:
# vdr-fbfe <IP-Adresse des Servers>
Ausgabe über Full-Featured
# pacman -S vdr
(vdr-dvbsddevice und vdr-dvbhddevice sind Bestandteil des vdr Paketes)
Und über einen entsprechenden Symlink aktivieren
# cd /etc/vdr/conf.d # ln -s ../conf.avail/50-dvbhddevice.conf .
oder
# ln -s ../conf.avail/50-dvbsddevice.conf .
Für die Technotrend S2-6400 muss natürlich noch der Treiber installiert werden
# pacman -S technotrend-dvb-drivers
und mit
# modprobe saa716x_ff
geladen werden. Nach einem Neustart übernimmt das natürlich udev.
Die eigentliche Konfiguration läuft über /etc/vdr/conf.avail bzw. über /etc/vdr/conf.d VDR spezifische Einstellungen findet man in /etc/vdr/conf.d/10-vdr.conf
Plugins legen eine Config in /etc/vdr/conf.avail ab und um es zu aktivieren muss ein Symlink nach /etc/vdr/conf.d erstellt werden. Plugins werden in alphabetischer Reihenfolge geladen.
Damit auch Tastatureingaben im VDR ankommen, muss die Datei /etc/systemd/system/vdr.service.d/fullfeatured.conf angelegt werden.
[Unit] Conflicts=getty@tty8.service [Service] StandardInput=tty TTYPath=/dev/tty8 ExecStartPre=/usr/bin/chvt 8
Jetzt noch den VDR für den Autostart aktivieren
# systemctl enable vdr
Und schließlich starten.
# systemctl start vdr
Optionale Einstellungen
Auf das Netzwerk warten
Für den Fall, dass ein Plugin nicht dazu in der Lage ist, selbstständig auf eine Netzwerkverbindung zu warten sollte folgendes geändert werden.
In /etc/systemd/system/vdr.service.d die Datei 01-wait-for-net.conf angelegt werden.
# mkdir -p /etc/systemd/system/vdr.service.d # nano /etc/systemd/system/vdr.service.d/01-wait-for-net.conf
[Unit] After=network-online.target Wants=network-online.target
Zusätzlich muss die Netzwerkeinstellung überarbeitet werden. Es hat sich gezeigt, das nicht alle netzwerbereitstellenden Daemons dazu in der Lage sind zu erkennen, wann das Netzwerk verfügbar ist. Dadurch hat das network-online.target keine Wirkung.
Sicher funktioniert es mit systemd-networkd oder NetworkManager
Es ist also empfehlenswert die Netzwerkverbindung auf systemd-networkd umzustellen und folgenden Befehl auszuführen.
systemctl enable systemd-networkd-wait-online
Dazu gibt es eine sehr umfangreiche Erklärung im Arch Wiki
Für NetworkManager ist es dieser Befehl
systemctl enable NetworkManager-wait-online
Sicherer Shutdown über den Powerbutton
Der Powerbutton wird normalerweise von systemd beobachtet. Systemd löst beim Drücken den Shutdown aus. Das wäre alles kein Problem, wenn da nicht der VDR wäre. Der Timer wird nur gespeichert, wenn der VDR den Shutdown selbst auslöst.
Im Fall VDR löst den Shutdown aus: /usr/lib/vdr/bin/shutdown.sh wird gestartet, diese setzt den Wakeup-Timer und löst den Shutdown aus. Im Fall systemd löst den Shutdown aus: VDR bekommt von systemd ein SIGTERM gesendet, der VDR beendet sich und systemd fährt mit dem Shutdown fort (Der Wakeup-Timer wurde nicht gesetzt).
vdrpbd verbietet systemd auf den Powerbutton zu reagieren. Stattdessen wartet vdrpbd auf den Tastendruck und teilt dem VDR über svdrpsend mit, dass der Powerbutton gedrückt wurde.
Mit
# pacman -S vdrpbd
wird vdrpbd installiert und über
# systemctl enable vdrpbd
und
# systemctl start vdrpbd
wird der Daemon aktiviert und gestartet.
VDR4Arch-Testing
[vdr4arch-testing] Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch [vdr4arch] Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch
Wechsel zurück von VDR4Arch-Testing nach VDR4Arch
Zuerst muss
[vdr4arch-testing] Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch
aus /etc/pacman.conf entfernt werden
Der eigentliche Downgrade läuft über
pacman -Syuu (Achtung zweimal "u")
Selbst kompilieren
In einer Archlinux-Installation, aufgesetzt auf einer virtuellen Maschine folgendes ausführen.
Installation der Entwicklungsumgebung
# pacman -S base-devel
repo-make installieren
# pacman -U http://downloads.tuxfamily.org/repomake/repo-make-1.1.0-1-any.pkg.tar.xz
PKGBUILDs auschecken
# git clone https://github.com/CReimer/vdr4arch.git # cd vdr4arch
Automatischen Buildvorgang starten
# repo-make
Die Pakete landen anschließend im neuen Verzeichnis "repo"