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 -loutput)
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
- Rebooted multiple times after enabling the firmware and PipeWire.
- 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.
- Checked
pw-top: PipeWire seems to be running and shows nodes, but no sound is produced. - Checked volume levels in
pavucontrolandalsamixer– everything is unmuted and volume is up. - Tried switching to
hardware.pulseaudio.enable = true(with PipeWire disabled) – same result, no sound. - Used
wpctl statusand found a critical clue: The built-in speakers are shown asMUTEDwith volume0.00. - Tried unmuting with wpctl: Running
wpctl set-mute 54 0andwpctl set-volume 54 1.0has 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
alsamixerandpavucontrol - 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:
- 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? - Are there any kernel parameters, boot options, or UCM configuration overrides needed for this specific laptop model?
- 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!