[solved][softhddevice] Soundausgabe über pipewire

  • Hi,

    ich starte den vdr über systemd als User=vdr. Klappt super.

    Dann möchte ich aber, dass der pipewire.service als PulseServer die Sound-Ausgabe von softhddevice macht.

    Ohne den klappt Sound bei mir mit plughw=0,3 wie gewünscht.

    Wenn ich aber den Sound über pipewire laufen lassen möchte, kommt nix aus den Lautsprechern, weil pipewire zu spät startet, und daher sowas wie "audio/alsa: playback open 'pulse' error: Connection refused" gemeldet wird. Wenn dann der pipewire endlich soweit ist, kann softhddevice nicht mehr connecten.

    Oder doch? Oder kann man das anders lösen?

    Danke und ciao.

    Michael.

    VDR zwei drei
    • VDR 01 (Server): 2.7.4/6 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): 2.6.9 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - mpv - osd2web - osdteletext - skinnopacity - softhddevice - streamdev-client - svdrpservice]
  • Ich hab eine Methode gefunden, wie man zumindest auf systemd Maschinen eine session für den User vdr zum Zeitpunkt des VDR-Starts verfügbar haben kann, inkl. laufendem pipewire (sofern es für den User aktiviert ist):

    Code
    loginctl enable-linger vdr

    Trotzdem bekomme ich für "-a pulse" den Fehler "audio/alsa: playback open 'pulse' error: Connection refused".

    Für "-a pipewire" kommt stattdessen "audio/alsa: playback open 'pipewire' error: Host is down".

    Das Dumme ist, dass der VDR bei mir als root gestartet wird und erst später den Kontextswitch zum User vdr macht. Dadurch ist die laufende Session nicht die, die von ihm genutzt wird.

    VDR zwei drei
    • VDR 01 (Server): 2.7.4/6 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): 2.6.9 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - mpv - osd2web - osdteletext - skinnopacity - softhddevice - streamdev-client - svdrpservice]
  • Kannst Du pipewire per systemd kontrollieren?

    Wenn ja, evtl. in etwa folgende Abhängigkeit per systemd definieren ("injecten"):

    Code
    cat /etc/systemd/system/vdr.service.d/vdrreqs.conf
    
    [Unit]
    After=pipewire.service
    Wants=pipewire.service

    VDR startet dann "After" und "Wants" würde relativ hart definieren, ohne pipewire startet VDR nicht ... "pipewire.service" hatte ich jetzt einfach mal als Service-Namen angenommen ...

    HowTo: APT pinning

    Click for my gear

    [¹] Intel NUC Kit NUC7i5BNH, Akasa Newton S7, 8GB DDR4, WD Black SN700 500GB NVMe, Crucial MX500 2TB, CIR, SAT>IP, Ubuntu LTS 18.04.5, VDR 2.4.1 (15W)
    [²] Intel NUC Kit NUC7i3BNH, 8GB DDR4, WD PC SN520 250GB NVMe, Crucial MX500 1TB, CIR, SAT>IP, Ubuntu LTS 20.04.1, VDR 2.4.1 (13W)
    [³] BQ500, Asrock X470D4U, AMD Ryzen 5 5600, 32GB DDR4 ECC, 2x WDC SN750 512GB, 4x Samsung SSD 4TB, 1x Samsung SSD 8TB, 1x Crucial MX500 500GB, 1x WDC Blue SSD 500GB, Windows Server 2019 Hyper-V (35W)
    [⁴] Jultec JPS0501-12AN, JPS0501-8M2, Octopus Net (DVBS2-8) & openHABian 3.3.0

    Edited 2 times, last by fnu (April 8, 2023 at 12:28 AM).

  • Eventuell hilft der Ansatz, den ich für yavdr-ansible gewählt habe - da lasse ich eine extra Session für den Nutzer vdr starten (entweder mit oder ohne X-Server, je nachdem welches Ausgabeplugin genutzt wird) und definiere diese Systemd-Unit als Abhängigkeit für die vdr.service.

    Ansonsten gibt es wohl ein Analogon zu pulseaudio's System Mode, aber ich habe noch nicht ausprobieret, welche Implikationen das hat: https://gitlab.freedesktop.org/pipewire/pipew…10#note_1079810

    Meine VDRs

    VDR 1: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 24.04 (yavdr-ansible), VDR 2.7.4, CIR-Empfänger
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    Client 1: Raspberry Pi 2, Ubuntu 22.04 (yavdr-ansible), VDR 2.6.1

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Eventuell hilft der Ansatz, den ich für yavdr-ansible gewählt habe - da lasse ich eine extra Session für den Nutzer vdr starten (entweder mit oder ohne X-Server, je nachdem welches Ausgabeplugin genutzt wird) und definiere diese Systemd-Unit als Abhängigkeit für die vdr.service.

    Wie startest du eine Session für den User vdr? Auch über den lingering Mechanismus von systemd?

    Und wie schaffst du es, einen X-Server als user zu starten?

    Das mit dem Systemmode von pipewire ist eher krampfig - IMHO. Hatte ich ausprobiert, aber das will man (ich) eigentlich nicht.

    Aber: Ich habe es miittlerweile geschafft, dass pipewire startet, bevor der VDR losläuft.

    Dummerweise klappt es trotzdem nicht - selbe Fehler wie oben.

    Irgendwelche Rechte fehlen da ggf. noch, oder softhddevice kann mit dem Service pulse oder pipewire nicht connecten, wenn es kein echtes Pulseaudio ist.

    VDR zwei drei
    • VDR 01 (Server): 2.7.4/6 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): 2.6.9 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - mpv - osd2web - osdteletext - skinnopacity - softhddevice - streamdev-client - svdrpservice]
  • Ich beschreibe mal, was ich gemacht habe:

    1. Eine permanente Session für den User aktiviert:
      - loginctl enable-linger vdr
      - pipewire, pipewire-pulse und wireplumber als user services für die Kennung vdr enabled
      => Die Session wird mit laufenden Pipewire services bei Booten zur Verfügung gestellt.
    2. Zwei vdr Services kreiert:
      - einen system service für die Root-Aktionen - also X Server starten, tty Berechtigungen setzen, ...
      - einen user service für den Start von vdr, der ebenfalls in o.a. permanter Session mit gestartet wird

    Damit funktioniert im Groben alles bis auf den Connect von softhddevice zu pipewire - und wie gesagt, obwohl pipewire verfügbar ist.

    VDR zwei drei
    • VDR 01 (Server): 2.7.4/6 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): 2.6.9 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - mpv - osd2web - osdteletext - skinnopacity - softhddevice - streamdev-client - svdrpservice]

    Edited 3 times, last by nobanzai (April 8, 2023 at 1:16 PM).

  • Wie startest du eine Session für den User vdr? Auch über den lingering Mechanismus von systemd?

    Nein, über eine richtige Login-Session - die Variante mit X-Server sieht so aus (der X-Server startet da noch als root, ich hab noch nicht ausprobiert, ob das bei aktuellen Ubuntu Versionen noch notwendig ist:

    Will man den X-Server auf dem Virtuellen Terminal Nummer 7 haben, kann man systemctl enable x@vt7.service aufrufen.

    Die User-Session funktioniert über eine xlogin@.service, in der eine Login-Shell für den User gestartet wird - der ausgeführte Befehl muss endlos laufen:

    Für den User vdr schaltet man das mittels systemctl enable xlogin@vdr.service scharf.

    Bei yaVDR wird über die .xinitrc eine Openbox-Session gestartet:

    Code: /var/lib/vdr/.xinitrc
    #!/usb/bin/bash
    
    exec openbox-session

    Im Autostart von Openbox lasse ich u.a. die relevanten Umgebungsvariablen der Session in eine Datei schreiben, setze das Hintergrundbild und sorge dafür, dass ein paar Dienste verfügbar sind, die vom yavdr-desktop.target gezogen werden:

    Damit man alle Dienste für die Session in einem Rutsch starten bzw. stoppen kann gibt es eine übergeordnete Unit:

    Und damit der VDR die Umgebungsvariablen der gestarteten Session kennt, gibt es ein Snippet, das die vdr.service entsprechend erweitert:

    Code: /etc/systemd/system/vdr.service.d/load-environ.conf
    [Service]
    EnvironmentFile=-/etc/default/locale
    Environment=XDG_RUNTIME_DIR=/run/user/666/
    EnvironmentFile=-/home/vdr/.session-env
    Environment=VDR_ID=0

    Und eines, das dafür sorgt, dass der VDR erst nach der Session startet:

    Code: /etc/systemd/system/vdr.service.d/vdr-xorg.conf
    [Unit]
    After=x@vt7.service xlogin@vdr.service yavdr-xorg.service
    Wants=x@vt7.service xlogin@vdr.service yavdr-xorg.service
    #BindsTo=x@vt7.service  # this would cause the vdr to terminate if the X-Server is stopped, not necessary if the frontend is detached
    Meine VDRs

    VDR 1: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 24.04 (yavdr-ansible), VDR 2.7.4, CIR-Empfänger
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    Client 1: Raspberry Pi 2, Ubuntu 22.04 (yavdr-ansible), VDR 2.6.1

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Uiui, das sieht aber richtig komplex aus.

    Danke fürs Teilen!

    VDR zwei drei
    • VDR 01 (Server): 2.7.4/6 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): 2.6.9 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - mpv - osd2web - osdteletext - skinnopacity - softhddevice - streamdev-client - svdrpservice]
  • Also egal, was ich mache - ich kriege softhddevice mit "-a pulse|pipewire" nicht zum Laufen. "-a plughw:0,3" klappt.

    Auch wenn der VDR als User "vdr" nach pipewire, pipewire-pulse und wireplumber gestartet wird, kommen die Fehler "connection refused" bei pulse, "host is down" bei pipewire. Ein aplay -D pulse|pipewire klappt allerdings, wenn man als vdr angemeldet ist.

    Habe ich da irgendwo einen Denkfehler drin oder hat da softhddevice ein Problem? Denn an den Berechtigungen liegt es ja offenbar nicht.

    VDR zwei drei
    • VDR 01 (Server): 2.7.4/6 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): 2.6.9 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - mpv - osd2web - osdteletext - skinnopacity - softhddevice - streamdev-client - svdrpservice]
  • -a hdmi:CARD=PCH,DEV=0 klappt ebenfalls - nur der Vollständigkeit halber

    VDR zwei drei
    • VDR 01 (Server): 2.7.4/6 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): 2.6.9 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - mpv - osd2web - osdteletext - skinnopacity - softhddevice - streamdev-client - svdrpservice]
  • nobanzai April 11, 2023 at 12:16 PM

    Changed the title of the thread from “vdr über systemd mit pipewire” to “[softhddevice] Soundausgabe über pipewire”.
  • Ich hab mal den Titel geändert, weil das doch eher zu softhddevice passt. Der Rest scheint ja zu funktionieren.

    VDR zwei drei
    • VDR 01 (Server): 2.7.4/6 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): 2.6.9 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - mpv - osd2web - osdteletext - skinnopacity - softhddevice - streamdev-client - svdrpservice]
  • So, ok, über pulseaudio klappt es wieder.

    Ich habe den ganzen Krempel von pipewire wieder de- und pulseaudio installiert.

    Dazu noch eine /home/vdr/.config/pulse/client.conf mit "autospawn=yes" erstellt.

    Jetzt nochmal neu mit pipewire anfangen - evtl. klappt es ja im n-ten Versuch :)

    VDR zwei drei
    • VDR 01 (Server): 2.7.4/6 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): 2.6.9 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - mpv - osd2web - osdteletext - skinnopacity - softhddevice - streamdev-client - svdrpservice]
  • Welchen Sinn macht pipewire beim VDR?

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    http://www.easy-vdr.de

  • Naja, dieselbe wie bei pulse :)

    Wenn noch etwas Sound ausgeben soll wie z.B. ein Umweltüberwachungssystem.

    VDR zwei drei
    • VDR 01 (Server): 2.7.4/6 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): 2.6.9 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - mpv - osd2web - osdteletext - skinnopacity - softhddevice - streamdev-client - svdrpservice]
  • Welchen Sinn macht pipewire beim VDR?

    ab Ubuntu 22.10 wird nur noch pipewire unterstützt. Auch ich habe bei Ubuntu 22.04 die Erfahrung gemacht das pipewire sich sauber installieren lässt aber weder softhddrm, softhdvaapi .... etc dies zur Zeit am VDR unterstützen (z.B. bei Dolby 5.1 etc...). So konnte ich hierfür auch nur zurück auf Pulsaudio wechseln :/ ;(

    (VDR) NUC11PAH & GEEKOM MINI-IT11-11. Generation * BM2LTS * DD NET S2 Max * (Sound) Cinebar Lux Set * (Stream) Apple TV 4K (2022) * (Light) PHILIPS Hue Play HDMI Sync Box & Gradient Lightstrip * (OLED TV) LG OLED65G29LA

  • Was ich hier mit pipewire-pulse nicht verstehe:

    Ich mache genau das, was in https://en.opensuse.org/openSUSE:Pipewire beschrieben ist. Da steht dann:

    "When the installation finishes, reboot the computer. The pipewire-pulse socket unit should be automatically enabled and active after that which will make PulseAudio applications to believe PulseAudio is running while PipeWire is actually used."

    Wenn ich reboote und mich dann als User vdr anmelde, habe ich auch wirklich den Socket aktiv wie beschrieben:

    Code
    systemctl --user status pipewire-pulse.socket
    ● pipewire-pulse.socket - PipeWire PulseAudio
         Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.socket; enabled; preset: enabled)
         Active: active (listening) since Wed 2023-04-12 15:12:45 CEST; 2min 0s ago
       Triggers: ● pipewire-pulse.service
         Listen: /run/user/11111/pulse/native (Stream)
         CGroup: /user.slice/user-11111.slice/user@11111.service/app.slice/pipewire-pulse.socket

    Wenn ich mit aplay schaue, ist der pulseaudio server auch da, und ich kann mit aplay was abspielen - der pipewire.service und der pipewire-pulse.service werden dabei automatisch mit hochgezogen:

    Wenn ich aber dann auch als User vdr den VDR mit "softhddevice -a pulse" starte, bekomme ich trotzdem "audio/alsa: playback open 'pulse' error: Connection refused".

    Das kommt aus snd_pcm_open, also aus den ALSA-Libs, die ja auch über aplay verwendet werden.

    Wieso?

    Achso ja - wenn ich den VDR starte, bevor ich einmal sowas wie aplay aufgerufen habe, dann existieren danach auch pipewire.service und der pipewire-pulse.service nicht, werden also trotz aktivem Socket nicht hochgezogen. Irgendwo fehlt da ein Bindeglied, aber wo?

    VDR zwei drei
    • VDR 01 (Server): 2.7.4/6 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): 2.6.9 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - mpv - osd2web - osdteletext - skinnopacity - softhddevice - streamdev-client - svdrpservice]

    Edited 2 times, last by nobanzai (April 12, 2023 at 3:32 PM).

  • Sind denn die Umgebungsvariablen für den VDR-Prozess passend gesetzt? Also das was ich über die .session-env Datei bei den oben geposteten Skripten mache?

    Meine VDRs

    VDR 1: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 24.04 (yavdr-ansible), VDR 2.7.4, CIR-Empfänger
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    Client 1: Raspberry Pi 2, Ubuntu 22.04 (yavdr-ansible), VDR 2.6.1

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Sind denn die Umgebungsvariablen für den VDR-Prozess passend gesetzt? Also das was ich über die .session-env Datei bei den oben geposteten Skripten mache?

    Bei mir läuft der VDR ja als echter user service - da brauche ich das doch eigentlich nicht, weil es ja seine native Umgebung ist, oder?

    Wenn ich in dem Startscript, das der user service aufruft, ein env ausführe, kommt Folgendes raus:

    Das service file sieht so aus:

    VDR zwei drei
    • VDR 01 (Server): 2.7.4/6 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): 2.6.9 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - mpv - osd2web - osdteletext - skinnopacity - softhddevice - streamdev-client - svdrpservice]
  • Code
    systemctl --user stop pulseaudio.service pulseaudio.socket
    systemctl --user disable pulseaudio.service pulseaudio.socket
    systemctl --user mask pulseaudio.service pulseaudio.socket
    systemctl --user enable pipewire.socket pipewire-pulse.socket
    systemctl --user start pipewire.socket pipewire-pulse.socket

    da sollte doch Pulsaudio deaktiviert werden

    Was gibt denn

    Code
    LANG=C pactl info | grep '^Server Name'

    aus?

    Server Name: PulseAudio (on PipeWire 0.3.68)

    Code
    apt list --installed | grep pipewire
    gstreamer1.0-pipewire/impish,now 0.3.68-1 amd64 [installed,automatic]
    libpipewire-0.3-0/impish,now 0.3.68-1 amd64 [installed,automatic]
    libpipewire-0.3-common/impish,now 0.3.68-1 all [installed,automatic]
    libpipewire-0.3-modules/impish,now 0.3.68-1 amd64 [installed,automatic]
    pipewire-audio-client-libraries/impish,now 0.3.68-1 amd64 [installed]
    pipewire-bin/impish,now 0.3.68-1 amd64 [installed,automatic]
    pipewire-media-session/impish,now 0.3.68-1 amd64 [installed,automatic]
    pipewire-pulse/impish,now 0.3.68-1 amd64 [installed]
    pipewire/impish,now 0.3.68-1 amd64 [installed,automatic]

    (VDR) NUC11PAH & GEEKOM MINI-IT11-11. Generation * BM2LTS * DD NET S2 Max * (Sound) Cinebar Lux Set * (Stream) Apple TV 4K (2022) * (Light) PHILIPS Hue Play HDMI Sync Box & Gradient Lightstrip * (OLED TV) LG OLED65G29LA

    Edited once, last by cinfo (April 12, 2023 at 5:17 PM).

  • Landet das auch in den Umgebungsvariablen für den VDR-Prozess?

    sudo cat /proc/$(pidof vdr)/environ | tr '\0' '\n'

    Meine VDRs

    VDR 1: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 24.04 (yavdr-ansible), VDR 2.7.4, CIR-Empfänger
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    Client 1: Raspberry Pi 2, Ubuntu 22.04 (yavdr-ansible), VDR 2.6.1

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!