alsa Check

sysvorOrt / # systemctl status alsa-restore
● alsa-restore.service - Save/Restore Sound Card State
     Loaded: loaded (/lib/systemd/system/alsa-restore.service; static)
     Active: active (exited) since Tue 2024-02-27 18:05:23 CET; 20min left
    Process: 1131 ExecStart=/usr/sbin/alsactl restore (code=exited, status=0/SUCCESS)
   Main PID: 1131 (code=exited, status=0/SUCCESS)
        CPU: 5ms

Feb 27 18:05:23 sysvorOrt systemd[1]: Starting alsa-restore.service...
Feb 27 18:05:23 sysvorOrt systemd[1]: Finished alsa-restore.service.
sysvorOrt / # speaker-test -t wav -c 2~

speaker-test 1.2.10

Wiedergabe-Gerät ist default
Stream-Parameter sind 48000 Hz, S16_LE, 2 Kanäle
WAV-Datei(en)
XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by uid 1000! (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.)
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.2.10-r2/work/alsa-lib-1.2.10/src/pcm/pcm_dmix.c:1000:(snd_pcm_dmix_open) unable to open slave
Fehler beim Öffnen des Gerätes: -2, Datei oder Verzeichnis nicht gefunden
michi@sysvorOrt / $ speaker-test -t wav -c 2

speaker-test 1.2.10

Wiedergabe-Gerät ist default
Stream-Parameter sind 48000 Hz, S16_LE, 2 Kanäle
WAV-Datei(en)
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.2.10-r2/work/alsa-lib-1.2.10/src/pcm/pcm_dmix.c:1000:(snd_pcm_dmix_open) unable to open slave
Fehler beim Öffnen des Gerätes: -2, Datei oder Verzeichnis nicht gefunden

Der Fehler, den Sie erhalten, deutet darauf hin, dass ALSA (Advanced Linux Sound Architecture) Probleme beim Öffnen des Geräts hat. Dies könnte auf verschiedene Probleme hinweisen, darunter fehlende Treiber, falsche Konfiguration oder Berechtigungsprobleme.

Hier sind einige Schritte, die Sie zur Fehlerbehebung versuchen können:

  1. Überprüfen Sie die ALSA-Konfiguration:
    Stellen Sie sicher, dass Ihre ALSA-Konfiguration korrekt ist und dass das entsprechende Gerät ordnungsgemäß konfiguriert ist. Dies kann in der Datei /etc/asound.conf oder /etc/asound.conf.d/ erfolgen.
  1. Überprüfen Sie die Treiberinstallation:
    Stellen Sie sicher, dass die Treiber für Ihr Audiogerät ordnungsgemäß installiert und geladen sind. Sie können dies überprüfen, indem Sie lsmod | grep snd ausführen, um sicherzustellen, dass die ALSA-Treiber geladen sind.
michi@sysvorOrt ~/Musik $ lsmod | grep snd
snd_hda_codec_realtek   192512  1
snd_hda_codec_generic   114688  1 snd_hda_codec_realtek
snd_hda_codec_hdmi     90112  1
snd_hda_intel          61440  0
snd_intel_dspcfg       36864  1 snd_hda_intel
snd_intel_sdw_acpi     16384  1 snd_intel_dspcfg
snd_hda_codec         225280  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core          147456  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_hwdep              20480  1 snd_hda_codec
snd_pcm               188416  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
ledtrig_audio          12288  2 snd_hda_codec_generic,asus_wmi
snd_timer              53248  1 snd_pcm
snd                   155648  8 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm
soundcore              16384  1 snd

Überprüfen Sie die Berechtigungen:
Stellen Sie sicher, dass der Benutzer, der den Befehl ausführt, die erforderlichen Berechtigungen hat, um auf das Audiogerät zuzugreifen. Normalerweise erfordert dies, dass der Benutzer zur Gruppe „audio“ gehört. Fügen Sie den Benutzer bei Bedarf dieser Gruppe hinzu und melden Sie sich erneut an, damit die Änderungen wirksam werden.

  • Überprüfen Sie die existierenden Geräte:
    Überprüfen Sie, ob das Gerät, auf das zugegriffen werden soll, tatsächlich vorhanden ist. Sie können dies mit Befehlen wie aplay -l überprüfen, um eine Liste der erkannten Audiogeräte anzuzeigen.
