You are not logged in.
Hello!
I've been experiencing problems with my laptop (Huawei Matebook D14) audio because the soundcard is not detected. After some investigation, I've managed to make some progress, but I haven't solved the problem completely (my soundcard is still not detected).
First of all, here are the versions of some relevant packages:
pacman -Q linux sof-firmware alsa-ucm-conf
linux 6.17.7.arch1-1
sof-firmware 2025.05.1-1
alsa-ucm-conf 1.2.14-2And here is my laptop's audio device information:
lspci -v | grep -A7 -i "Audio"
00:1f.3 Multimedia audio controller: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller (rev 30)
Subsystem: QUANTA Computer Inc Device 1371
Flags: bus master, fast devsel, latency 32, IRQ 16
Memory at 6001120000 (64-bit, non-prefetchable) [size=16K]
Memory at 6001000000 (64-bit, non-prefetchable) [size=1M]
Capabilities: <access denied>
Kernel driver in use: sof-audio-pci-intel-tgl
Kernel modules: snd_soc_avs, snd_sof_pci_intel_tgl, snd_hda_intelTo solve the issue, I've tried different paths:
First, I tried using legacy drivers (`/etc/modprobe.d/audio.conf: options snd-intel-dspcfg dsp_driver=1`). This solved the soundcard detection issue and my speakers work, but the microphone breaks. I've tried a lot of things to get the mic working with this method but eventually gave up. (This is how I've been using my laptop for 2 years hahaha)
Today, I tried to fix the actual problem using the SOF firmware. Here is the `dmesg` output:
sudo dmesg | grep -iE "sof-audio"
[ 4.411632] sof-audio-pci-intel-tgl 0000:00:1f.3: enabling device (0000 -> 0002)
[ 4.411791] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[ 4.411828] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
[ 4.418203] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode
[ 4.440422] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 5
[ 4.440427] sof-audio-pci-intel-tgl 0000:00:1f.3: BT link detected in NHLT tables: 0x0
[ 4.440429] sof-audio-pci-intel-tgl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[ 4.442223] sof-audio-pci-intel-tgl 0000:00:1f.3: ipc type mismatch between intel/sof/sof-tgl.ri and expected: 1 vs 0
[ 4.442235] sof-audio-pci-intel-tgl 0000:00:1f.3: SOF firmware and/or topology file not found.
[ 4.442236] sof-audio-pci-intel-tgl 0000:00:1f.3: Supported default profiles
[ 4.442237] sof-audio-pci-intel-tgl 0000:00:1f.3: - ipc type 0 (Requested):
[ 4.442238] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware file: intel/sof/sof-tgl.ri
[ 4.442239] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology file: intel/sof-tplg/sof-tgl-es8336-dmic2ch.tplg
[ 4.442239] sof-audio-pci-intel-tgl 0000:00:1f.3: Check if you have 'sof-firmware' package installed.
[ 4.442240] sof-audio-pci-intel-tgl 0000:00:1f.3: Optionally it can be manually downloaded from:
[ 4.442241] sof-audio-pci-intel-tgl 0000:00:1f.3: https://github.com/thesofproject/sof-bin/
[ 4.442501] sof-audio-pci-intel-tgl 0000:00:1f.3: error: sof_probe_work failed err: -22It seems the `sof-firmware` package does not ship the exact files my device needs. I tried looking for them in the `sof-bin` repo.
I could not find `sof-tgl-es8336-dmic2ch.tplg`; however, I found `sof-tgl-es8336-dmic2ch-ssp0.tplg` (which is shipped with the package) and duplicated it, renaming it to what SOF expects (I ran `sudo cp /usr/lib/firmware/intel/sof-tplg/sof-tgl-es8336-dmic2ch-ssp0.tplg /usr/lib/firmware/intel/sof-tplg/sof-tgl-es8336-dmic2ch.tplg`). That seemed to work (as far as I know).
For the `sof-tgl.ri`, I used the one in `sof-v2.6.1/tgl/intel-signed/sof-tgl.ri` (and a couple more, chosen at random honestly). After doing that, the error changed to this:
sudo dmesg | grep -iE "sof-audio"
[ 4.186480] sof-audio-pci-intel-tgl 0000:00:1f.3: snd_intel_dsp_find_config: no valid SSP found for HID ESSX8336, skipped
[ 4.186505] sof-audio-pci-intel-tgl 0000:00:1f.3: enabling device (0000 -> 0002)
[ 4.186658] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[ 4.186697] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
[ 4.193170] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode
[ 4.214813] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 5
[ 4.214817] sof-audio-pci-intel-tgl 0000:00:1f.3: BT link detected in NHLT tables: 0x0
[ 4.214818] sof-audio-pci-intel-tgl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[ 4.216473] sof-audio-pci-intel-tgl 0000:00:1f.3: ipc type mismatch between intel/sof/sof-tgl.ri and expected: 1 vs 0
[ 4.216486] sof-audio-pci-intel-tgl 0000:00:1f.3: SOF firmware and/or topology file not found.
[ 4.216488] sof-audio-pci-intel-tgl 0000:00:1f.3: Supported default profiles
[ 4.216489] sof-audio-pci-intel-tgl 0000:00:1f.3: - ipc type 0 (Requested):
[ 4.216490] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware file: intel/sof/sof-tgl.ri
[ 4.216491] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology file: intel/sof-tplg/sof-tgl-es8336-dmic2ch.tplg
[ 4.216492] sof-audio-pci-intel-tgl 0000:00:1f.3: Check if you have 'sof-firmware' package installed.
[ 4.216492] sof-audio-pci-intel-tgl 0000:00:1f.3: Optionally it can be manually downloaded from:
[ 4.216493] sof-audio-pci-intel-tgl 0000:00:1f.3: https://github.com/thesofproject/sof-bin/
[ 4.216786] sof-audio-pci-intel-tgl 0000:00:1f.3: error: sof_probe_work failed err: -22As far as I know, the line `ipc type mismatch between intel/sof/sof-tgl.ri and expected: 1 vs 0` tells me that I'm using a `sof-tgl.ri` for IPC 4 and I should use IPC 3 instead. So I changed the file to be `sof-v2.6.1/tgl/intel-signed/sof-tgl.ri`, which again, changed the error:
sudo dmesg | grep -iE "sof|snd|firmware|audio"
[sudo] password for mancera:
[ 0.034605] software IO TLB: area num 8.
[ 0.892936] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[ 0.892937] software IO TLB: mapped [mem 0x00000000652c1000-0x00000000692c1000] (64MB)
[ 1.406275] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/tgl_dmc_ver2_12.bin (v2.12)
[ 3.040004] systemd[1]: Clear Stale Hibernate Storage Info was skipped because of an unmet condition check (ConditionPathExists=/sys/firmware/efi/efivars/HibernateLocation-8cf2644b-4b0b-428f-9387-6d876050dc67).
[ 3.377215] faux_driver regulatory: Direct firmware load for regulatory.db failed with error -2
[ 3.483742] iwlwifi 0000:00:14.3: loaded firmware version 77.30b1cbd8.0 QuZ-a0-hr-b0-77.ucode op_mode iwlmvm
[ 3.509048] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 4.120939] Bluetooth: hci0: Minimum firmware build 1 week 10 2014
[ 4.124371] Bluetooth: hci0: Found device firmware: intel/ibt-19-0-4.sfi
[ 4.NOT_A_REAL_LOG] Bluetooth: hci0: Firmware Version: 193-33.24
[ 4.460338] sof-audio-pci-intel-tgl 0000:00:1f.3: enabling device (0000 -> 0002)
[ 4.460494] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[ 4.460531] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915])
[ 4.467355] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode
[ 4.487368] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 5
[ 4.487371] sof-audio-pci-intel-tgl 0000:00:1f.3: BT link detected in NHLT tables: 0x0
[ 4.487373] sof-audio-pci-intel-tgl 0000:00:1f.3: DMICs detected in NHLT tables: 2
[ 4.489213] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware paths/files for ipc type 0:
[ 4.489215] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware file: intel/sof/sof-tgl.ri
[ 4.489216] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology file: intel/sof-tplg/sof-tgl-es8336-dmic2ch.tplg
[ 4.489523] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:0:0-57864
[ 4.489524] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:1
[ 5.770385] Bluetooth: hci0: Waiting for firmware download to complete
[ 5.771964] Bluetooth: hci0: Firmware loaded in 1608972 usecs
[ 5.791959] Bluetooth: hci0: Firmware revision 0.4 build 193 week 33 2024
[ 7.561613] sof-audio-pci-intel-tgl 0000:00:1f.3: hda_cl_copy_fw: timeout with rom_status_reg (0x80000) read
[ 7.562053] sof-audio-pci-intel-tgl 0000:00:1f.3: ------------[ DSP dump start ]------------
[ 7.562054] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware download failed
[ 7.562055] sof-audio-pci-intel-tgl 0000:0s: fw_state: SOF_FW_BOOT_IN_PROGRESS (3)
[ 7.562066] sof-audio-pci-intel-tgl 0000:00:1f.3: 0x80000012: module: ROM, state: CSE_VALIDATE_IMAGE_REQUEST, not running
[ 7.562071] sof-audio-pci-intel-tgl 0000:00:1f.3: error code: 0x2c (error: signature verification failed)
[ 7.562082] sof-audio-pci-intel-tgl 0000:00:1f.3: extended rom status: 0x80000012 0x2c 0x0 0x0 0x0 0x0 0x25101c2 0x0
[ 7.562083] sof-audio-pci-intel-tgl 0000:00:1f.3: ------------[ DSP dump end ]------------
[ 7.562093] sof-audio-pci-intel-tgl 0000:00:1f.3: Failed to start DSP
[ 7.562094] sof-audio-pci-intel-tgl 0000:00:1f.3: error: failed to boot DSP firmware -110
[ 7.612586] sof-audio-pci-intel-tgl 0000:00:1f.3: error: hda_dsp_core_reset_enter: timeout on HDA_DSP_REG_ADSPCS read
[ 7.612591] sof-audio-pci-intel-tgl 0000:00:1f.3: error: dsp core reset failed: core_mask 1
[ 7.612808] sof-audio-pci-intel-tgl 0000:00:1f.3: error: sof_probe_work failed err: -110So, I looked up what that error means and, in theory, the `.ri` file must be signed by Intel. The "IPC 4" packages I was trying previously were inside `intel-signed/` directories (although it was by chance, because I didn't even notice it). But I cannot find a signed file that works.
Then I tried to bypass the signature check by changing settings in the BIOS (did not succeed). I also tried to force SOF to use IPC 4, but I did not succeed.
So, does anybody have any idea how I can get my speakers and mic to work at the same time?
Thank you very much!
Offline
Have you solved the problem since?
The only solution for me was to create /etc/modprobe.d/intelDSP.conf file and add:
options snd_intel_dspcfg dsp_driver=1though, mic will not work with this solution.
The missing sof-tgl.ri that you have mentioned is just a link to the intel-signed/sof-tgl.ri, seems like your sof-firmware installation missed it.
However, I don't know how to resolve the issue with missing intel/sof-tplg/sof-tgl-es8336-dmic2ch.tplg file. The only option seems like to try every quirk options possible by modifying file /etc/modprobe.d/alsa-base.conf, with an option like:
options snd_soc_sof_es8336 quirk=0x22Offline