音频错误:intel/sof/sof-cml.ri 的直接固件加载失败,错误为 -2

音频错误:intel/sof/sof-cml.ri 的直接固件加载失败,错误为 -2

请注意,此问题是关于 X1 Carbon 7th Gen 的第十代英特尔 ( Intel(R) Core(TM) i7-10710U)。部分x1c7配备第8代intel,会出现不同的问题;lshw报告:

00:1f.3 Audio device: Intel Corporation Device 02c8 (prog-if 80)

我的音频无法正常工作。我没有收到任何声音或设备检测。在5.6.0-1-amd64内核上,我遇到了一堆错误sof-audio-pci

$ sudo dmesg | grep -i 'sof-audio-pci 0000:00:1f.3'
sof-audio-pci: DSP detected with PCI class/subclass/prog-if info 0x040380
sof-audio-pci: Digital mics found on Skylake+ platform, using SOF driver
sof-audio-pci: DSP detected with PCI class/subclass/prog-if 0x040380
sof-audio-pci: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
sof-audio-pci: use msi interrupt mode
sof-audio-pci: hda codecs found, mask 5
sof-audio-pci: using HDA machine driver skl_hda_dsp_generic now
sof-audio-pci: firmware: failed to load intel/sof/sof-cml.ri (-2)
sof-audio-pci: Direct firmware load for intel/sof/sof-cml.ri failed with error -2
sof-audio-pci: error: request firmware intel/sof/sof-cml.ri failed err: -2
sof-audio-pci: error: failed to load DSP firmware -2
sof-audio-pci: error: sof_probe_work failed err: -2

似乎它正在尝试加载一个不存在的文件,我没有得到任何信息

locate intel/sof/sof-cml.ri

我在包裹里也没有看到这个firmware-intel-sound

➜  ~ apt-file show firmware-intel-sound
firmware-intel-sound: /lib/firmware/intel/IntcSST2.bin
firmware-intel-sound: /lib/firmware/intel/dsp_fw_bxtn.bin
firmware-intel-sound: /lib/firmware/intel/dsp_fw_bxtn_v3366.bin
firmware-intel-sound: /lib/firmware/intel/dsp_fw_cnl.bin
firmware-intel-sound: /lib/firmware/intel/dsp_fw_cnl_v1858.bin
firmware-intel-sound: /lib/firmware/intel/dsp_fw_glk.bin
firmware-intel-sound: /lib/firmware/intel/dsp_fw_glk_v3366.bin
firmware-intel-sound: /lib/firmware/intel/dsp_fw_kbl.bin
firmware-intel-sound: /lib/firmware/intel/dsp_fw_kbl_v3402.bin
firmware-intel-sound: /lib/firmware/intel/dsp_fw_kbl_v3420.bin
firmware-intel-sound: /lib/firmware/intel/dsp_fw_release.bin
firmware-intel-sound: /lib/firmware/intel/dsp_fw_release_v3402.bin
firmware-intel-sound: /lib/firmware/intel/fw_sst_0f28.bin
firmware-intel-sound: /lib/firmware/intel/fw_sst_0f28.bin-48kHz_i2s_master
firmware-intel-sound: /lib/firmware/intel/fw_sst_22a8.bin
firmware-intel-sound: /usr/share/bug/firmware-intel-sound/presubj
firmware-intel-sound: /usr/share/doc/firmware-intel-sound/changelog.Debian.gz
firmware-intel-sound: /usr/share/doc/firmware-intel-sound/copyright
firmware-intel-sound: /usr/share/metainfo/firmware-intel-sound.metainfo.xml

唯一显示它是虚拟的输出源。是否有可能使用在启动时生成此日志的 X1 Carbon 7th Edition 获得正常运行的声音?

答案1

固件现在位于固件软签名包裹:

apt install firmware-sof-signed

答案2

请注意,这适用于:

lspci -nn | grep -i audio
Audio device [0403]: Intel Corporation Device [8086:02c8]

然后您需要启用它并设置配置文件,如下所示。

pacmd set-card-profile alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic HiFi

答案3

您可能使用的是不稳定的 Debian。最近版本的 Linux 内核(5.5 及更高版本)已调整声音驱动程序,使其需要固件,而以前不需要,这是一个错误。然而,Debian还没有打包固件并且已知固件包落后。从 Ubuntu 的软件包中提取固件不起作用,因为它的 ABI 与 Debian 内核不匹配,无论如何加载都会导致挂起。

您需要降级到 Linux 5.4,说服 Debian 开发人员修复这两个错误之一,向 Linux 发送补丁以使驱动程序在缺少固件时不会失败,或者使用备用声卡(例如,通过 Thunderbolt 基座)。

答案4

我今天使用此配置遇到了同样的问题:

主持人:外星人 m15 R6
操作系统:流行!_OS 20.04 LTS x86_64
核心:5.13.0-39-通用
中央处理器:第 11 代英特尔 i7-11800H

$ lspci | grep -i audio
00:1f.3 Multimedia audio controller: Intel Corporation Device 43c8 (rev 11)
01:00.1 Audio device: NVIDIA Corporation Device 228e (rev a1)

内核日志

...
kernel: [    5.160734] sof-audio-pci-intel-tgl 0000:00:1f.3: error: request firmware intel/sof/sof-tgl-h.ri failed err: -2
kernel: [    5.160735] sof-audio-pci-intel-tgl 0000:00:1f.3: you may need to download the firmware from https://github.com/thesofproject/sof-bin/
kernel: [    5.160736] sof-audio-pci-intel-tgl 0000:00:1f.3: error: failed to load DSP firmware: -2
kernel: [    5.160944] sof-audio-pci-intel-tgl 0000:00:1f.3: error: sof_probe_work failed err: -2
...

不像芬·奥鲁普·尼尔森对于我的情况,我下载了存储库https://github.com/thesofproject/sof-bin/

$ git clone https://github.com/thesofproject/sof-bin/

警告

就我而言,我缺少的是 sof-tgl-h.ri 固件,这就是我复制 v1.7 文件夹的原因。

我将所有驱动程序安装在正确的文件夹中:

$ cd https://github.com/thesofproject/sof-bin/
$ cd thesofproject

# I created the following folders because they did not exist in my installation

$ sudo mkdir /lib/firmware/intel/sof
$ sudo mkdir /lib/firmware/intel/sof-tplg

# I copied the contents of the following folders into the folders I just created

$ sudo cp v1.7.x/sof-tplg-v1.7/* /lib/firmware/intel/sof-tplg/
$ sudo cp -r v1.7.x/sof-tplg-v1.7/* /lib/firmware/intel/sof-tplg/

现在重启后一切正常!

内核日志

...
kernel: [    5.060963] sof-audio-pci-intel-tgl 0000:00:1f.3: DMICs detected in NHLT tables: 2
kernel: [    5.061830] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 1:7:0-47d07
kernel: [    5.061831] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:18:1 Kernel ABI 3:18:0
kernel: [    5.061834] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
kernel: [    5.143748] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 1:7:0-47d07
kernel: [    5.143756] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:18:1 Kernel ABI 3:18:0
kernel: [    5.148469] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:18:1 Kernel ABI 3:18:0
...

相关内容