Soundkarte – Probs mit Alsa

Symptom: Der Sound funktioniert nicht.

Die Anleitung zur Installation und Konfiguration gibt es hier

Dieser Beitrag beschäftigt sich mit Problemen im Soundbereich
Eine Überprüfung der Funktion der Soundkarte kann über den Speakertest durchgeführt werden.  Es erfolgt eine Fehlermeldung mit verschiedenen Infos. Hauptpunkt ist die Aussage „(parse_card) cannot find card ‚0‘“  – also die Karte wird vom Alsa nicht gefunden bzw. erkannt.

Speaker Test

Speaker-Test ist ein util des Paketes alsa-utils.

michi-kiste /home/michi # speaker-test

speaker-test 1.1.2

Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4371:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4371:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4371:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4850:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/pcm/pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM default
Playback open error: -2,No such file or directory

 Die grafische Ansicht der Alsakonfiguration kann über den alsamixergui gestartet werden. Das Paket alsamixer muss installiert sein.  Leider wird auch hier keine Karte angezeigt.

 

Das häufigste Problem bei der Konfiguration der Hardware besteht in der Konfiguration / Aktivierung der Module. Unter Windows sind es die Treiber , unter Linux die Module …
Die Module werden entweder manuell über lsmod und Angabe des Modulnamens  oder durch im Kernel aktivierte Module konfiguriert.

Über lspci -v kann die Hardware detailliert aufgelistet werden. Es werden 2 Soundkarten erkannt:

Auszug lspci -v :

00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 01)
Subsystem: ASUSTeK Computer Inc. FCH Azalia Controller
Flags: bus master, slow devsel, latency 32, IRQ 5
Memory at feb40000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Kernel modules: snd_hda_intel

00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Trinity HDMI Audio Controller
Subsystem: ASUSTeK Computer Inc. Trinity HDMI Audio Controller
Flags: bus master, fast devsel, latency 0, IRQ 10
Memory at feb44000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 3
Capabilities: [58] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
Kernel modules: snd_hda_intel

In beiden Versionen wird das Kernel Modul snd_hda_intel angezeigt. Nun kann überprüft werden, ob die Module im Kernel aktiviert sind.  Bei der Angabe =m sind die Module eingestellt. Bei y wurden die Komponenten fest in den Kernel eingebunden. Eine Filterung der Kerneldatei nach SND_HDA erfolgt:

michi-kiste /home/michi # cat /usr/src/linux/.config | grep SND_HDA
CONFIG_SND_HDA=m
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
# CONFIG_SND_HDA_INPUT_BEEP is not set
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CODEC_REALTEK=m
CONFIG_SND_HDA_CODEC_ANALOG=m
CONFIG_SND_HDA_CODEC_SIGMATEL=m
CONFIG_SND_HDA_CODEC_VIA=m
CONFIG_SND_HDA_CODEC_HDMI=m
CONFIG_SND_HDA_CODEC_CIRRUS=m
CONFIG_SND_HDA_CODEC_CONEXANT=m
CONFIG_SND_HDA_CODEC_CA0110=m
CONFIG_SND_HDA_CODEC_CA0132=m
# CONFIG_SND_HDA_CODEC_CA0132_DSP is not set
CONFIG_SND_HDA_CODEC_CMEDIA=m
CONFIG_SND_HDA_CODEC_SI3054=m
CONFIG_SND_HDA_GENERIC=m
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
CONFIG_SND_HDA_CORE=m
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_PREALLOC_SIZE=64

 

Ein Test unter Linux -Mint

Auf einer anderen Partition nutze ich Linux-Mint. Darunter wird die Karte erkannt und die Lautsprecher (extern) funktionieren.  Es brachte folgendes Gerät als korrekt heraus:

00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 01)
Subsystem: ASUSTeK Computer Inc. FCH Azalia Controller
Flags: bus master, slow devsel, latency 32, IRQ 16
Memory at feb40000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel

Hier wird auch das Kernel – Modul snd_hda_intel genutzt. Die Anzeige des Alsamixer Gui ist korrekt und funktioniert.

 

