Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] Pipewire-pulse: Standardport setzen und Auto-Port-Wechsel abstellen?  (Read 2714 times)

Offline fab161

  • User
  • Posts: 30
    • fab161.neocities.org
Hallo zusammen,
ich habe eine Frage bezüglich Pipewire-pulse: Auf meinem Laptop habe ich schon seit längerem ein Problem, was die Auswahl der verfügbaren Audio-Output-Ports angeht; namentlich sind das der Ausgang über die internen Lautsprecher, der über "Line-Out" und evtl. angesteckte Kopfhörer. Leider wird diese Verfügbarkeit nicht richtig erkannt; der automatische Wechsel zu einem verfügbaren Port wechselt somit auch zu solchen, die eigentlich nicht verfügbar bzw. angeschlossen sind. Das macht es dann wirklich schwer, lange Zeit am Stück (über ein paar Sekunden hinaus, bevor die Software wieder wechselt), einen bestimmten Ausgang zu nutzen.
Unter Pulseaudio-Implementationen, konkret der von Debian Stable, konnte ich das Problem umgehen, indem ich in der Datei /etc/pulse/default.pa die Option des automatischen Portwechsels auskommentiert, und ans Ende der Datei die Zeile 'set-sink-port 0 analog-output-speaker' geschrieben habe, die wiederum die internen Lautsprecher als Standardausgang gesetzt hat. Spätestens nach einem Neustart hat dann alles funktioniert, ich musste, wollte ich den Port wechseln, lediglich einen simplen Handgriff in Pavucontrol ausführen (nämlich den Port umstellen).
Siduction nutzt standardmäßig Pipewire und somit Pipewire-pulse. Die Datei /etc/pulse/default.pa ist auch vorhanden, wenn ich diese wie oben beschrieben anpasse, funktioniert die Software allerdings nicht so und wechselt trotzdem ständig zwischen angeblich oder tatsächlich verfügbaren Ports.

Lange Rede, kurze Frage: Wie kann ich unter Pipewire-pulse einen Standardport für den Output setzen und den automatischen Wechsel zwischen Output-Ports deaktivieren?

Hier ein paar Informationen zum System:

pactl info:
Server-Zeichenkette: /run/user/1000/pulse/native
Bibliotheks-Protokollversion: 35
Server-Protokollversion: 35
ist lokal: ja
Client-Index: 312
Tile-Größe: 65472
Name des Benutzers: fabian
Rechnername: siduction
Name des Servers: PulseAudio (on PipeWire 0.3.57)
Version des Servers: 15.0.0
Standard-Abtastwert-Angabe: float32le 2ch 48000Hz
Standard-Kanal-Zuordnung: front-left,front-right
Standard-Ziel: alsa_output.pci-0000_00_1f.3.analog-stereo
Standard-Quelle: alsa_input.pci-0000_00_1f.3.analog-stereo
Cookie: cec8:c302


Name des Laptops laut neofetch:
HP EliteBook 820 G3

lspci:
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation Skylake GT2 [HD Graphics 520] (rev 07)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:17.0 SATA controller: Intel Corporation Sunrise Point-LP SATA Controller [AHCI mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #2 (rev f1)
00:1c.3 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #4 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection I219-V (rev 21)
01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader (rev 01)
02:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)


Momentan befinden sich alle Konfigurationsdateien im Standardzustand bzw. sind alle Änderungen auskommentiert.

Danke für eure Antworten,
Fabian

Offline dibl

  • siduction community member
  • Global Moderator
  • User
  • *****
  • Posts: 2.358
    • Land of the Buckeye
Code: [Select]
don@dibl-oryxpro:~$ inxi -A
Audio:
  Device-1: Intel Tiger Lake-H HD Audio driver: snd_hda_intel
  Device-2: NVIDIA GA104 High Definition Audio driver: snd_hda_intel
  Sound Server-1: ALSA v: k5.19.7-1-siduction-amd64 running: yes
  Sound Server-2: PulseAudio v: 15.0 running: yes
  Sound Server-3: PipeWire v: 0.3.57 running: yes
don@dibl-oryxpro:~$ sudo apt policy pavucontrol
[sudo] password for don:
pavucontrol:
  Installed: 5.0-2
  Candidate: 5.0-2
  Version table:
 *** 5.0-2 500
        500 https://deb.debian.org/debian unstable/main amd64 Packages
        100 /var/lib/dpkg/status
