Realtek® ALC4080 编解码器前置插孔不工作

Realtek® ALC4080 编解码器前置插孔不工作

我刚刚用 MSI mag z590 设置了电脑。它有 Realtek® ALC4080 编解码器。前面板的耳机插孔不起作用。我搜索旧问题。我发现这个最接近问题。不幸的是,没有答案。我的声音设置上定义了耳机,但没有声音。我的内核是 5.11.0-43-generic,ubuntu 版本是 20.04 LTS。我可以用蓝牙耳机听到声音。

答案1

更新:一旦我的 Ubuntu 将 alsa 包更新到版本 1.2.8(使用命令检查alsaucm --version),我只需安装就可以让我的卡工作alsa-ucm-conf 版本 1.2.10他们在本指南中提供了说明自述。请记住使用 运行tar xvzf说明中的​​命令sudo。完成后,重新启动,尽情享受吧!

我遇到了同样的问题,并使用最新的 alsa UCM 配置修复了它。alsa UCM 配置来自软件包alsa-ucm-conf。对软件包的更新alsa-ucm-conf将清除您在此处所做的修改,因此请备份并记录哪些修改有效,以便在最终更新后轻松恢复更改alsa-ucm-conf。我的修复方法与此处列出的另一个非常相似,但它设法避免了安装新版本的 alsa-lib 的需要。其他访问此处的人应该知道这也取决于您拥有的主板,但我也会介绍这一点。ALC4080 芯片组显示为 USB 音频设备,所以请记住这一点。

现在看看文件ucm2/USB 音频/USB 音频.conf特别是在If.realtek-alc4080块(由外部括号分隔)处。如果您在评论中看到了您的主板,那就太好了!您可以直接使用该块并跳过下一步。

如果您没有看到主板,请不要担心,我们仍然会让它工作。运行以下命令:

    lsusb

您需要从那里提取 USB 音频卡的 ID。每个主板上的 ID 都不同。我的是这样的:

    Bus 001 Device 002: ID 42ab:4a5c ASUSTek Computer, Inc. USB Audio

所以我的就是42ab:4a5c。记得查找包含“USB Audio”的行。如果您看到多行包含 USB Audio,则可能是您有 USB 耳机或音频设备,请拔下它然后重试。

现在/usr/share/alsa/ucm2/USB-Audio/USB-Audio.conf在您的系统上进行编辑(在执行此操作之前请保存备份以确保安全)并添加整个If.realtek-alc4080ucm2/USB 音频/USB 音频.confIf.realtek-alc4080文本包含到您的USB-Audio.conf文件中。

如果你的主板没有列出,请将以 开头的整行替换为Regex "USB(..."Regex "USB<your usb id from lsusb>"因此,对于我的主板,它将是Regex "USB42ab:4a5c"

然后复制ALC4080.confALC4080-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并删除以 开头的 2 行Variant."HiFi....

现在,如果您一直留心观察,您可能已经注意到 ALC4080 有 3 种操作模式。这些操作模式在我的主板手册中有描述,这 3 种操作模式要么是 2.0 通道,要么是 5+1 或 7+1。在未来的版本中,alsa-ucm-conf这些将单独工作。但现在我们必须对其中一种模式进行硬编码。如果您只是使用耳机,您可以跳过更改PlaybackChannels并转到下面的验证步骤。如果您使用的是 5+1,则需要用 替换行PlaybackChannels 2PlaybackChannels 6如果您使用的是 7+1,则必须用 替换它PlaybackChannels 8。您也可以通过注释/取消注释行(注释以 开头#)来执行此操作,就像ALC4080.conf上面的新操作一样。如果您想查看适当的标题,您也可以在上面注释/取消注释相应的部分ALC4080.conf,尽管这不是绝对必要的。不幸的是,我对这种格式不够了解,无法为所有 3 种操作模式提供解决方案。因此,如果您想在它们之间切换,您需要适当地编辑这些文件并重新启动计算机。

现在让我们再次尝试验证配置。再次运行这些

    alsaucm -i
    open USB-Audio
    listcards

您不应该收到任何错误,并且在运行 listcards 时,您应该会看到列出的卡,可能名为“通用 USB 音频”。现在终于可以正常工作了。重新启动并检查它是否正常工作。

答案2

我遇到过并修复了同样的问题,总之,你最好等待最新的 alsa 版本成为稳定的 ubuntu repo,而不是现在尝试修复它。
如果你想现在修复它,以下是我所做的:

  • 首先,您可以通过直接播放音频来排除接线和编解码器问题aplay来源):

    aplay -D plughw:Audio,1 /usr/share/sounds/alsa/Front_Left.wav
    
  • 验证后,您可以查看最新的 USB 音频配置alas-ucm-conf你的主板的仓库中。 lsusb | grep -i audio也会帮助你找到准确的 USB ID 并将其与那里的正则表达式匹配,就像各种相关 GH 问题

  • 然后,您必须以某种方式获取最新的配置 + alsa-lib可以解析它的版本。
    前者很容易 - 只需克隆 repo、checkout master 或 1.2.7.2,然后从 repo 的根目录运行以下命令:

    git clone https://github.com/alsa-project/alsa-ucm-conf && cd alsa-ucm-conf
    # git checkout 1.2.7.2 if you don't want master
    # take a a backup
    sudo mv /usr/share/alsa/ucm2 /usr/share/alsa/ucm2_bak/
    # link ucm2 config to the shared config dir
    sudo ln -s `pwd`/ucm2 /usr/share/alsa/ucm2
    
  • 安装一个alsa-lib可以解析配置的版本更加繁琐,这就是我建议等待的原因。最好从源代码构建(不是我做的,见 1)

  • 最后,一旦您拥有了配置和可以解析它的库版本:

    alsaucm reload
    pulseaudio -k && pulseaudio -D
    

希望对大家有帮助。

1:我没有从源代码构建,我不知道自己在做什么,所以我天真地将 bookworm 添加到我的目录中,/etc/apt/sources.list这样我就可以alsa-utils 1.2.7.1,这不知怎么地破坏了我的 DNS 解析器,所以我强烈建议不要这样做。同样,从源代码安装可能是可行的方法,但我没有看到任何关于如何这样做的建议。

相关内容