Audio-Gerät fehlt. Kein Ton. Wie Pipewire reparieren?

Hallo EndeavourOS-Community,

hatte vor einigen Tagen eine paar Pakete manuell installiert (Steam und einige Tools) … und später dann folgenden Befehl zum Löschen eines Paketes inklusiver unbenutzer Abhängigkeiten getätigt: yay -R -c <package> o.s.ä… (evtl. auch nochmals ohne “-R”). Weiß nicht mehr, welches Paket es genau war.

Seitdem ist mein Audio-System stumm und nur ein “Dummy Output” wird angezeigt.

inxi -Aaz
Audio:
  Device-1: AMD Navi 10 HDMI Audio driver: snd_hda_intel v: kernel
    bus-ID: 5-4:4 pcie: chip-ID: 1224:2a25 gen: 4 class-ID: 0102 speed: 16 GT/s
    lanes: 16 bus-ID: 0e:00.1 chip-ID: 1002:ab38 class-ID: 0403
  Device-2: AMD Family 17h HD Audio vendor: ASRock driver: snd_hda_intel
    v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 bus-ID: 10:00.3
    chip-ID: 1022:1457 class-ID: 0403
  Device-3: Jieli USB PHY 2.0 type: USB driver: snd-usb-audio,uvcvideo
  Sound API: ALSA v: k6.0.8-arch1-1 running: yes
  Sound Interface: sndio v: N/A running: no
  Sound Server-1: PulseAudio v: 16.1 running: no
  Sound Server-2: PipeWire v: 0.3.60 running: yes
pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 50
Tile Size: 65472
User Name: ***
Host Name: ***
Server Name: PulseAudio (on PipeWire 0.3.60)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: @DEFAULT_SINK@
Default Source: @DEFAULT_SOURCE@
Cookie: 3b67:a414

Ich habe bereits

checkrebuild -v

und

sudo pacman -Qqn | sudo pacman -S -

durchgeführt.

Was kann ich tun, dass mein Audiogerät wieder funktioniert?

Beste Grüße, Tm

sudo pacman -S --needed pipewire-pulse pipewire-alsa pipewire-jack wireplumber

und checken op pipewire läuft (zeigt aber dein inxi output auch schon)
systemctl --user status pipewire

Als erstes sollte immer im Konfigurations Tab von pavucontrol geschaut werden welches Geräte aktiv gestellt ist:
2022-11-18_12-05

Ein hilfreiches Tool um zu sehen was gerade von pipwire erkannt und verwaltet wird ist Helvum:
yay -S helvum

2022-11-18_12-09

3 Likes

Ich danke Dir für deine Ausführungen und Anregungen!
Das Problem hat sich gerade erledigt, als ich mein USB-Cam vor dem Start abgezogen habe.

Bildschirmfoto_2022-11-18_13-43-52
Bildschirmfoto_2022-11-18_13-53-50

Sobald ich die USB-Cam wieder einstecke, erscheint in pavucontrol wieder der Dummy Output.

Bildschirmfoto_2022-11-18_14-33-24

Vermutlich muss die USB-CAM in einer conf-Datei auf die Blackliste.
Oder muss/kann die CAM vielleicht einen Treibereintrag erhalten?
Weißt Du vielleicht, wo & wie das generell möglich wäre?

Beste Grüße,
Tm

uff usb webcam ; )

ist die an einem usb 3 oder 2 port angeschlossen wenn sie dein audio lahm legt?
Könnte helfen die and einem usb 2 port zu stecken.

Und wie du sehen kannst:
2022-11-18_14-31
erkennt das Audiosystem ob ein Gerät gesteckt ist oder nicht.

Wenn also der Kpopförer nicht als gesteckt gekennszeichnet ist und die USB KLamera gesteckt ist wird diese hier eventuell fälschlich als Audiogedrät gesetzt hat aber eben keinen Ausgang…

Normaler weise kannst du Geräte als “Off” “Aus” setzten und sie sollten dann nicht verwendet werden.

2022-11-18_14-34

