[gelöst] neue sytemd-Version und pulseaudio fail?

  • Zeitgleich mit dem Sicherheitsupdate von systemd gestern nachmittags(?) bzw. mit dem Boot heute morgen ist mein HDMI-Sound weg.

    Tatsächlich startet Pulseaudio nicht mehr:

    Code
    systemctl --user status pulseaudio
    ● pulseaudio.service - Sound Service
         Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; vendor preset: enabled)
         Active: inactive (dead)
    TriggeredBy: ● pulseaudio.socket
      Condition: start condition failed at Wed 2021-07-21 15:06:35 CEST; 20s ago
                 └─ ConditionUser=!root was not met
    
    Jul 21 15:06:35 hdvdr2 systemd[182770]: Condition check resulted in Sound Service being skipped.

    Der pulseaudio.socket gehört root:

    Code
    ls -l /usr/lib/systemd/user/pulseaudio.socket
    -rw-r--r-- 1 root root 147 Mai 25 18:04 /usr/lib/systemd/user/pulseaudio.sock

    Purgen und Neuinstallieren von Pulseaudio hilft auch nichts, ich sehe im Journal nur

    Code
    Jul 21 18:05:19 hdvdr2 vdr[10652]: [10652] pulsecontrol: pa_context_connect() failed: Verbindung verweigert
    Jul 21 18:05:19 hdvdr2 vdr[10652]: [10652] pulsecontrol: startup script error -4

    und pulseaudio-Einstellungen im OSD vertschüssen sich auch gleich.


    Wie kann ich da durchblicken?

    2 Mal editiert, zuletzt von wmautner ()

  • Soweit ich das sehe, liegt das an der Zeile 17 der Systemd-Unit für pulseaudio in der User-Session (/usr/lib/systemd/user/pulseaudio.service) :

    Die Systemd-User Session läuft bei yaVDR standardmäßig nicht unter dem User root, sondern unter dem User vdr, so dass das OOTB eigentlich kein Problem darstellen sollte (ich probiere das gleich mal auf meinem Testsystem aus).

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • Wie erwartet funktioniert es in der Systemd User Session für den User vdr ohne Probleme, das braucht die Sonderbehandlung nur, wenn man die Session für root laufen lässt.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • An dem Template oder woauchimmer das herkam, hab ich nichts geändert ...

    Wenn ich die ConditionUser auskommentiere und neustarte, klappt es auch nicht so wirklich:

    Code
    # ps -ef|grep pulse
    root       21594   21382  0 22:51 ?        00:00:00 /usr/bin/pulseaudio --daemonize=no --log-target=journal
    root       21936   21594  0 22:51 ?        00:00:00 /usr/libexec/pulse/gsettings-helper
    root       29051   22575  0 22:51 pts/0    00:00:00 grep --color=auto pulse
    root@hdvdr2:~# alsamixer
    root@hdvdr2:~# journalctl -xb|grep pulse
    Jul 21 22:51:21 hdvdr2 vdr[10421]: [10421] pulsecontrol: pa_context_connect() failed: Verbindung verweigert
    Jul 21 22:51:21 hdvdr2 vdr[10421]: [10421] pulsecontrol: startup script error -4
    Jul 21 22:51:14 hdvdr2 pulseaudio[21594]: Dieses Programm sollte ohne die Option --system nicht als Administrator ausgeführt werden.

    D.h. pulseaudio startet zwar, verweigert aber immer noch die Verbindung. Ich sehe mit alsamixer für den nvidia-HDMI-Ausgang nur spdf-Einträge.

    Wie kann ich die Permissions für pulseaudio zurücksetzen? Hab auch schon die "pulseaudio"-role neu laufen lassen ... jedenfalls läuft pulseaudio als "root", sollte der nicht im vdr-Kontext laufen?

  • Hab auch schon die "pulseaudio"-role neu laufen lassen ... jedenfalls läuft pulseaudio als "root", sollte der nicht im vdr-Kontext laufen?

    Ja, das sollte eigentlich in der für den User vdr gestarteten User-Session laufen. Was sagt denn systemctl status zu den Units im System?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Mal sehen, wie die Baumansicht reinkopiert:

    Was mir auffällt, ist, daß da drüber user@0.service steht. Es ist eine ansible-Installation, aber seither nur händisch bzw. mit apt upgedatede Version.

    Wie krieg ich das pulseaudio (wieder) dazu, unter "vdr" zu starten?

  • Bitte lass das --user mal weg, damit man sehen kann, für wen die Dienste rund um die Session gestartet wurden.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ok, hatte ich auch schon - leider dasselbe:

  • So könnte das z.B. ungekürzt aussehen - wichtig ist, dass die Dienste unter der user@666.service starten - für Nutzer, die sich über SSH einloggen (wie du das mit dem root-Account machst), können Dienste wie pulseaudio gestartet werden (weil man durch den Login eine Session aufmacht), aber die haben keinen Einfluss auf die Audioausgabe, solange die keinen aktiven Seat haben:


    Es könnte sein, dass du da den falschen Baum anbellst - was sagt denn aplay -l zu den verfügbaren Soundkarten? Gibt es da Einträge für HDMI-Ausgänge?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich habe einen PC mit Onboard-Sound (Intel), aber gehe über die nvidia-Karte und HDMI, habe daher das intel-Modul deaktiviert:

    Code
    # cat /etc/modprobe.d/snd_hda_intel.conf
    options snd_hda_intel enable=0 probe_only=1,0

    und daher nur die nvidia-Ausgänge:

    alsamixer zeigt mir nun nur den "Master"-Kanal oder bei Anwahl der nvidia die spdif-ausgänge:

    Code
    │                                      ┌──┐     ┌──┐     ┌──┐     ┌──┐     ┌──┐     ┌──┐     ┌──┐                                      │
    │                                      │OO│     │OO│     │OO│     │OO│     │OO│     │OO│     │OO│                                      │
    │                                      └──┘     └──┘     └──┘     └──┘     └──┘     └──┘     └──┘                                      │
    │                                   < S/PDIF >S/PDIF 1 S/PDIF 2 S/PDIF 3 S/PDIF 4 S/PDIF 5 S/PDIF 6

    Wie kriege ich Pulseaudio dazu, unter dem Benutzer vdr (666) zu laufen anstelle von root und womit kann ich mir das "zerstört" haben?


    P.S.: wenn ich den internen Audiochip wieder aktiviere, zeigt alsamixer dessen Ausgänge auch an ...

    Ich hab schon nvidia-driver-470, nvidia-dkms-470 und das run-File von der nvidia-Site probiert, keine Änderung ...

  • Hallo,


    gab es bei Dir auch ein Kernel-Update?


    Ich habe bei mir unter gentoo auch Sound-Probleme mit kernel >5.4.* und nvidia hdmi...


    Allerdings ist bei mir mit einem neueren Kernel der Sound total übersteuert.

    Und es gab im Gegensatz zu Kernel 5.4 so wie bei Dir zusätzliche HDMI Geräte.

    Nvidia Treiber updates hatten an der Situation nichts geändert.


    Aber ich dachte Nvidia HDMI verwendet den Treiber snd_hda_intel mit nvidia Codec.

    Das Einzige was ich in dem Zusammenhang gefunden hatte war das:

    https://bugzilla.kernel.org/show_bug.cgi?id=208829


    Das hat mich aber noch nicht weiter gebracht...


    Ich musste wieder zurück auf Kernel 5.4...


    Gruß

    Heiko

    Gentoo Linux ~ VDR 2.6.6 ~ DD Octopus NET V2 S2 Max - SAT>IP ~ LENOVO ThinkServer TS200V ~ Intel(R) Core(TM) i5 CPU680@3.60GHz ~ 16GB RAM ~ NVIDIA T400

  • Ah ok ... bin schon auf 5.13. Da war ein Update von 5.13.1 auf 5.13.2, aber auch ein Booten mit dem Snapshot von vorher half nix mehr. Sieht aus, als wäre da irgendwas verstellt, insbes. das Problem, daß pulseaudio im Gegensatz zu meinter manjaro-Installation hier unter user 0 (root) läuft ...

    Deubel, wie krieg ich das für den User vdr hin (systemctl --user)?

  • Kannst du dich über tmux in der Session des Users vdr anmelden?

    tmux -S /tmp/tmux666/default

    Dann solltest du die aktiven Dienste der Session sehen können, also z.B.:

    BTW: was steht denn im Log - meldet da softhddevice Probleme sich mit pulseaudio zu verbinden?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Etwas aus dem Log Hatte ich ganz oben schon:

    root@hdvdr2:~# journalctl -xb|grep pulse
    Jul 21 22:51:21 hdvdr2 vdr[10421]: [10421] pulsecontrol: pa_context_connect() failed: Verbindung verweigert
    Jul 21 22:51:21 hdvdr2 vdr[10421]: [10421] pulsecontrol: startup script error -4
    Jul 21 22:51:14 hdvdr2 pulseaudio[21594]: Dieses Programm sollte ohne die Option --system nicht als Administrator ausgeführt werden.

    softhddevice funktioniert und zeigt keine Probleme - nur eben kein Ton. Im OSD kann ich auch den Lautstärkebalken einstellen.

    Code
    # journalctl -xb|grep audio
    Jul 22 19:33:50 hdvdr2 vdr[9389]: audio/alsa: playback open 'default' error: Datei oder Verzeichnis nicht gefunden
    Jul 22 19:33:51 hdvdr2 vdr[9389]: audio: 2 channels unsupported

    pulseaudio is actually running, but as user-0:

    But alsamixer only shows the "master" volume control, with "default" soundcard. Switching with F6 to the nvidia gives a lot of spdif entries (only).

    How can I make pulseaudio start as vdr-user?

  • Wenn ich in /usr/lib/systemd/user/pulseaudio.service "User=vdr" und "group=vdr" eintragen will und (systemctl --user daemon-reload, systemctl --user start pulseaudio) ausführe:

    Code
    Jul 22 19:50:11 hdvdr2 pulseaudio[128813]: XDG_RUNTIME_DIR (/run/user/0) is not owned by us (uid 666), but by uid 0! (This could e.g. happen if you try to connect to a non-root PulseAudio as a root user, over the native protocol. Don't do that.)
    Jul 22 19:50:11 hdvdr2 systemd[54078]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
    Jul 22 19:50:11 hdvdr2 systemd[54078]: pulseaudio.service: Failed with result 'exit-code'.
    Jul 22 19:50:11 hdvdr2 systemd[54078]: Failed to start Sound Service.

    Warum ist XDG_RUNTIME_DIR für User 0 konfiguriert ...

  • Das ist nicht zielführend die Gruppe und Nutzer für eine Systemd User Unit zu erzwingen, die wird immer im Kontext und mit den eingeschränkten Rechten des Users ausgeführt, für den sie gestartet wird.


    Warum ist XDG_RUNTIME_DIR für User 0 konfiguriert ...

    Vermutlich weil du als root angemeldet bist.


    Wichtig wäre zu wissen, ob es neben der User-Session für den User root (die gestartet wird, weil du dich über SSH anmeldest) sonst noch die erwartete Session für den User vdr gibt (xlogin@vdr, user@666.service usw.) und ob der VDR unter dem User vdr läuft.


    Und bitte nicht nur wahllose Logschnipsel, sondern mal ein vollständiges Log ab Boot (journalctl -b -l), der VDR erzählt einem das genau, was er tut - z.B. wenn er nach dem Start als root auf den User vdr dropped:

    Code
    Jul 22 18:58:20 yavdr08 systemd[1]: Starting Video Disk Recorder...
    Jul 22 18:58:21 yavdr08 vdr[1252]: [1252] VDR version 2.4.7 started
    Jul 22 18:58:21 yavdr08 vdr[1252]: [1252] switched to user 'vdr'

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • pulseaudio is actually running, but as user-0:

    Hilft es evtl., wenn du in /etc/pulse/client.conf.d eine xyz.conf mit "autospawn = no" und dann im Homeverzeichnis von VDR eine ~/.config/pulse/client.conf mit "autospawn = yes" erzeugst?

  • Danke - den Eintrag "autospawn=no" hatte ich schon, eine client.conf mit "autospawn=yes" hab ich angelegt und neu gestartet, leider keine Änderung.

    Die erste Fehlermeldung bezüglich pulseaudio im Log:

    Code
    Jul 22 22:55:16 hdvdr2 pulseaudio[14008]: [pulseaudio] server-lookup.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.FileNotFound: Failed to connect to socket /run/user/666/bus: Datei oder Verzeichnis nicht gefunden
    Jul 22 22:55:16 hdvdr2 systemd[1]: vdr.service: Got notification message from PID 14008, but reception only permitted for main PID 10180
    Jul 22 22:55:16 hdvdr2 pulseaudio[14008]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.FileNotFound: Failed to connect to socket /run/user/666/bus: Datei oder Verzeichnis nicht gefunden

    Der vdr läuft unter dem gleichnamigen User, es gibt aber im ganzen systemd-Prozeßbaum keinen user@666.service oder slice, nur @0.

  • Dann geht schon vorher etwas schief, wenn kein SessionBus verfügbar ist- was sagt denn systemctl status yavdr-xorg xlogin@vdr x@vt7 user@666? Vielleicht sieht man da, an welcher Stelle es kracht.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • HAH! Daaaanke!


    Der yavdr-xorg.service war, vermutlich aus eigener Blödheit, disabled. Kaum wieder auf "enabled" gesetzt, und die @666-Einträge erschienen wieder.

    Und schon höre ich auch wieder was :)

    Interessant ist nur, daß - auch bei meinem manjaro-Desktop - alsamixer für die nvidia-Karte nur spdif anzeigt, nach wie vor :)

Jetzt mitmachen!

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