Somit versuche ich in Gentoo das Modul manuell zu laden. Dies ist erfolgreich.

michi-kiste /home/michi # modprobe -vv snd_hda_intel
modprobe: INFO: custom logging function 0x40a030 registered
modprobe: INFO: context 0x623260 released

Um das Modul standardmäßig zu aktivieren habe ich es in die Datei /etc/conf.d/modules hinzugefügt:

# You should consult your kernel documentation and configuration
# for a list of modules and their options.
modules="snd_hda_intel"
modules lines 1-28/28 (END)

In der Systemmeldung werden Informationen zum Abruf angezeigt:

Auszug dmesg:

[ 1085.374817] snd_hda_intel 0000:00:01.1: Force to non-snoop mode
[ 1085.384298] input: HDA ATI HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.1/sound/card1/input4
[ 1085.387403] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC887-VD: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:line
[ 1085.387405] snd_hda_codec_realtek hdaudioC0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 1085.387407] snd_hda_codec_realtek hdaudioC0D0: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[ 1085.387407] snd_hda_codec_realtek hdaudioC0D0: mono: mono_out=0x0
[ 1085.387408] snd_hda_codec_realtek hdaudioC0D0: dig-out=0x11/0x0
[ 1085.387409] snd_hda_codec_realtek hdaudioC0D0: inputs:
[ 1085.387411] snd_hda_codec_realtek hdaudioC0D0: Front Mic=0x19
[ 1085.387412] snd_hda_codec_realtek hdaudioC0D0: Rear Mic=0x18
[ 1085.387413] snd_hda_codec_realtek hdaudioC0D0: Line=0x1a
[ 1085.400047] input: HD-Audio Generic Front Mic as /devices/pci0000:00/0000:00:14.2/sound/card0/input5
[ 1085.400099] input: HD-Audio Generic Rear Mic as /devices/pci0000:00/0000:00:14.2/sound/card0/input6
[ 1085.400147] input: HD-Audio Generic Line as /devices/pci0000:00/0000:00:14.2/sound/card0/input7
[ 1085.400203] input: HD-Audio Generic Line Out as /devices/pci0000:00/0000:00:14.2/sound/card0/input8
[ 1085.400247] input: HD-Audio Generic Front Headphone as /devices/pci0000:00/0000:00:14.2/sound/card0/input9

Nach der Aktivierung des snd Moduls in Gentoo werden Komponenten erfolgreich gestartet. Leider höre ich keinen Sound. Die Verkabelung und Lautstärke habe ich überprüft.

michi-kiste /etc/conf.d # speaker-test

speaker-test 1.1.2

Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 2048 to 8192
Period size range from 1024 to 1024
Using max buffer size 8192
Periods = 4
was set period_size = 1024
was set buffer_size = 8192
0 - Front Left
Time per period = 2.836984
0 - Front Left
Time per period = 2.986638
0 - Front Left

 
Es stellte sich heraus, dass der Masterkanal auf mute (stumm) geschaltet ist. Durch Drücken der Taste m kann man die soundausgabe aktivieren oder deaktivieren.

Nun ist eine Nutzung als root vollständig ok. Bei dem Versuch als User bekomme ich einen Fehler.

michi@michi-kiste ~/Downloads $ aplay audiocheck.net_hdsweep_1Hz_44000Hz_-3dBFS_30s.wav
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4371:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4371:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4371:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4850:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/pcm/pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM default
aplay: main:786: audio open error: No such file or directory

 

Wichtig ist die Überprüfung, ob der User in der Gruppe audio ist. Durch id werden die zum User gehörenden Gruppen angezeigt:

michi@michi-kiste ~/Downloads $ id
uid=1000(michi) gid=18(audio) groups=18(audio),10(wheel),100(users),235(plugdev)

Die Festlegung erfolgt über die Datei /etc/groups

 

Michi gehört zur Gruppe audio. Sollte dies nicht der Fall sein, kann über den Befehl  gpasswd -a username audio der User der Gruppe hinzugefügt werden.

Ein Start des alsamixer ist als root erfolgreich. Als User kommt ein Fehler.