Und auch normaler Weise solte eine Kamera keinen Ausgang bereitstellen sondern nur ein Mikrophon wenn sie eines hat…

um ein Geät auszu schließen gibt es natürlich die Möglichkeit:

Finde das Gerät:
pactl list cards
und erstelle eine alsa configuration:
sudo nano /etc/modprobe.d/alsa-base.conf

# Disable webcam from being used as audio:
options snd_hda_intel enable=0,1

wo snd_hda_intel mit dem alsa.driver_name = *** für deine Kamera ersetzt werden müsste…

1 Like

Hab die USB-Kamera mal an einen semi-internen USB2.0-Braket, welches am NZXT-USB2.0-Hub hängt, welches am internen USB3.x des Mainboards hängt, angeschlossen.
Gleiches Fehlerbild: Ein Dummy Output erscheint statt der normalen Ausgänge.

Die nativen USB2.0-Ausgänge sind rar. Sie sind z.B. durch meine AiOs und Frontpanel-Eingänge belegt.
In Windows 10 und Pop!_OS (Ubuntu-Basis) gibt es kein Problem mit der USB-Cam.

Ja, das wäre eine mögliche Erklärung.
Der KH-Ausgang wird aber richtig als “eingesteckt” erkannt → siehe Screenshot 1 (Beitrag 3).
Da die externe Kamera auch gesteckt wird, könnte es durchaus eine solche Wirkung haben.
Hatte übrigens von meinen Lösungsversuchen noch “snd-hda-intel model=generic” in der alsa-base.conf stehen. Habe ich nun entfernt. Hat bisher nichts verändert.

Jep, das habe ich beim “Device-1: AMD Navi 10 HDMI Audio driver: snd_hda_intel v: kernel” getan.
Siehe Screenshot 2 (Beitrag 3).
Allerdings ist das kein HDMI-Ausgang, sondern ein DP-Ausgang (Audio) zum Monitor. Vielleicht liegt es daran?

Mikro (Mono) hat sie. Das wäre dann aber ein “Aufnahme”-Gerät.

… zeigt bei mir nichts an.

Mit pactl list clients wird die USB-Cam erkannt:

Client #72
	Driver: PipeWire
	Owner Module: 2
	Properties:
		pipewire.protocol = "protocol-native"
		pipewire.sec.pid = "1561"
		pipewire.sec.uid = "1000"
		pipewire.sec.gid = "1001"
		pipewire.sec.label = "hex: _entfernt_ "
		module.id = "2"
		object.id = "50"
		object.serial = "72"
		pipewire.access.portal.is_portal = "true"
		portal.monitor = "Camera"
		log.level = "0"
		cpu.max-align = "32"
		default.clock.rate = "48000"
		default.clock.quantum = "1024"
		default.clock.min-quantum = "32"
		default.clock.max-quantum = "2048"
		default.clock.quantum-limit = "8192"
		default.video.width = "640"
		default.video.height = "480"
		default.video.rate.num = "25"
		default.video.rate.denom = "1"
		clock.power-of-two-quantum = "true"
		link.max-buffers = "64"
		mem.warn-mlock = "false"
		mem.allow-mlock = "true"
		settings.check-quantum = "false"
		settings.check-rate = "false"
		application.name = "xdg-desktop-portal"
		application.process.binary = "xdg-desktop-portal"
		application.language = "de_DE.UTF-8"
		application.process.id = "1561"
		application.process.user = "name"
		application.process.host = "host"
		window.x11.display = ":0"
		core.version = "0.3.60"
		core.name = "pipewire-name-1561"
		pipewire.access = "unrestricted"

Das ist die USB-CAM: “Device-3: Jieli USB PHY 2.0 type: USB driver: snd-usb-audio,uvcvideo”
Also wäre das z.B. ein valider Eintrag?

\# Disable webcam from being used as audio:
options snd-usb-audio enable=0,1

Hab mal damit den PC neu gestartet, hat anscheinend nichts am Problem geändert.