michi@sysvorOrt ~/Musik $ aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: Generic [HD-Audio Generic], Gerät 3: HDMI 0 [LG HDR 4K]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 1: Generic_1 [HD-Audio Generic], Gerät 0: ALC897 Analog [ALC897 Analog]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 1: Generic_1 [HD-Audio Generic], Gerät 1: ALC897 Digital [ALC897 Digital]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
  1. Überprüfen Sie die Verkabelung (falls zutreffend):
    Wenn Sie externe Audiogeräte verwenden, stellen Sie sicher, dass sie ordnungsgemäß angeschlossen sind und funktionieren.
  2. Überprüfen Sie Systemprotokolle:
    Manchmal können weitere Informationen in den Systemprotokollen (z. B. /var/log/messages oder /var/log/syslog) vorhanden sein, die Ihnen bei der Diagnose des Problems helfen können.
michi@sysvorOrt ~/Musik $ dmesg | grep sound
[    9.974040] input: HD-Audio Generic HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:08.1/0000:07:00.1/sound/card0/input11
[   10.011696] input: HD-Audio Generic Front Mic as /devices/pci0000:00/0000:00:08.1/0000:07:00.6/sound/card1/input12
[   10.012920] input: HD-Audio Generic Rear Mic as /devices/pci0000:00/0000:00:08.1/0000:07:00.6/sound/card1/input13
[   10.014072] input: HD-Audio Generic Line as /devices/pci0000:00/0000:00:08.1/0000:07:00.6/sound/card1/input14
[   10.015228] input: HD-Audio Generic Line Out as /devices/pci0000:00/0000:00:08.1/0000:07:00.6/sound/card1/input15
[   10.016404] input: HD-Audio Generic Front Headphone as /devices/pci0000:00/0000:00:08.1/0000:07:00.6/sound/card1/input16

Wenn Sie diese Schritte durchgeführt haben und das Problem weiterhin besteht, können weitere spezifische Informationen darüber, welche Audiogeräte Sie verwenden und wie Ihre ALSA-Konfiguration aussieht, hilfreich sein, um das Problem weiter einzugrenzen.

_____________________________________________________________________________________________

TODO:

Treiber sind ja geladen, wie seiht deine asound.conf aus? Zum Vergleich, so sind die Ausgaben von meinem Musik-Rechner:

Code:$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: b1 [bcm2835 HDMI 1], device 0: bcm2835 HDMI 1 [bcm2835 HDMI 1] Subdevices: 4/4 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 card 1: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones] Subdevices: 4/4 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 Subdevice #2: subdevice #2 Subdevice #3: subdevice #3 card 2: sndallodigione [snd_allo_digione], device 0: Allo DigiOne HiFi wm8804-spdif-0 [Allo DigiOne HiFi wm8804-spdif-0] Subdevices: 1/1 Subdevice #0: subdevice #0 $ cat /etc/asound.conf pcm.!default { type empty slave.pcm „volumio“ } pcm.volumio { type empty slave.pcm „volumioOutput“ } # There is always a plug before the hardware to be safe pcm.volumioOutput { type plug slave.pcm „volumioHw“ } pcm.volumioHw { type hw card „sndallodigione“ }Das ist ein Raspberry PI mit einer extra Audio Hardware drauf, entsprechend wird bei mir Karte 2 verwendet. Ich vermute, dass bei dir was verwendet wird, wo nichts passendes dran ist, zB Karte 0

Speakertest sagt mir gerade nichts, hier wird aber beschrieben, wie man bei aplay angibt, wo es raus soll: https://debianforum.de/forum/viewtopic.php?t=168485