michi-kiste ~ # alsamixer
michi-kiste ~ # su michi
michi@michi-kiste /root $ alsamixer
cannot open mixer: No such file or directory

Ich bekam die Anregung die Rechte des Audio-Devices zu überprüfen. Dies erfolgt über den Abruf im Verzeichnis /dev/snd

michi-kiste /dev/snd # ls -all
total 0
drwxr-xr-x 3 root root 260 Nov 18 13:22 .
drwxr-xr-x 16 root root 3640 Nov 18 13:38 ..
drwxr-xr-x 2 root root 80 Nov 18 13:22 by-path
crw-rw---- 1 root root 116, 5 Nov 18 13:22 controlC0
crw-rw---- 1 root root 116, 2 Nov 18 13:22 controlC1
crw-rw---- 1 root root 116, 10 Nov 18 13:22 hwC0D0
crw-rw---- 1 root root 116, 4 Nov 18 13:22 hwC1D0
crw-rw---- 1 root root 116, 7 Nov 18 17:03 pcmC0D0c
crw-rw---- 1 root root 116, 6 Nov 18 17:03 pcmC0D0p
crw-rw---- 1 root root 116, 8 Nov 18 17:03 pcmC0D1p
crw-rw---- 1 root root 116, 9 Nov 18 13:22 pcmC0D2c
crw-rw---- 1 root root 116, 3 Nov 18 17:03 pcmC1D3p
crw-rw---- 1 root root 116, 33 Nov 18 13:22 timer

Hier wurden die Dateien nur mit Recht root root angezeigt. Nicht mit root audio. Durch Hinzufügen von udev in den Runlevel sysinit wurde dies Problem gelöst.

michi-kiste /dev/snd # rc-update add udev sysinit

michi-kiste /dev/snd # ls -all
total 0
drwxr-xr-x 3 root root 260 Nov 18 13:22 .
drwxr-xr-x 16 root root 3640 Nov 18 13:38 ..
drwxr-xr-x 2 root root 80 Nov 18 13:22 by-path
crw-rw---- 1 root audio 116, 5 Nov 18 13:22 controlC0
crw-rw---- 1 root audio 116, 2 Nov 18 13:22 controlC1
crw-rw---- 1 root audio 116, 10 Nov 18 13:22 hwC0D0
crw-rw---- 1 root audio 116, 4 Nov 18 13:22 hwC1D0
crw-rw---- 1 root audio 116, 7 Nov 18 17:03 pcmC0D0c
crw-rw---- 1 root audio 116, 6 Nov 18 17:03 pcmC0D0p
crw-rw---- 1 root audio 116, 8 Nov 18 17:03 pcmC0D1p
crw-rw---- 1 root audio 116, 9 Nov 18 13:22 pcmC0D2c
crw-rw---- 1 root audio 116, 3 Nov 18 17:03 pcmC1D3p
crw-rw---- 1 root audio 116, 33 Nov 18 13:22 timer


michi@michi-kiste /dev/snd $ speaker-test

speaker-test 1.1.2

Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 2048 to 8192
Period size range from 1024 to 1024
Using max buffer size 8192
Periods = 4
was set period_size = 1024
was set buffer_size = 8192
0 - Front Left
Time per period = 2.836924
0 - Front Left

Problem gelöst. Der Sound funktioniert jetzt auch als User

Sollte der Sound unter Firefox Probleme machen muss evtl. das passende Plugin installiert werden. Ausführliche Infos gibt es unter https://support.mozilla.org/de/kb/Video-oderAudiodateien-koennen-nicht-abgespielt-werden

 

Weitere Fehlermeldung aus dem Bereich:

localhost# speaker-test

speaker-test 1.1.2

Wiedergabe-Gerät ist default
Stream-Parameter sind 48000 Hz, S16_LE, 1 Kanäle
Verwende 16 Oktaven rosa Rauschen
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/pcm/pcm_dmix.c:1041:(snd_pcm_dmix_open) unable to open slave
Fehler beim Öffnen des Gerätes: -2, Datei oder Verzeichnis nicht gefunden

Schreibe einen Kommentar