解决Linux只有Nvidia HDM声卡输出的现象#
这篇文章在 CSDN 未经我同意变成付费文章了。 原文地址:https://blog.csdn.net/weixin_43594034/article/details/104855855?spm=1001.2014.3001.5501 ↗
起因#
前几天刚刚重装了ArchLinux然后安装桌面后发现声卡不能用,一直在网上找教程找了几天,问题都对不上。倒是在archlinuxcn论坛找到了一个相同问题的,但是那个帖子莫得回复。
就在我苦恼的时候,我想起还有Google这个东西,立马aplay -l一下,把输出放到Google就硬搜。
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0bash其实还是毫无结果,但是我在一个帖子里发现了一个东西:sof-audio-pci。这是一个内核模块,我的电脑只显示Nvidia声卡的原因似乎就因为这个。
真棒!
解决方案#
上面水了那么多字数,其实下面才是解决方案:
编辑Linux Kernel启动项:这里以使用人数最多的Grub2为例子:
在/etc/default/grub里编辑,在GRUB_CMDLINE_LINUX_DEFAULT加上
snd_hda_intel.dmic_detect=0bash然后保存退出,重新生成Grub Config:(注意提权)
grub-mkconfig -o /boot/grub/grub.cfgbash重启一下,就能看到Intel的声卡控制芯片了~

日后谈#
注意一下,我的电脑只是aplay -l显示不出设备,但是在lspci | grep audio能够显示出来
00:1f.3 Multimedia audio controller: Intel Corporation Cannon Lake PCH cAVS (rev 10)bash