VDR4Arch

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K (VDR4Arch-Next (VDR 2.1.x): Repo Pfad angepasst)
(Informationen für Intel eingetragen.)
Zeile 24: Zeile 24:
 
Weitere Einzelheiten können auch in der [[VDR4Arch/Paketübersicht|Paketübersicht]] nachgelesen werden.<br/>
 
Weitere Einzelheiten können auch in der [[VDR4Arch/Paketübersicht|Paketübersicht]] nachgelesen werden.<br/>
  
===Ausgabe über Grafikkarte===
+
===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 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 X-Server an die Ausgabe mit dem VDR angepasst werden. Dazu muss eine Konfigurationsdatei erstellt werden
 
Zuerst muss der X-Server an die Ausgabe mit dem VDR angepasst werden. Dazu muss eine Konfigurationsdatei erstellt werden
Zeile 56: Zeile 136:
 
  # nvidia-xconfig --extract-edids-from-file=/tmp/xlog --extract-edids-output-file=/etc/X11/edid.bin
 
  # nvidia-xconfig --extract-edids-from-file=/tmp/xlog --extract-edids-output-file=/etc/X11/edid.bin
  
 
Außerdem muss der Start des X-Servers aktiviert werden. Dazu benötigen wir xlogin.
 
 
# pacman -S xlogin
 
 
Dieses aktivieren wir über
 
 
# systemctl enable xlogin@vdr
 
  
 
Damit die Tonausgabe auch funktioniert legen stellen wir das Standard Device von ALSA in der /etc/asound.conf um.
 
Damit die Tonausgabe auch funktioniert legen stellen wir das Standard Device von ALSA in der /etc/asound.conf um.
Zeile 75: Zeile 147:
 
  }
 
  }
  
Wird keine NVidia Grafikkarte benutzt, oder es sollte wider erwarten nicht funktionieren, lohnt sich ein Blick in die Deviceliste.
+
Sollte wider erwarten nicht funktionieren, lohnt sich ein Blick in die Deviceliste.
  
 
Dafür installieren wir alsa-utils
 
Dafür installieren wir alsa-utils
Zeile 92: Zeile 164:
 
   Subdevice #0: subdevice #0
 
   Subdevice #0: subdevice #0
  
 +
====Plugins====
  
====Softhddevice====
+
=====Softhddevice=====
  
 
  # pacman -S nvidia vdr-softhddevice
 
  # pacman -S nvidia vdr-softhddevice
Zeile 102: Zeile 175:
 
  # ln -s ../conf.avail/50-softhddevice.conf .
 
  # ln -s ../conf.avail/50-softhddevice.conf .
  
====Xineliboutput (eigenständiger VDR)====
+
=====Xineliboutput (eigenständiger VDR)=====
 
{{Box Hinweis|Nur aus der Erinnerung aufgeschrieben. Noch ungetestet}}
 
{{Box Hinweis|Nur aus der Erinnerung aufgeschrieben. Noch ungetestet}}
  
Zeile 112: Zeile 185:
 
  # ln -s ../conf.avail/50-xineliboutput.conf .
 
  # ln -s ../conf.avail/50-xineliboutput.conf .
  
====Xineliboutput (Client/Server)====
+
=====Xineliboutput (Client/Server)=====
 
{{Box Hinweis|Client/Server Betrieb mit Xineliboutput ist in VDR4Arch im Moment noch nicht vorgesehen}}
 
{{Box Hinweis|Client/Server Betrieb mit Xineliboutput ist in VDR4Arch im Moment noch nicht vorgesehen}}
  
 
===Ausgabe über Full-Featured===
 
===Ausgabe über Full-Featured===
  # pacman -S nvidia vdr
+
  # pacman -S vdr
 
(vdr-dvbsddevice und vdr-dvbhddevice sind Bestandteil des vdr Paketes)
 
(vdr-dvbsddevice und vdr-dvbhddevice sind Bestandteil des vdr Paketes)
  
Zeile 127: Zeile 200:
  
 
Für die Technotrend S2-6400 muss natürlich noch der Treiber installiert werden
 
Für die Technotrend S2-6400 muss natürlich noch der Treiber installiert werden
  # pacman -S v4l-dvb-saa716x
+
  # pacman -S technotrend-dvb-drivers
 
und mit
 
und mit
 
  # modprobe saa716x_ff
 
  # modprobe saa716x_ff
Zeile 152: Zeile 225:
 
{{Box Hinweis|Ungetestet: Hinweis bitte entfernen, wenn es funktioniert}}
 
{{Box Hinweis|Ungetestet: Hinweis bitte entfernen, wenn es funktioniert}}
  
Jetzt noch den VDR in für den Autostart aktivieren
+
Jetzt noch den VDR für den Autostart aktivieren
 
  # systemctl enable vdr
 
  # systemctl enable vdr
  
