No speaker sound on Dell 9730 (Xps17)

i’m new to nixos and installed it from the graphical iso (nixos-23.05) on a new Dell 9730 (Xps17). Unfortunately i dont get the sound to work.

Current state

lspci -v

00:1f.3 Multimedia audio controller: Intel Corporation Device 51ca (rev 01)
        Subsystem: Dell Device 0bda
        Flags: bus master, fast devsel, latency 64, IRQ 206, IOMMU group 18
        Memory at 628d1e0000 (64-bit, non-prefetchable) [size=16K]
        Memory at 628d000000 (64-bit, non-prefetchable) [size=1M]
        Capabilities: <access denied>
        Kernel driver in use: sof-audio-pci-intel-tgl
        Kernel modules: snd_hda_intel, snd_sof_pci_intel_tgl

dmesg | grep -i audio

[   33.564445] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   33.564459] sof-audio-pci-intel-tgl 0000:00:1f.3: SoundWire enabled on CannonLake+ platform, using SOF driver
[   33.564469] sof-audio-pci-intel-tgl 0000:00:1f.3: enabling device (0000 -> 0002)
[   33.564693] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[   34.885042] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[   34.953270] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode
[   34.967790] sof-audio-pci-intel-tgl 0000:00:1f.3: No SoundWire machine driver found
[   34.967793] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 4
[   34.967794] sof-audio-pci-intel-tgl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[   34.967796] sof-audio-pci-intel-tgl 0000:00:1f.3: DMICs detected in NHLT tables: 0
[   34.980495] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[   34.980497] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
[   34.980501] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
[   35.091510] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[   35.091515] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
[   35.099484] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0

/etc/nixos/configuration.nix

hardware.firmware = with pkgs; [
  sof-firmware
  alsa-firmware
];

hardware.enableAllFirmware = true;
nixpkgs.config.allowUnfree = true;

# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
  enable = true;
  alsa.enable = true;
  alsa.support32Bit = true;
  pulse.enable = true;
};

environment.systemPackages = with pkgs; [
  sof-firmware
  alsa-firmware 
  alsa-topology-conf
  alsa-ucm-conf
  alsa-utils
];

pactl list cards

Card #46
        Name: alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic
        Driver: alsa
        Owner Module: n/a
        Properties:
                api.acp.auto-port = "false"
                api.acp.auto-profile = "false"
                api.alsa.card = "0"
                api.alsa.card.longname = "DellInc.-XPS179730--0MW4M4"
                api.alsa.card.name = "sof-hda-dsp"
                api.alsa.path = "hw:0"
                api.alsa.use-acp = "true"
                api.dbus.ReserveDevice1 = "Audio0"
                device.api = "alsa"
                device.bus = "pci"
                device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic"
                device.description = "sof-hda-dsp"
                device.enum.api = "udev"
                device.icon_name = "audio-card-analog-pci"
                device.name = "alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic"
                device.nick = "sof-hda-dsp"
                device.plugged.usec = "35123807"
                device.product.id = "0x51ca"
                device.subsystem = "sound"
                sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0"
                device.vendor.id = "0x8086"
                device.vendor.name = "Intel Corporation"
                media.class = "Audio/Device"
                factory.id = "14"
                client.id = "34"
                object.id = "46"
                object.serial = "46"
                object.path = "alsa:pcm:0"
                alsa.card = "0"
                alsa.card_name = "sof-hda-dsp"
                alsa.long_card_name = "DellInc.-XPS179730--0MW4M4"
                alsa.driver_name = "snd_soc_skl_hda_dsp"
                device.string = "0"
        Profiles:
                off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
                pro-audio: Pro Audio (sinks: 3, sources: 0, priority: 1, available: yes)
        Active Profile: pro-audio

aplay -lL

null
    Discard all samples (playback) or generate zero samples (capture)
pipewire
    PipeWire Sound Server
default
    Default ALSA Output (currently PipeWire Media Server)
**** List of PLAYBACK Hardware Devices ****
card 0: sofhdadsp [sof-hda-dsp], device 1: HDMI1 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 2: HDMI2 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofhdadsp [sof-hda-dsp], device 3: HDMI3 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

KDE sound menu view

What i’ve tried

  • switching to nixos-unstable
  • trying different modprobeConfig according to other posts in this forum
  • adding alsa & sof packages (not sure if i need them)
  • i’ve booted into Ubuntu live image (22.04.2 LTS, kernel 5.19.), output of lspci was the same… there, i had sound

I would love to switch to nixos. I appreciate every help. Thanks in advance.

1 Like

Apologies for bumping the old post; however, this is one of the first threads I found when trying to solve this issue. I just tried A LOT of different options, and the thing that finally fixed it was updating my kernel to the latest (currently 6.8.9). This was done with boot.kernelPackages = pkgs.linuxPackages_latest; on nixos-23.11 running Gnome.

This is a new install, and all of the other sound/alsa/pipewire settings are set to the out-of-the-box configuration.nix values.

Hopefully this helps save others a few hours of effort tracking this down in the future :slight_smile:

2 Likes