Was bedeuten “0,1” eigentlich?
Output=0 (aus) & Input=1 (ein)?


Kann es sein, dass einige Kernelmodule bei mir nicht geladen sind o.s.ä.?

pactl list modules
Module #1
	Name: libpipewire-module-rt
	Argument: {
            nice.level    = -11
            #rt.prio      = 88
            #rt.time.soft = -1
            #rt.time.hard = -1
        }
	Usage counter: n/a
	Properties:
		module.name = "libpipewire-module-rt"
		object.id = "1"
		object.serial = "1"
		module.author = "Wim Taymans <wim.taymans@gmail.com>"
		module.description = "Use realtime thread scheduling, falling back to RTKit"
		module.usage = "[nice.level=<priority: default 20(don't change)>] [rt.prio=<priority: default 88>] [rt.time.soft=<in usec: default -1] [rt.time.hard=<in usec: default -1] "
		module.version = "0.3.60"
		nice.level = "-11"

Module #2
	Name: libpipewire-module-protocol-native
	Argument: 
	Usage counter: n/a
	Properties:
		module.name = "libpipewire-module-protocol-native"
		object.id = "2"
		object.serial = "2"
		module.author = "Wim Taymans <wim.taymans@gmail.com>"
		module.description = "Native protocol using unix sockets"
		module.version = "0.3.60"

Module #3
	Name: libpipewire-module-profiler
	Argument: 
	Usage counter: n/a
	Properties:
		module.name = "libpipewire-module-profiler"
		object.id = "3"
		object.serial = "3"
		module.author = "Wim Taymans <wim.taymans@gmail.com>"
		module.description = "Generate Profiling data"
		module.version = "0.3.60"

Module #5
	Name: libpipewire-module-metadata
	Argument: 
	Usage counter: n/a
	Properties:
		module.name = "libpipewire-module-metadata"
		object.id = "5"
		object.serial = "5"
		module.author = "Wim Taymans <wim.taymans@gmail.com>"
		module.description = "Allow clients to create metadata store"
		module.version = "0.3.60"

Module #7
	Name: libpipewire-module-spa-device-factory
	Argument: 
	Usage counter: n/a
	Properties:
		module.name = "libpipewire-module-spa-device-factory"
		object.id = "7"
		object.serial = "7"
		module.author = "Wim Taymans <wim.taymans@gmail.com>"
		module.description = "Provide a factory to make SPA devices"
		module.version = "0.3.60"

Module #9
	Name: libpipewire-module-spa-node-factory
	Argument: 
	Usage counter: n/a
	Properties:
		module.name = "libpipewire-module-spa-node-factory"
		object.id = "9"
		object.serial = "9"
		module.author = "Wim Taymans <wim.taymans@gmail.com>"
		module.description = "Provide a factory to make SPA nodes"
		module.version = "0.3.60"

Module #11
	Name: libpipewire-module-client-node
	Argument: 
	Usage counter: n/a
	Properties:
		module.name = "libpipewire-module-client-node"
		object.id = "11"
		object.serial = "11"
		module.author = "Wim Taymans <wim.taymans@gmail.com>"
		module.description = "Allow clients to create and control remote nodes"
		module.version = "0.3.60"

Module #13
	Name: libpipewire-module-client-device
	Argument: 
	Usage counter: n/a
	Properties:
		module.name = "libpipewire-module-client-device"
		object.id = "13"
		object.serial = "13"
		module.author = "Wim Taymans <wim.taymans@gmail.com>"
		module.description = "Allow clients to create and control remote devices"
		module.version = "0.3.60"

Module #15
	Name: libpipewire-module-portal
	Argument: 
	Usage counter: n/a
	Properties:
		module.name = "libpipewire-module-portal"
		object.id = "15"
		object.serial = "15"