don@dibl-oryxpro:~$ sudo apt policy pipewire
pipewire:
  Installed: 0.3.57-1
  Candidate: 0.3.57-1
  Version table:
 *** 0.3.57-1 500
        500 https://deb.debian.org/debian unstable/main amd64 Packages
        100 /var/lib/dpkg/status

Pavucontrol should "just work". See screenshot for how mine is set.
System76 Oryx Pro, Intel Core i7-11800H, SSD 970 EVO Plus;  Asus ROG STRIX X299-E, Core i7-7740X, Nvidia GTX-1060, dual monitors, SSD 860 EVO

Offline charlyheinz

  • User
  • Posts: 101
Hallo Fabian. Ich bin zwa noch nicht richtig fit mit Pipewire aber vielleicht hilft der Hinweis:

Meine Audio- Konfiguration erledige ich mit qpwgraph. Hier kann man von jedem Audio- Device eine Monitor- Abnahme in jedes andere Device (Eingang) schleifen und diese Konfiguration als default abspeichern. Nach dem Start von qpwgraph wird diese wieder hergestellt. (Autostart?)

Bei mir war der Standard- Ausgang immer wieder auf den HDMI- Ausgang geschaltet. Ich habe dann den Monitor- Ausgang vom HDMI in meine Onboard- Soundkarte (Eingang) geschleift und habe jetzt immer Sound auf beiden Soundkarten. Schau dir mal qpwgraph an und du wirst verstehen wie ich das meine. Ist im Endeffekt ähnlich wie qjackctl.
Pipewire würde ich nicht mit pavucontrol organisieren. Pulse ist im Zusammenspiel mit Pipewire nur noch eine Brücke zu den Standardanwendungen von KDE.
Viel Erfolg und gebe mal Bescheid- würde mich auch interessieren...

Offline fab161

  • User
  • Posts: 30
    • fab161.neocities.org
Heyo und danke für die Antworten. Ich habe mir den qpwgraph jetzt mal installiert und sitze jetzt etwas verwirrt davor. Schlussendlich habe ich gemerkt, dass ich wirklich gar keinen Plan von Pipewire habe: Unter Pulseaudio läuft alles über eine Konfigurationsdatei, die mich offensichtlich ziemlich verwöhnt hat.. So wie ich das jetzt verstanden habe, finde ich in qpwgraph einfach keine Option, irgendetwas an den verwendeten Ports umzustellen -- so, wie ich das jetzt überblicke, verbindet man in Pipewire immer die Ausgangs-Streams der Anwendungen mit den jeweiligen Ausgangs-Sinks, optional kann man das anscheinend noch mit einem Drittprogramm wie Pavucontrol verbinden (--> monitor). Pipewire scheint immer auf einen angeblich verfügbaren Port zu wechseln, denn so wie ich das hier überblicke, lässt sich der Port einfach nicht konfigurieren.