Zeile 196: Zeile 269:
  
 
Beim nächsten Neustart wird jetzt so lange gewartet, bis die Verbindung tatsächlich etabliert ist und erst danach start der VDR.
 
Beim nächsten Neustart wird jetzt so lange gewartet, bis die Verbindung tatsächlich etabliert ist und erst danach start der VDR.
 +
 +
{{Box Hinweis|Veraltet: Sollte bei Gelegenheit auf systemd-networkd geändert werden}}
  
 
==VDR4Arch-Next (VDR 2.1.x)==
 
==VDR4Arch-Next (VDR 2.1.x)==

Version vom 23. Juli 2014, 13:11 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

Und aktualisieren 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 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 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 nvidia vdr-softhddevice

Und über einen entsprechenden Symlink aktivieren

# cd /etc/vdr/conf.d
# ln -s ../conf.avail/50-softhddevice.conf .
Xineliboutput (eigenständiger VDR)
Hinweis
Hinweis

Nur aus der Erinnerung aufgeschrieben. Noch ungetestet


# pacman -S nvidia vdr-xineliboutput

Und über einen entsprechenden Symlink aktivieren

# cd /etc/vdr/conf.d
# ln -s ../conf.avail/50-xineliboutput.conf .
Xineliboutput (Client/Server)
Hinweis
Hinweis

Client/Server Betrieb mit Xineliboutput ist in VDR4Arch im Moment noch nicht vorgesehen


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
Hinweis
Hinweis

Ungetestet: Hinweis bitte entfernen, wenn es funktioniert


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.target

Zusätzlich muss die Netzwerkeinstellung überarbeitet werden. Dazu muss zuerst der standardmäßig startende dhcpcd aus dem Autostart entfernt werden.

# systemctl disable dhcpcd

Danach müssen wir herausfinden, wie das Netzwerkgerät heißt

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host 
      valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
   link/ether 00:24:1d:d5:c1:42 brd ff:ff:ff:ff:ff:ff
   inet 192.168.178.35/24 brd 192.168.178.255 scope global enp2s0
      valid_lft forever preferred_lft forever
   inet6 fd00::224:1dff:fed5:c142/64 scope global dynamic 
      valid_lft 6790sec preferred_lft 3190sec
   inet6 fe80::224:1dff:fed5:c142/64 scope link 
      valid_lft forever preferred_lft forever

In diesem Fall fügen wir den dhcpcd devicegebunden in den Autostart ein

# systemctl enable dhcpcd@enp2s0

Beim nächsten Neustart wird jetzt so lange gewartet, bis die Verbindung tatsächlich etabliert ist und erst danach start der VDR.

Hinweis
Hinweis

Veraltet: Sollte bei Gelegenheit auf systemd-networkd geändert werden


VDR4Arch-Next (VDR 2.1.x)

Für die VDR-Entwicklerversion ist ein zusätzliches Repository nötig.

[vdr4arch-next]
Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch

[vdr4arch]
Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch


Das normale vdr4arch Repository muss unbedingt (wie oben gezeigt) in der pacman.conf erhalten bleiben, da nur die veränderten Pakete im Next Repository landen.

Wechsel zurück von VDR4Arch-Next nach VDR4Arch

Dieser Schritt ist grundsätzlich nicht zu empfehlen. Will man es trotzdem unbedingt machen sind einige Schritte dazu notwendig.

Zuerst muss

[vdr4arch-next]
Server = http://creimer.net/vdr4arch/repos/$repo/os/$arch

aus /etc/pacman.conf entfernt werden

Danach muss der Paketspeicher von pacman geleert werden.

pacman -Sc --noconfirm

Dies ist notwendig um mögliche Konflikte durch gleichnamige Pakete zu vermeiden. Ein Beispiel

Liegt in VDR4Arch-Stable das Paket vdr-aaa-1.0-1-x86_64.pkg.tar.xz [kompiliert gegen VDR 2.0.x] liegt in VDR4Arch-Next das entsprechende Gegenstück vdr-aaa-1.0-2-x86_64.pkg.tar.xz [Kompiliert gegen VDR 2.1.x]. Wird in VDR4Arch-Stable die pkgrel hochgezählt, hat sie genau den Paketnamen, den das Paket vorher in VDR4Arch-Next hatte (vdr-aaa-1.0-2-x86_64.pkg.tar.xz [Kompiliert gegen VDR 2.0.x]).

Wechselt man in dieser Situation zurück zu VDR4Arch-Stable liegt das gleichnamige Paket aus VDR4Arch-Next noch im Paketspeicher. Dieses ist allerdings nicht gegen den VDR in VDR4Arch-Stable kompiliert und dadurch wird der Downgrade mit einem Fehler abgebrochen.

Ist der Paketspeicher geleert wird über

pacman -Syuu (Achtung zweimal "u")

der eigentliche Downgrade ausgelöst.

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"