openSUSE 调试声卡问题

我这个电脑装上 openSUSE 就没有过声音 :joy: 把调试的方法记录下方便后来人。

查看有几块声卡

$ cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                  HDA Intel PCH at 0xf7220000 irq 124
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                  HDA NVidia at 0xf7080000 irq 17

我的是两块。

查看声卡具体型号

$ cat '/proc/asound/card0/codec#0'
Codec: Realtek ALC887-VD

要看哪张卡就把 0 换成几。

查找驱动

$ /sbin/lspci | grep Audio
00:1f.3 Audio device: Intel Corporation 100 Series/C230 Series Chipset Family HD Audio Controller (rev 31)
01:00.1 Audio device: NVIDIA Corporation GM206 High Definition Audio Controller (rev a1)

这里你有几张声卡肯定就会出几条。然后查找硬件的 ID,这个查找驱动特别准确:

$ /sbin/lspci -n | grep "00:1f.3"
00:1f.3 0403: 8086:a170 (rev 31)

然后复制这个 “8086:a170" 去贴到 google 搜索。8086 意思是厂商,a170 是型号。

一般就会在 Linux Kernel Drver Database (LKDDB) 里找到对应的内核驱动模块的名字。

我的是 snd-hda-codec , snd-hda-intel , snd-hda-intel

确认驱动已加载

$ lsmod
snd_hda_codec_hdmi     65536  1
snd_hda_codec_realtek   126976  1
snd_hda_codec_generic    90112  1 snd_hda_codec_realtek
ledtrig_audio          16384  2 snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_intel          45056  4
snd_hda_codec         151552  4 
snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core           94208  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek

alsamixer 调试

$ alsamixer

进去之后先按 F6 选择声卡,然后按 F3 切到 Playback。

这时候就可以通过左右箭头来切换,上下箭头来调节音量了。如果看到有显示为 MM 的,是禁用,可以按键盘上的 M 键启用。

注意 Front Mic 和 Front Mix Boost 轻易不要开,不然音量太大了耳机有电流声。

保存 alsa 结果

$ sudo alsactl store

会在 /etc 目录下生成一个 asound.state,下次开机就不用再调了。

5赞

:+1::+1::+1::+1::+1:

寨主棒棒哒

哟,竟然是女王大人本尊。好奇没有声音的日子里,怎么过的