Vielleicht muss ich zur Problemlösung nochmal die Terminologie erklären, die sich ja von PulseAudio zu Pipewire unterscheiden könnte: Mit sink meine ich ein Gerät, also zum Beispiel die integrierte Soundkarte des Laptops, die dann bei mir als "Internes Audio Analog Stereo" bezeichnet wird. Dieses Gerät kann qpwgraph offensichtlich auch verwalten. Problem ist nur, dass das gar nicht das Problem ist: Ich vermute, dass das wesentlich tiefer liegt oder zumindest anfängt: Die Verfügbarkeit der Ports (also der verschiedenen Ausgänge, die über ein Gerät) wird nicht richtig erkannt, d.h. Pipewire kann mit der Auto-Auswahl einfach nicht richtig funktionieren, da ja die ganze Zeit falsche Informationen weitergegeben zu werden scheinen. Zum Beispiel will mir Pipewire gerade erzählen, dass Kopfhörer eingesteckt wären und der LineOut-Ausgang verfügbar wäre. Beides ist nicht der Fall, weder habe ich Kopfhörer angesteckt, noch nutze ich irgendwelche Peripherie über den LineOut-Ausgang. Der Witz ist jetzt aber, dass sich Pipewire ja entscheiden muss, da es irgendetwas automatisch laden will. Anstatt jetzt aber den LineOut-Ausgang zu wählen, der, weil ja nichts angesteckt ist, auf den internen Lautsprecher zurückschalten würde, zu wählen, nutzt es standardmäßig den Kopfhörerausgang, der mir rein gar nichts bringt, wenn ich keine Kopfhörer angesteckt habe. Noch schlimmer ist aber, dass ich nichtmal manuell auf den internen Lautsprecherausgang umschalten kann. Angeblich wäre der nicht verfügbar; zwar erscheint er trotzdem in der Liste, gibt aber nicht einen Ton aus, wenn er dann mal ausgewählt wird -- warum weiß ich auch nicht. Das Sahnehäubchen ist aber, dass ich vor ein paar Stunden noch Debian 11 mit Pulseaudio auf dem gleichen Laptop installiert hatte, bevor ich wieder Siduction ausgepackt habe, was wirklich toll ist -- nur leider dieses Problem mit sich bringt. Unter Debian jedenfalls wurde der Port zwar auch nicht richtig erkannt, allerdings konnte ich zumindest über die ganz oben angesprochene Konfigurationsdatei einen zweckmäßigen Workaround anlegen. Das eigentlich Problem der falschen Porterkennung ist davon natürlich auch nicht angetastet worden, falls hier jemand eine Idee hat, woran es liegen könnte, wäre ich überglücklich etwas in der Art zu hören. Ich weiß jetzt jedenfalls nicht wirklich, inwiefern ich einen Workaround für Pipewire nutzen oder das ganze einfach weitestgehend durch Pulseaudio ersetzen soll. Immerhin scheint sich der Port momentan nicht ständig von alleine zu wechseln, wenn er einmal umgestellt wurde. Dahingehend könnte ich theoretisch einen Autostart-Eintrag anlegen, der das über pactl erledigt. Dann müsste ich aber schauen, ob ich nicht doch mal etwas über LineOut anstecke... Das möchte ich eigentlich nicht wirklich. Der passabelste Ausweg mit dem geringsten Aufwand scheint mir momentan, Pipewire von der Platte zu schmeißen, Pulseaudio zu installieren und ggf. die standardmäßige Debian-11-Implementation nachzubauen, bei der Pipewire zwar nicht die Sitzung übernimmt aber (vermutlich als systemd-user-socket) immer für Anwendungen verfügbar ist, wenn sie dieses merkwürdige Programm anfordern. Die beste Lösung, und eigentlich auch die einzige, die kein Workaround ist, wäre es, die fehlerhafte Porterkennung zu beheben, hat hier jemand irgendeine Idee?

Ich habe auch schon überprüft, ob es irgendein virtuelles Schlagloch im Alsamixer gibt, da scheint aber die Automute-Option deaktiviert zu sein, wobei mir aufgefallen ist, dass es unter Debian 11 mehrere Mute-Optionen neben der Automute-O. gab, das sind glaube ich LED-Mute-Optionen. Wo die unter Pipewire hingeschleudert wurden, ist eine andere Frage. Diese Software macht sich bei mir momentan einfach nicht beliebt.

Ein großes Sorry falls ich in diesem Beitrag ein bisschen verzweifelt klinge, das Problem verfolgt mich jetzt schon sein Monaten. Nochmals danke für alle Antworten, Mühen und Ideen. Beste Grüße,
Fabian

Offline fab161

  • User
  • Posts: 30
    • fab161.neocities.org
Ich habe mir jetzt erstmal mit der Pulseaudio-Lösung beholfen; aber trotzdem bin ich gespannt, inwiefern sich Pipewire weiterentwickelt, das soll ja bei einigen nicht stabil laufen.

Offline charlyheinz

  • User
  • Posts: 101
