[iptv] PulseAudio Verbindung verweigert

  • Habe hier das Problem, dass nach Aufruf eines IPTV-Kanal sich scheinbar VLC wegen etwas beschwert.

    Merke das bei Webradio-Kanälen auch an einer längeren Verzögerung mit Tonaussetzern, ehe er sich "fängt".

    Jemand eine Idee, was da im Argen liegt

    Code
    Oct 29 16:13:32 vdr-N100M vdr: [5873] IPTV streamer thread started (pid=5246, tid=5873, prio=high)
    Oct 29 16:13:32 vdr-N100M vdr[5884]: [0000560a8be2ed40] vlcpulse audio output error: PulseAudio server connection failure: Verbindung verweigert
    Oct 29 16:13:32 vdr-N100M vdr[5884]: [0000560a8bec5a40] dbus interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
    Oct 29 16:13:32 vdr-N100M vdr[5884]: [0000560a8bec5a40] main interface error: no suitable interface module
    Oct 29 16:13:32 vdr-N100M vdr[5884]: [0000560a8bd54660] main libvlc error: interface "dbus,none" initialization failed
    Oct 29 16:13:32 vdr-N100M vdr[5884]: [0000560a8bec79a0] main interface error: no suitable interface module
    Oct 29 16:13:32 vdr-N100M vdr[5884]: [0000560a8bd54660] main libvlc error: interface "globalhotkeys,none" initialization failed
    Oct 29 16:13:32 vdr-N100M vdr[5884]: [0000560a8bec79a0] dummy interface: using the dummy interface module...
  • Läuft für den VDR eine Session und wird in der pulse gestartet?

    Wenn nein, ggf. mal probieren:


    Mit dem User vdr anmelden und pulseaudio aktivieren:

    -> systemctl --user enable --now pulseaudio.service

    Damit wird er gestartet, sobald eine Session für den User vdr aktiv wird

    Als root eine permanente Session für den User vdr aktivieren:

    loginctl enable-linger vdr

    Die Session wird beim Booten zur Verfügung gestellt. Alle o.a. User Services sind dann auch bereits aktiv.

    Danach ggf. auch den vdr selbst als systemd-Service starten.

  • OK, also loginctl enable-linger vdr wäre dann das einzig richtige, was ich machen sollten, oder?

    Der VDR startet bereits über systemd, vdr-sxfe wird dann noch verzögert im Anschluss folgen (aktuell noch manuell).


    Was ich nur nicht ganz verstehe:

    sollte ich nicht auch für Firefox und andere Programmem die pulseaudio nutzen, ähnliche Fehlermeldungen im Log haben?

    Warum kommt das nur wenn ich vdr-sxfe manuell anleier und das IPTV-Plugin mit vlc2iptv nutze?

  • OK, also loginctl enable-linger vdr wäre dann das einzig richtige, was ich machen sollten, oder?

    Der VDR startet bereits über systemd, vdr-sxfe wird dann noch verzögert im Anschluss folgen (aktuell noch manuell).

    Naja, wenn danach in der Session der pulseaudio Server läuft, brauchst du nix machen, ansonsten musst du ihn aktivieren.


    Was ich nur nicht ganz verstehe:

    sollte ich nicht auch für Firefox und andere Programmem die pulseaudio nutzen, ähnliche Fehlermeldungen im Log haben?

    Warum kommt das nur wenn ich vdr-sxfe manuell anleier und das IPTV-Plugin mit vlc2iptv nutze?

    Laufen denn die auch im Kontext des vdr oder in deinem User-Kontext?

    Sprechen wir überhaupt vom selben Rechner? Also läuft der vdr auf dem Rechner, auf dem du den Rest startest?

  • Naja, wenn danach in der Session der pulseaudio Server läuft, brauchst du nix machen, ansonsten musst du ihn aktivieren.


    Laufen denn die auch im Kontext des vdr oder in deinem User-Kontext?

    Sprechen wir überhaupt vom selben Rechner? Also läuft der vdr auf dem Rechner, auf dem du den Rest startest?

    Ja - vdr läuft unter dem User vdr.

    vdr-sxfe wird aktuell über den vorinstallierten Starter "VDR X Frontend" gestartet, User ebenso vdr, gleicher Rechner.

  • Dann ist das seltsam, denn dann hast du recht: Auch da dürfte pulseaudio nicht laufen.


    Trotzdem nochmal zur Basis des Ganzen:

    Der vdr.service läuft unter dem User VDR, hast du geschrieben. Läuft er da, weil du im Service-File "user=vdr" angegeben hast, oder läuft er da, weil es ein User-Service ist? Wenn er da wegen "user=vdr" läuft, hilft das nix mit dem sessionctl. Bei mir ist das in zwei Service-Files gesplittet - eines läuft als root, da wird z.B. der X-Server gestartet, das andere läuft als User-Service. In letzterem wird der vdr gestartet - und der wird dann in der Session gestartet, die über loginctl erzeugt wurde.

  • Also, ich hab da nichts verändert:

    das ist ein Linux Mint 21.2, dass das seahawk1986-hotmail PPA hinzugefügt bekommen hat.

    Danach einfach den VDR samt Plugins hinzugefügt.

    In einer VM, die ich zuvor als Trockenlauf mit reinem IPTV mal angelegt hatte, habe ich auch diese Pulseaudio-Fehler im syslog.


    /etc/systemd/system/multi-user.target.wants/vdr.service folgt


    /etc/systemd/user/default.target.wants/pulseaudio.service folgt

  • Hi,

    Naja das könnte daran liegen dass die yavdr ansible Ppas nicht für Mint gedacht sind sondern für Ubuntu Server.

    MfG Stefan

    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
    www.easy-vdr.de

  • Bei yavdr-ansible hat der User vdr seine eigene Session, wahlweise mit xorg. Der Trick ist, dass das das Autostart-Skript für die openbox-Session die Umgebungsvariablen für den VDR-Prozess so setzt, dass der VDR Zugriff auf Dinge wie die pulseaudio-Instanz in der Session hat - und zusätzliche Programme, die man aus dem VDR-Menü heraus startet, führen dazu, dass ein Python-Skript, das in der Session läuft, über den DBus Session Bus den Start bzw. das Beenden einer Systemd-Unit in der User-Session anstößt und mit der Steuerung des Frontends kombiniert (was aber mit vdr-sxfe noch nicht sauber funktioniert - das ist ein Bug, den ich noch fixen muss).


    Das ist eine ziemliche Rube-Goldberg Lösung, aber das hat den Vorteil, dass der VDR bei yavdr-ansible als Systemdienst unabhängig von der User-Session laufen kann - was nötig ist, weil Systemd-Units in der User-Session keine Abhängigkeiten zu Systemd-Units des Systems haben können - z.B. um auf die erfolgreiche Initialisierung von DVB-Karten warten zu können.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hm, da bin ich raus - mein Wissensstand ist, dass pulse als root nicht wirklich supportet ist.

  • Hm, da bin ich raus - mein Wissensstand ist, dass pulse als root nicht wirklich supportet ist.

    Also, auf meinem MintSeahawk rumpelt es als vdr-User durch die Gegend:

    vdr 1331 1.3 0.1 975828 30268 ? S<sl 01:32 0:07 /usr/bin/pulseaudio --daemonize=no --log-target=journal

    Das ist eine ziemliche Rube-Goldberg Lösung, aber das hat den Vorteil, dass der VDR bei yavdr-ansible als Systemdienst unabhängig von der User-Session laufen kann - was nötig ist, weil Systemd-Units in der User-Session keine Abhängigkeiten zu Systemd-Units des Systems haben können - z.B. um auf die erfolgreiche Initialisierung von DVB-Karten warten zu können.

    Es klingt plausibel, auch wenn ich nicht zu 100% folgen kann. :S

    Auf jeden Fall mal ein großes Lob und Dankeschön für die ganze Arbeit über all die Jahre. :thumbup:

    Dass das überhaupt auf einem Ubuntu-Derivat ohne die ganzen Ansible-Anpassungen so gut funktioniert, ist ja auch nicht selbstverständlich.

    Ich hab ja an sich auch Ton (bis auf ein paar strange Streaming-Aussetzer). Hatte mich nur gefragt, was da das syslog füllt und ob man das nicht abstellen könnte/sollte.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!