pipewire als daemon

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

pipewire als daemon

Beitrag von wanne » 15.07.2022 14:13:52

pipewire wirbt ja viel damit, dass er deutlich mehr A2DP-Codecs und natives ROC und Airplay kann. Problem: Ich bin schon zu blöd den überhaupt erst als daemon zu starten. Der will immer erstmal einen X11 und ne native session haben. – Das hat die Brüllbox aber natürlich nicht.
Im Moment läuft das ding auch mit Pulseaudio und gmediarenderer. Das ist aber eher Pain. Gibts irgend wo gute Dokumentation die nicht von ner Gnome-Environmet ausgeht?
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
towo
Beiträge: 4405
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: pipewire als daemon

Beitrag von towo » 15.07.2022 19:04:00

ist denn wireplumber installiert?

Benutzeravatar
Blackbox
Beiträge: 4289
Registriert: 17.09.2008 17:01:20
Lizenz eigener Beiträge: GNU Free Documentation License

Re: pipewire als daemon

Beitrag von Blackbox » 15.07.2022 19:17:10

Das Paket: Debianwireplumber ist installiert?

Wie sehen deine bisherigen Settings aus?

ALSA → PW

oder

ALSA → PA → PW?

Edit: towo war schneller.
Eigenbau PC: Debian Sid - Kernel: 6.5.13 - Xfce 4.18 mit sway
Desktop PC: Dell Inspiron 530 - Debian Sid - Kernel: 6.5.13 - Xfce 4.18 mit sway
Notebook: TUXEDO BU1406 - Debian Sid - Kernel: 6.5.13 - Xfce 4.18 mit sway
Alles Minimalinstallationen und ohne sudo/PA/PW.
Rootserver: Rocky Linux 9.3 - Kernel: 5.14

Freie Software unterstützen, Grundrechte stärken!

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: pipewire als daemon

Beitrag von wanne » 15.07.2022 22:08:11

Bis jetzt tut ja leider gar nichts mit pipewire.
WIFI -> ethernet -> gmediarenderer -> PA -> ALSA.
oder
Bluetooth -> PA -> ALSA.
Das ist aber releativ eingeschränkt was Codecs etc. angeht. Deswegen würde ich gerne weg von PA und hin zu reinem pipewire mit seinem Nativen RAOP/ROC support und A2DP mit AAC-HF capabilities.
Einen fertigen Service finde ich nicht. Und wenn ich versuche es von Hand zu starten kommt:

Code: Alles auswählen

[W][005287334.550261][module-rtkit.c:517 set_nice()] could not set nice-level to -11: Input/output error
[E][005287334.551594][dbus.c:319 impl_get_connection()] Failed to connect to system bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[E][005287334.551638][module-portal.c:290 pipewire__module_init()] Failed to connect to system bus
[E][005287334.551673][impl-module.c:281 pw_context_load_module()] "/usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-portal.so": failed to initialize: Cannot allocate memory
[E][005287334.551720][main.c:126 load_module()] daemon 0x7ffeae7f3f00: could not load module "libpipewire-module-portal": Cannot allocate memory
[E][005287334.551741][main.c:441 main()] failed to load modules: Cannot allocate memory
Wegen des relativ komplexen Setups wäre mir an einer generelleren Anleitung für verschiedene Konfigurationen für Gnome/X11-Freie Konfigurationen.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
towo
Beiträge: 4405
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: pipewire als daemon

Beitrag von towo » 15.07.2022 22:31:05

Wenn wireplumber installiert ist und pipewire-media-session nicht installiert ist, dann braucht man als User gar nichts weiter machen.
Ich benutze pipewire schon ewig mit KDE und habe nie irgendwas manuell konfigurieren müssen.

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: pipewire als daemon

Beitrag von wanne » 15.07.2022 23:27:22

towo hat geschrieben: ↑ zum Beitrag ↑
15.07.2022 22:31:05
Wenn wireplumber installiert ist und pipewire-media-session nicht installiert ist, dann braucht man als User gar nichts weiter machen.
Ich benutze pipewire schon ewig mit KDE und habe nie irgendwas manuell konfigurieren müssen.
Ja klar. Der KDE wird sich genau so ums starten von pipewire und die pasenden berechtigungen kümmern und passend äqivalente tools bereitstellen zum konfigirieren/lautsärke regeln. Aber mein device ist halt ne brüllbox ohne Bildschirm und kann entsprechend genau so wenig KDE wie Gnome laufen lassen.
rot: Moderator wanne spricht, default: User wanne spricht.

smiler
Beiträge: 117
Registriert: 31.03.2004 21:26:06

Re: pipewire als daemon

Beitrag von smiler » 18.07.2022 09:17:31

Hallo,

evtl. bist Du in diesen ug? reingelaufen...
Es fehlt wohl das systemd file eben für einen Fall we deinen, das Pipewire auchals system unit gestartet werden kann, und nihct nur im "user" modus, beim einloggen...
https://bugs.debian.org/cgi-bin/bugrepo ... ug=1014927
Evtl. hilft es temporär, das systemd unit file aus dem Project repository zu nehmen?

Gruss
THomas

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: pipewire als daemon

Beitrag von smutbert » 20.07.2022 18:12:21

Ist das Problem noch aktuell?

