No sound on Huawei Matebook D14 2021 with NixOS 25.05 and sof-firmware (Speakers shown as MUTED in wpctl)

Hello everyone,

I’m having trouble getting sound to work on my laptop after a fresh install of NixOS 25.05. I’ve tried the common solutions but haven’t had any success.

1. System Information

  • Laptop Model: Huawei Matebook D14 (2021)
  • NixOS Version: 25.05 (stable)
  • Kernel Version: 6.17.5
  • Audio Controller: Intel Tiger Lake-LP Smart Sound Technology Audio Controller
  • Audio Codec: ES8336 (from aplay -l output)

2. Sound Configuration

Here is the relevant part of my /etc/nixos/configuration.nix :

nix

Enable sound with pipewire.

services.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;

I have also added the user to the audio group.

3. What I’ve Tried

  1. Rebooted multiple times after enabling the firmware and PipeWire.
  2. Checked if modules are loaded:

bash

lsmod | grep snd

  • The output shows snd_sof_pci_intel_tgl , snd_sof_intel_hda_common , and other related modules, which seems correct.
  • Checked audio devices:
  • aplay -l :

text

card 0: sofessx8336 [sof-essx8336], device 0: ES8336 () [] card 0: sofessx8336 [sof-essx8336], device 5: HDMI 1 () card 0: sofessx8336 [sof-essx8336], device 6: HDMI 2 () [] card 0: sofessx8336 [sof-essx8336], device 7: HDMI 3 ()

    • The sound cards are detected.
  1. Checked pw-top : PipeWire seems to be running and shows nodes, but no sound is produced.
  2. Checked volume levels in pavucontrol and alsamixer – everything is unmuted and volume is up.
  3. Tried switching to hardware.pulseaudio.enable = true (with PipeWire disabled) – same result, no sound.
  4. Used wpctl status and found a critical clue: The built-in speakers are shown as MUTED with volume 0.00 .
  5. Tried unmuting with wpctl: Running wpctl set-mute 54 0 and wpctl set-volume 54 1.0 has no effect - the speakers remain shown as muted.

4. Diagnostic Outputs

Please find the outputs of the following commands below:

  • lspci -v | grep -i audio (to identify the sound card):

text

00:1f.3 Multimedia audio controller: Intel Corporation Tiger Lake-LP Smart Sound Technology Audio Controller (rev 20) Kernel driver in use: sof-audio-pci-intel-tgl

dmesg | grep sof (to check for firmware-related errors):

text

[ 3.327908] sof-audio-pci-intel-tgl 0000:00:1f.3: enabling device (0000 → 0002) [ 3.328064] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100 [ 3.335485] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [i915]) [ 3.342574] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode [ 3.355688] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 4 … [logs show successful firmware load and topology application] … [ 3.584808] input: sof-essx8336 Headset as /devices/pci0000:00/0000:00:1f.3/sof-essx8336/sound/card0/input12

wpctl status (to check PipeWire’s view of the system):

text

Audio ├─ Devices: │ 47. Tiger Lake-LP Smart Sound Technology Audio Controller [alsa] │ ├─ Sinks: │ 51. Tiger Lake-LP Smart Sound Technology Audio Controller HDMI / DisplayPort 3 Output [vol: 1.00] │ 52. Tiger Lake-LP Smart Sound Technology Audio Controller HDMI / DisplayPort 2 Output [vol: 1.00] │ 53. Tiger Lake-LP Smart Sound Technology Audio Controller HDMI / DisplayPort 1 Output [vol: 1.00] │ 54. Tiger Lake-LP Smart Sound Technology Audio Controller Speakers [vol: 0.00 MUTED] <— PROBLEM │ ├─ Sources: │ 55. Tiger Lake-LP Smart Sound Technology Audio Controller Digital Microphone [vol: 1.00] │ 56. Tiger Lake-LP Smart Sound Technology Audio Controller Headset Microphone [vol: 1.00]

5. The Problem & Specific Question

The system detects the sound card, loads the correct kernel modules (sof-audio-pci-intel-tgl ), firmware loads without major errors, and PipeWire is running. The audio stack recognizes my ES8336 codec and creates the appropriate sinks.

The core issue is that the built-in speakers (Sink ID 54) are persistently shown as MUTED with 0 volume in wpctl status . This mute state persists even after:

  • Unmuting in alsamixer and pavucontrol
  • Attempting to unmute via wpctl set-mute 54 0
  • Setting volume via wpctl set-volume 54 1.0
  • Switching between PipeWire and PulseAudio

This suggests a low-level/hardware mute flag that the audio stack cannot override.

My specific questions:

  1. Is there a known issue with the SOF driver or the topology file (sof-tgl-es8336-dmic2ch-ssp0.tplg ) for Huawei Matebook D14 with ES8336 codec that causes speakers to be hard-muted?
  2. Are there any kernel parameters, boot options, or UCM configuration overrides needed for this specific laptop model?
  3. Could this be a missing firmware blob or incorrect pin configuration that needs to be patched?

Any guidance on further diagnostics or potential fixes would be greatly appreciated. Thank you for your time and help!