Hallo Fabian
Du hast natürlich recht: pipewire bietet so viel mehr. Ich habe mich auch noch nicht so richtig eingearbeitet. Gerade hinsichtlich der Konsolen- Befehle, die gerade auch die nötigen Informationen und Einstellungen bieten. Ich starte zum Beispiel Ardour als Audio- Workstation mit speziellen Parametern explizit für Pipewire (PIPEWIRE_LATENCY=“128/48000” ) um das beste aus der Hardware heraus zu kitzeln. Somit benötige ich auch kein Jack- Audio- Server (wird durch das Pipewire Jack- Plugin ersetzt) mehr und habe trotzdem beste Performance.
Da Pipewire, so wie ich das verstanden habe, gerade hauptsächlich durch die Alsa- Treiber beeinflusst wird, und wie schon erwähnt Pulse- Audio nur eine Brücke darstellt, fallen meiner Meinung nach die Konfigurationsdateien zu Pulse weg oder haben keinen Einfluss mehr.
Hier nochmal meine Vorgehensweise mit Bildern.
Für die normale KDE- Soundumgebung benutze ich das Pulse- Audiosymbol in der Symbolleiter.
Hier stellt sich das dir bekannte Phänomen ein das wenn ich z.B. mehrere Tubr- Videos gucke egal welche Ausgangs- Soundkarte eingestellt habe nach dem Ende eines Videos auf den HDMI- Ausgang zurück verbunden wird! Wenn ich also auf der Onboard- Soundkarte meine Ausgabe haben will muss ich immer wieder umstellen, was natürlich nervt.

Deshalb schleife ich die Ausgabe in qpwgraph in die Onboard- Ausgabe und habe somit die Umstellerei nicht mehr.

Werden dir unter qpwgraph alle in deinem System vorhandenen Ausgabe- Möglichkeiten angeboten?

Und stellt deine Onboard- Soundkarte die Ausgänge automatisch um (Kopfhörer/Lineout)? Ansonsten mit den Pulsetools einrichten.

Anbei eine einfache Schaltung mit qpwgraph ohne weitere Soundkarten- Ausgänge mit per USB angeschlossenen Geräten.

1.Bild: Die Pulse- Einstellung mit dem Symbolleisten Pulse Tool (Lautsprecher- Symbol) zur Anzeige der Standardhardware.
2. Bild: Die Konfiguration mit Pavu- Control. Hier findet man ja auch die Profile der jeweiligen Hardware.
3. Bild: Das Einschleifen der unterschiedlichen Ausgänge der entsprechenden Karten.

Wenn ich meine Audio- Produktions- Hardware per USB angeschlossen habe finde ich hier alle 18 Ein- und 20 Ausgänge wie bei qjackctl. Das zu zeigen wäre hier aber zu unübersichtlich.

Ich hoffe dich richtig verstanden zu haben. Siduction eignet sich eigentlich ziemlich gut für Multi- Media- Anwendungen!

Bild-1: Pulse- KDE Audio
 [ You are not allowed to view this attachment ]

Bild-2: Pavucontrol
 [ You are not allowed to view this attachment ]

Bild-3: qpwgraph
 [ You are not allowed to view this attachment ]  

Offline fab161

  • User
  • Posts: 30
    • fab161.neocities.org
Heyo charlyheinz, vielen Dank für deine Antwort. An den Soundkarten sollte es bei mir eigentlich nicht liegen, da der Laptop nur eine hat; problematisch ist es, wenn's um die Ports geht, da schaltet Pipewire ja immer auf einen vermeintlich verfügbaren um -- blöd nur, wenn der falsch erkannt wird. Pipewire hat bei mir also konsequent auf den Kopfhörerausgang (Port) geschalten, auch wenn der nicht genutzt wurde, außerdem hat nur LineOut funktioniert und eine einfache Nutzung des internen Mikros hätte ich mir auch nur erträumen können. Ich habe jetzt, wie oben erwähnt, wieder auf Pulseaudio umgestellt, was für mich wesentlich leichter zu händeln ist (weil unkomplizierter) und trotzdem alle Optionen bietet, die ich brauche. Nichtsdestotrotz hier mal ein Beispielbild, wie sich Pipewire bei mir verhalten hat, am Beispiel von Ltris. Die Ports scheinen da gar nicht verstellbar zu sein -- das Problem, das nicht das Gerät falsch erkannt wird, sondern der falsche Ausgangsport angesprochen wird, scheint im Web auch außerordentlich selten zu sein. Möglicherweise liegt das auch an der Hardware, was ich mir aber eigentlich nicht wirklich vorstellen kann, immerhin funktioniert die Ausgabe/Eingabe an sich ja, auch wenn ich sie in Pulseaudio "erzwingen" muss.  [ You are not allowed to view this attachment ]  

Offline charlyheinz

  • User
  • Posts: 101