Ich habe es einmal (ohne Gnome oder sonstiges DE und ohne Displaymanager) mit der Anmeldung auf dem Terminal versucht und da funktioniert Pipewire nach der Anleitung im Debianwiki ganz normal. Alles benötigte wird von systemd als user-Unit gestartet.
Für ein headless laufendes System, das war zwar für/mit Pulseaudio, aber das sollte ja egal sein, habe ich mit

Code: Alles auswählen

# loginctl enable-linger $BENUTZER
dafür gesorgt, dass die user-Units dieses Benutzers auch ohne Anmeldung gestartet werden. Eventuell sind noch einige Gruppenmitgliedschaften erforderlich, damit dieser Benutzer auch ohne lokale Anmeldung Zugriffsrechte für die Audiohardware erhält.

So funktioniert das allerdings nur, wenn die Dienste, die auf pipewire zugreifen sollen, auch als user-Units laufen sonst bleibt nur der Start von pipewire als systemweiter Dienst.

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: pipewire als daemon

Beitrag von wanne » 15.08.2022 12:16:55

Sorry, dass ich so lange nicht geantwortet habe. Wie gesagt: Tut ja alles mit pulseaudio. Deswegen lange nichts gemacht.
smiler hat geschrieben: ↑ zum Beitrag ↑
18.07.2022 09:17:31
Evtl. hilft es temporär, das systemd unit file aus dem Project repository zu nehmen?
Habe das mal so gemacht:

Code: Alles auswählen

[Service]
LockPersonality=yes
MemoryDenyWriteExecute=yes
NoNewPrivileges=yes
RestrictNamespaces=yes
SystemCallArchitectures=native
SystemCallFilter=@system-service
Type=simple
AmbientCapabilities=CAP_SYS_NICE
ExecStart=/usr/bin/pipewire
Restart=never
RuntimeDirectory=pipewire
RuntimeDirectoryPreserve=yes
User=pulse
Environment=PIPEWIRE_RUNTIME_DIR=%t/pipewire

[Install]
Also=pipewire.socket
WantedBy=default.target

Code: Alles auswählen

# cat /lib/systemd/system/pipewire.socket 
[Unit]
Description=PipeWire Multimedia System Socket

[Socket]
Priority=6
ListenStream=%t/pipewire/pipewire-0
SocketUser=pipewire
SocketGroup=pipewire
SocketMode=0660

[Install]
WantedBy=sockets.target
dafür gesorgt, dass die user-Units dieses Benutzers auch ohne Anmeldung gestartet werden. Eventuell sind noch einige Gruppenmitgliedschaften erforderlich, damit dieser Benutzer auch ohne lokale Anmeldung Zugriffsrechte für die Audiohardware erhält.
Da pulseaudio ja auch kann müsste das passen. Ich glaube da habe ich ein bisschen was machen müssen.
So funktioniert das allerdings nur, wenn die Dienste, die auf pipewire zugreifen sollen, auch als user-Units laufen sonst bleibt nur der Start von pipewire als systemweiter Dienst.
Hauptsächlich ist das ja bluetouth Also gar kein zugriff. Ich habe aber noch ein webinterface, dass selbstverständlich nicht als user-unit läuft. Der Systemweite Dienst wäre mir schonon recht. Aber ich nehme an, wenn ich es irgend wie zum laufen bekomme, dann auch als Dienst.

Code: Alles auswählen

# loginctl enable-linger pulse
Still:

Code: Alles auswählen

Aug 15 10:05:16 wannecloud pipewire[228362]: could not set nice-level to -11: Input/output error
Aug 15 10:05:16 wannecloud pipewire[228362]: Failed to connect to system bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Aug 15 10:05:16 wannecloud pipewire[228362]: Failed to connect to system bus
Aug 15 10:05:16 wannecloud pipewire[228362]: "/usr/lib/x86_64-linux-gnu/pipewire-0.3/libpipewire-module-portal.so": failed to initialize: Cannot allocate >
Aug 15 10:05:16 wannecloud pipewire[228362]: daemon 0x7ffc0e05b280: could not load module "libpipewire-module-portal": Cannot allocate memory
Aug 15 10:05:16 wannecloud pipewire[228362]: failed to load modules: Cannot allocate memory
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: pipewire als daemon

Beitrag von smutbert » 17.08.2022 23:24:42

In Debian Bugreport982853 steht gleich zu Beginn möglicherweise ein Woraround, nämlich das Auskommentieren von libpipewire-module-portal in »/etc/pipewire/pipewire.conf« oder alternativ, nach dem was ich da rauslese, das Installieren von Debiandbus-user-session (obwohl letzteres eher bereits installiert sein dürfte, wenn Pulseaudio funktioniert?).

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: pipewire als daemon

Beitrag von wanne » 17.08.2022 23:50:01

smutbert hat geschrieben: ↑ zum Beitrag ↑
17.08.2022 23:24:42
In Debian Bugreport982853 steht gleich zu Beginn möglicherweise ein Woraround, nämlich das Auskommentieren von libpipewire-module-portal in »/etc/pipewire/pipewire.conf«
Danke jetzt startet es.

smutbert hat geschrieben: ↑ zum Beitrag ↑
17.08.2022 23:24:42
(obwohl letzteres eher bereits installiert sein dürfte, wenn Pulseaudio funktioniert?).
Jap ist installiert. Jetzt muss ich mir mal angucken wie das funktioniert.
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten