我刚用MSI mag z590安装了个人电脑。它有Realtek ALC4080 Codec。放置前面板的耳机插孔不起作用。我在找老问题。我找到了最近的问题。不幸的是,没有答案。耳机是定义在我的声音设置,但声音不来。我的内核5.11.0-43-泛型和ubuntuver20.04LTS。我可以用蓝牙耳机获得声音。
发布于 2023-05-23 12:42:42
我有同样的问题,并修正了它与最新的阿尔萨UCM配置。alsa配置来自alsa-ucm-conf
包。对alsa-ucm-conf
包的更新将消除您在这里所做的修改,因此进行备份并记录哪些工作有效,这样您就可以在最终更新到alsa-ucm-conf
之后轻松地恢复更改。我的修补程序与这里列出的另一个非常相似,但是它成功地避免了安装新版本的alsa-lib的需要。其他降落在这里的人应该知道,这也取决于你的主板,但我也会涵盖这一点。ALC4080芯片组以USB设备的形式出现,所以请记住这一点。
现在查看文件ucm2 2/USB/USBAudio.conf,特别是在If.realtek-alc4080
块(由外部大括号分隔)。如果你在评论中看到你的主板,太好了!您只需按原样使用该块并跳过下一步。
如果你没看到你的主板,别担心,我们会让它正常工作的。运行以下命令:
lsusb
您将需要从那里提取您的USB音频卡的id。每个主板上都不一样。我的照片是这样的:
Bus 001 Device 002: ID 42ab:4a5c ASUSTek Computer, Inc. USB Audio
所以我的是42ab:4a5c
。记住要查找包含"USB“的行。如果您看到多行USB音频,您可能有一些USB耳机或音频设备,拔掉它,然后再试一次。
现在在您的系统上编辑/usr/share/alsa/ucm2/USB-Audio/USB-Audio.conf
(在进行备份之前保存备份以保持安全),并将整个If.realtek-alc4080
块从ucm2 2/USB/USBAudio.conf添加到USB-Audio.conf
文件中,包括If.realtek-alc4080
文本。
如果您的主板没有列出,请用Regex "USB(..."
替换整个行,以Regex "USB<your usb id from lsusb>"
开头。所以我的主板应该是Regex "USB42ab:4a5c"
然后将ALC4080.conf和ALC4080-HiFi.conf分别复制到/usr/share/alsa/ucm2/USB-Audio/Realtek/ALC4080.conf
和/usr/share/alsa/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf
。
您所做的复制这些文件基本上是为alsa提供了理解如何与ALC4080芯片组通信所必需的配置。
现在,我们必须弄清楚您的alsa库是否能够理解这些配置文件。这些步骤是必要的,因为这些文件中使用的语法是“新”语法(显然是语法6),只有更新的alsa库才能理解(我不知道确切的版本)。让我们尝试加载这个新的配置,看看它是否工作。
alsaucm -i
open USB-Audio
listcards
命令alsaucm -i
带您进入alsaucm
的交互模式。然后使用open USB-Audio
,您告诉它尝试加载USB配置。如果此时出现错误,我们将需要编辑配置文件,以获取它无法理解的语法。如果您没有发现错误,并且在运行listcards
之后看到了一些很好的输出,那么祝贺您重新启动并试用您的音频功能。
如果出现错误,则需要编辑/usr/share/alsa/ucm2/USB-Audio/Realtek/ALC4080.conf
并将所有内容替换为
Comment "USB-audio on Realtek ALC4080"
SectionUseCase."HiFi" {
File "/USB-Audio/Realtek/ALC4080-HiFi.conf"
Comment "HiFi 2.0 Channels"
}
# SectionUseCase."HiFi 5+1" {
# File "/USB-Audio/Realtek/ALC4080-HiFi.conf"
# Comment "HiFi 5.1 channels"
# }
# SectionUseCase."HiFi 7+1" {
# File "/USB-Audio/Realtek/ALC4080-HiFi.conf"
# Comment "HiFi 7.1 channels"
# }
这是我翻译成旧语法风格的尝试。您还需要编辑/usr/share/alsa/ucm2/USB-Audio/Realtek/ALC4080-HiFi.conf
并删除以Variant."HiFi....
开头的2行。
现在,如果您一直在关注,您可能已经注意到ALC4080有3种操作模式。这些操作模式是在我的主板手册中描述的,这3种操作模式要么是2.0通道,要么是5+1或7+1。在未来的alsa-ucm-conf
版本中,这些模式将分别工作。但现在我们必须对其中一个模式进行硬编码。如果您只是使用耳机,您可以跳过更改PlaybackChannels
并移到下面的验证步骤。如果您使用的是5+1,则需要用PlaybackChannels 6
替换PlaybackChannels 2
行,如果使用7+1,则必须用PlaybackChannels 8
替换它。您还可以通过注释/取消注释行(注释以#
开头)来做到这一点,就像在上面的新ALC4080.conf
中所做的那样。如果您希望看到适当的标题,您也可以在上面的ALC4080.conf
中注释/取消注释适当的部分,尽管这不是绝对必要的。不幸的是,我对这种格式还不太了解,无法为所有3种操作模式提供解决方案。因此,如果要在它们之间切换,则需要适当地编辑这些文件并重新启动计算机。
现在,让我们再试一次验证配置。再运行这些
alsaucm -i
open USB-Audio
listcards
您不应该得到任何错误,在运行列表卡时,您应该看到列出的卡,可能称为“通用USB音频”。现在这个办法终于起作用了。重新启动并检查它是否有效。
https://askubuntu.com/questions/1384500
复制相似问题