我更新到了 14.04。我的声音立即从正常变为非常安静,听起来像是最大音量的 5%,尽管我的所有音量都设置正确。我尝试了很多方法来解决这个问题,比如调整音量、重新加载 ALSA 等。
然后我运行了“aplay -l”,结果显示我有一个 ALC892 声卡。我在 Google 上搜索了 14.04 和 ALC892 的问题,找到了一个解决方案,说要修改
/etc/modprobe.d/alsa-base.conf
并添加到文件末尾:
snd-hda-intel model=generic
它起作用了,修复了这个问题!现在,当我运行“aplay -l”时,它只会将我的声卡报告为 HDA Intel PCH。
我的问题是,为什么这能修复我的声音?
答案1
我并不是 Linux 方面的专家,但我的理论如下:
插入命令块代码:
snd-hda-intel model=generic
...本身就告诉我们一些事情。让我们稍微分析一下。
“ snd-hda-intel
”部分显然告诉 Alsa 声音设备头是一个基于 Intel 的单元。这不难理解。然而,“model=generic”部分才是有意思的部分。
至少对我来说, “ model=generic
” 告诉 Alsa 我们正在寻找适用于此 Intel 音频接头的通用驱动程序。它有点像覆盖命令,因此 Alsa 会精确地查找适用于正确硬件的正确内容。
前几天,我不得不将我的电脑从旧的 AMD FM2+ 电脑升级到全新的 i3 电脑,这时这个问题就出现了——Alsa 无法立即与新的音频头配合使用。这告诉我,Alsa 有一个针对非通用音频设备的预定义库。因此,指定您应该使用“ snd-hda-intel model=generic
”告诉我,像 ALC892 这样的音频设备需要明确说明的库才能有效工作,例如“通用的”,无论出于何种意图和目的。
我并不是说我对这个话题了如指掌,因为这只是根据我自己的经验做出的估计。我知道这篇文章有点过时了,但我认为至少应该以某种方式解释一下答案。