Hallo Fabian
Leider kann ich auf dem Bild nicht alles erkennen aber ich denke was ich sehen kann beschreibt das Meiste. Die Verbindungen die du zwischen dem Player und den Pulse Kanälen eingerichtet hast sollten eigentlich nicht notwendig sein. Der Player muss nur mit den Ausgabekanälen verbunden sein. Hier muss der Alsa- Treiber den Stream an der Onboard- Soundkarte ausgeben ohne das Pulse irgendwie involviert ist.
Normaler Weise erkennt die Hardware welche Ausgabekanäle angeschlossen sind und schaltet diese scharf, selbst wenn es nur ein Verlängerungskabel ist. Eigentlich brauch ich diese nicht selber auswählen. Ansonsten kann ich die Auswahl auch durch Pulse / pavucontrol beeinflussen oder auch direkt in Alsa (ich nehme Qasmixer)

Bild-1:


Bild-2


Die Schaltung im angefügten Bildern betreibe ich eigentlich nur da Pulse nach dem Ende eines Streams die Quelle immer im HDMI ausgibt, immer und immer wieder. So mache ich mir das einfacherer und schleife vom HDMI- Monitor zur Onboard- Soundkarte. Die entsprechenden Ausgabeports regelt die Hardware oder die Profil- Einstellung in Pulse. Zugegeben, als alleiniges Tool für die Soundkonfiguration reicht Pipewire auch bei mir (oder meinem Kenntnistand) noch nicht. Das Potential ist aber auch für die Musikproduktion dermaßen mächtig, gerade was das ausreizen der Hardware angeht. So habe ich meine Latenz auf den USB- Interfaces (18i20) auf 1, wirklich 1msec gedrückt, ohne xruns! Das schafft meines Wissens selbst der Apfel nicht.

Wenn du dich richtig quälen willst habe ich hier noch einen Link: https://pipewire.pages.freedesktop.org/wireplumber/, der die Konfiguration von Wireplumber, das Tool der Wahl zum einrichten von Pipewire, beschreibt. Ich selbst bin hier noch am Anfang. Und auch die cli zu pipewire scheint sehr hilfreich zu sein um beim Aufrufen von Multimedia- Programmen entsprechende Optionen mit einzubauen.


Weitere Links:
https://wiki.debian.org/PipeWire#For_PulseAudio
https://docs.pipewire.org/page_man_pw_link_1.html
« Last Edit: 2022/09/12, 23:22:59 by charlyheinz »

Offline fab161

  • User
  • Posts: 30
    • fab161.neocities.org
Ich glaube Pipewire ist toll wenn es funktioniert --  wenn nicht wird es offenbar hakelig. Vielleicht ist es doch nicht die beste Idee gewesen Consumer- (PulseAudio) und Profiaudio (Jack) zusammenzulegen. Als ich Pipewire probiert habe, kam mir das vor wie die eierlegende Wollmilchsau, die nicht weiß, um was sie sich zuerst kümmern soll: Alle Verbindungen auf dem Bild hat Pipewire automatisch angelegt... (Wenn du auf das Bild klickst, kannst du das runterladen, dann ist es auch vollständig).

Danke nochmal und beste Grüße,
Fabian

Offline charlyheinz

  • User
  • Posts: 101
@fab161

So als Nachschlag:

Eine sehr gute Dokumentation: https://docs.pipewire.org/pages.html

Mit den Commanline Tools "wpctl" und "pw-top" bekommt man auch die benötigten Info's zur Hardware und Pipewire.

Und versuch dann nochmal das "Pro-audio" -Profil der verwendeten Soundkarte im KDE- Soundsystem (Pulse). Damit bekommst du gnadenlos sämtliche Ein- / Ausgänge der jeweiligen Hardware angeboten, z.B. auch die Kopfhöhrer- bzw. Lineout-Verbindungen
separat (ohne Umschalten zwischen Kopfhöhrer und Lineout).

Viel Erfolg und bleib am Ball ;-)

Offline fab161

  • User
  • Posts: 30
    • fab161.neocities.org
Mal ein kleines Update: Anscheinend, und ich kann es selbst nicht glauben, war das Problem einfach in einem innen verdreckten/verstaubten Kopfhörer-Jack (der von außen nicht so dreckig aussah).  :facepalm:  :facepalm:
https://forums.debian.net/viewtopic.php?p=761203#p761203

Danke nochmal an alle, die mir bei dem Problem geholfen haben!

Beste Grüße,
Fabian
« Last Edit: 2022/10/18, 12:04:53 by fab161 »