https://www.linuxforen.de/forums/showthread.php?283178-Sound-unter-Gentoo-Linux-funzt-nicht

asound.conf automatisch erstellen lassen?

Ja, unter Gentoo Linux können Sie eine asound.conf automatisch erstellen lassen. Die asound.conf wird normalerweise verwendet, um die Konfiguration des ALSA-Soundsystems anzupassen. Sie können diese Datei manuell erstellen oder ein Tool wie alsaconf verwenden, um sie automatisch generieren zu lassen.

Beachten Sie jedoch, dass alsaconf nicht standardmäßig in Gentoo enthalten ist. Stattdessen können Sie alsactl verwenden, um die Soundkonfiguration zu verwalten.

Hier ist ein Beispiel, wie Sie alsactl verwenden können, um die Soundkonfiguration zu speichern und die asound.conf zu generieren:

# Führen Sie als Root aus
alsactl store

Dieser Befehl speichert die aktuelle ALSA-Konfiguration in der Datei /etc/asound.state. Sie können dann eine asound.conf basierend auf dieser Datei erstellen:

alsactl init

Dieser Befehl generiert eine asound.conf basierend auf den gespeicherten Einstellungen in /etc/asound.state.

Wenn Sie spezifische Anpassungen an der ALSA-Konfiguration vornehmen müssen, können Sie die asound.conf manuell bearbeiten oder Skripte schreiben, um die gewünschten Einstellungen automatisch einzurichten.

sysvorOrt /etc # alsactl store
XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by uid 1000! (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.)

sysvorOrt /etc # alsactl init
XDG_RUNTIME_DIR (/run/user/1000) is not owned by us (uid 0), but by uid 1000! (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.)
Found hardware: "HDA-Intel" "ATI R6xx HDMI" "HDA:1002aa01,00aa0100,00100700" "0x1043" "0x8809"
Hardware is initialized using a generic method
Found hardware: "HDA-Intel" "Realtek ALC897" "HDA:10ec0897,104387fb,00100402" "0x1043" "0x87fb"
Hardware is initialized using a generic method

Die Meldungen, die du siehst, deuten auf ein Berechtigungsproblem im Zusammenhang mit dem Verzeichnis XDG_RUNTIME_DIR hin, und dann wird die Audiohardware mithilfe einer generischen Methode initialisiert.

XDG_RUNTIME_DIR ist eine Umgebungsvariable, die den Pfad zu einem Verzeichnis angibt, in dem benutzerspezifische nicht wesentliche Laufzeitdateien und andere Dateiobjekte (wie Sockets, benannte Pipes usw.) gespeichert werden sollen. Dieses Verzeichnis sollte dem Benutzer gehören, der gerade angemeldet ist. In deinem Fall scheint jedoch das Verzeichnis dem Benutzer 1000 zu gehören, anstatt dem Root-Benutzer (uid 0).

Die Warnmeldung deutet darauf hin, dass diese Diskrepanz darauf zurückzuführen sein könnte, dass versucht wird, eine nicht-root-PulseAudio als Root-Benutzer über das native Protokoll zu verbinden.

Um dieses Problem zu beheben, solltest du sicherstellen, dass die Berechtigungen für das Verzeichnis XDG_RUNTIME_DIR korrekt festgelegt sind. Du kannst dies entweder durch Ändern des Besitzes des Verzeichnisses auf root (uid 0) oder durch sicherstellen, dass du nicht versuchst, eine Verbindung zu PulseAudio als Root-Benutzer herzustellen.

Hier ist, wie du den Besitz des Verzeichnisses auf root ändern kannst:

sudo chown root:root /run/user/1000

Nachdem du diese Änderung vorgenommen hast, musst du möglicherweise dein System neu starten oder die Dienste neu starten, die PulseAudio verwenden, damit die Änderungen wirksam werden.

Alternativ, wenn du versuchst, mit PulseAudio zu interagieren, stellen sicher, dass du dies nicht als Root-Benutzer tust, da dies im Allgemeinen nicht empfohlen wird.