Module #16
	Name: libpipewire-module-access
	Argument: {
            # access.allowed to list an array of paths of allowed
            # apps.
            #access.allowed = [
            #    /usr/bin/pipewire-media-session
            #]

            # An array of rejected paths.
            #access.rejected = [ ]

            # An array of paths with restricted access.
            #access.restricted = [ ]

            # Anything not in the above lists gets assigned the
            # access.force permission.
            #access.force = flatpak
        }
	Usage counter: n/a
	Properties:
		module.name = "libpipewire-module-access"
		object.id = "16"
		object.serial = "16"
		module.author = "Wim Taymans <wim.taymans@gmail.com>"
		module.description = "Perform access check"
		module.usage = "[ access.force=flatpak ] [ access.allowed=<cmd-line> ] [ access.rejected=<cmd-line> ] [ access.restricted=<cmd-line> ] "
		module.version = "0.3.60"

Module #17
	Name: libpipewire-module-adapter
	Argument: 
	Usage counter: n/a
	Properties:
		module.name = "libpipewire-module-adapter"
		object.id = "17"
		object.serial = "17"
		module.author = "Wim Taymans <wim.taymans@gmail.com>"
		module.description = "Manage adapter nodes"
		module.version = "0.3.60"

Module #19
	Name: libpipewire-module-link-factory
	Argument: 
	Usage counter: n/a
	Properties:
		module.name = "libpipewire-module-link-factory"
		object.id = "19"
		object.serial = "19"
		module.author = "Wim Taymans <wim.taymans@gmail.com>"
		module.description = "Allow clients to create links"
		module.version = "0.3.60"

Module #21
	Name: libpipewire-module-session-manager
	Argument: 
	Usage counter: n/a
	Properties:
		module.name = "libpipewire-module-session-manager"
		object.id = "21"
		object.serial = "21"
		module.author = "George Kiagiadakis <george.kiagiadakis@collabora.com>"
		module.description = "Implements objects for session management"
		module.version = "0.3.60"

Module #536870912
	Name: module-always-sink
	Argument: 
	Usage counter: n/a
	Properties:
		module.author = "Pauli Virtanen <pav@iki.fi>"
		module.description = "Always keeps at least one sink loaded even if it's a null one"
		module.usage = "sink_name=<name of sink>"
		module.version = "0.3.60"


Der Usage Counter steht bei allen Modulen auf “N/A”.
Oder sieht das okay aus?

Momentan ist also der Stand ein Workaround, die USB-CAM abgesteckt zu lassen.
Würde mich freuen, wenn alle Audio-Geräte inkl. Kamera funktionieren.
Am Besten sogar dann, wenn man sie auch mal auf einen anderen Port umsteckt.
Aber das wäre quasi das i-Tüpfel-Sahnehäubchen. :blush:

Viele Grüße & danke für deinen Einsatz bisher!
Tm

P.S.
Auf Pop!_OS sieht’s übrigens so aus (USB-CAM wird erkannt):
Da wird das “DP Audio” ebenfalls als “HDMI Audio” bezeichnet. Ist es technisch gesehen vermutlich auch.

Bildschirmfoto vom 2022-11-18 17-51-42
Bildschirmfoto vom 2022-11-18 17-52-06
Bildschirmfoto vom 2022-11-18 17-52-28

Hallo, das Problem mit der USB-CAM gibt es immer noch.
Würde mich auch über Antworten auf meine Fragen oder/und Tipps zur Lösung freuen.

Beste Grüße

also die Ausgabe von

pactl list modules

sieht bei mir auch so aus das es n/a anzeigt …

Nicht einfach zu “debuggen”

Ein paar ideen kann ich geben:

  1. Installiere und boote den LTS Kernel:
    yay -S linux-lts linux-lts-headers
    und boote mit diesem (eventuell musst du im boot menu LTS auswählen)
    Auch um sicher zu stellen das es sich nicht um eine Kernel Regression handelt… was dann meist mit einem der nächsten Kernel updates behoben wird…

  2. Und es gibt die kleine Möglichkeit das Benutzer Einstellungen vermurkst sind um das auszu schließen die Benutzer spezifischen Einstellungen beseitigen:
    rm -R ~/.local/state/wireplumber ~/.config/pulse
    und am besten neustarten.