No more sound on laptop after upgrade (TUXEDO InfinityBook Pro 16 - Gen7)

Hello dear NixOs community.

If I’m opening this, its because I have been trying for many hours now how to fix my sound on my work laptop. It’s a real problem for me since I need to work remotely with others. After some recent nixos-rebuild switch I realised I had no sound any more. No input or output.

I have read dozens of pages from NixOs Discourse, GitHub issues and other related topics like Sound not working, pulseaudio - Fixing No Sound (Dummy Output) Issue in Ubuntu 24.04 - Ask Ubuntu, PipeWire - NixOS Wiki, Audio system not working after an system upgrade on my thinkpad x1yoga gen5 · Issue #330685 · NixOS/nixpkgs · GitHub

The strange thing is that I do not have sound either from a USB-booted NixOs, or from my dual-booted Ubuntu.

I tried many rebuilds with for instance the boot.extraModprobeConfig ='' options snd-hda-intel dmic_detect=0 ''; trick. Nothing worked. I tried regenerating the hardware-configuration.nix with nixos-generate-config, I tried kernels 6_1, 6_11 and current kernel 6.6.51… without success.

So I guess it’s time to summon the community for any ideas. Here are some logs that you might find useful. My config can be found here: GitHub - 0nyr/nixos-config: My NixOS configuration.

Many logs:

 ❮onyr ★ nixos❯ ❮~❯❯ cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0x622d188000 irq 185
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0x84080000 irq 17
 ❮onyr ★ nixos❯ ❮~❯❯ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
 ❮onyr ★ nixos❯ ❮~❯❯ arecord -l
**** List of CAPTURE Hardware Devices ****
 ❮onyr ★ nixos❯ ❮~❯❯ lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] (rev 0c)
01:00.0 VGA compatible controller: NVIDIA Corporation GA104 [Geforce RTX 3070 Ti Laptop GPU] (rev a1)
 ❮onyr ★ nixos❯ ❮~❯❯ sudo lshw -c multimedia
[sudo] password for onyr: 
  *-multimedia              
       description: NVidia
       physical id: 0.1
       bus info: pci@0000:01:00.1
       logical name: card1
       logical name: /dev/snd/controlC1
       logical name: /dev/snd/hwC1D0
       logical name: /dev/snd/pcmC1D3p
       logical name: /dev/snd/pcmC1D7p
       logical name: /dev/snd/pcmC1D8p
       logical name: /dev/snd/pcmC1D9p
       version: a1
       width: 32 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list
       configuration: driver=snd_hda_intel latency=0
       resources: irq:17 memory:84080000-84083fff
  *-usb:2
       description: Video
       product: FHD Webcam
       vendor: SunplusIT Inc
       physical id: 6
       bus info: usb@1:6
       version: 0.10
       serial: 01.00.00
       capabilities: usb-2.01
       configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s
  *-multimedia
       description: PCH
       physical id: 1f.3
       bus info: pci@0000:00:1f.3
       logical name: card0
       logical name: /dev/snd/controlC0
       logical name: /dev/snd/hwC0D2
       logical name: /dev/snd/pcmC0D3p
       logical name: /dev/snd/pcmC0D7p
       logical name: /dev/snd/pcmC0D8p
       logical name: /dev/snd/pcmC0D9p
       version: 01
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi bus_master cap_list
       configuration: driver=snd_hda_intel latency=32
       resources: iomemory:620-61f iomemory:620-61f irq:185 memory:622d188000-622d18bfff memory:622d000000-622d0fffff
 ❮onyr ★ nixos❯ ❮~❯❯ uname -r
6.6.51
 ❮onyr ★ nixos❯ ❮~❯❯ cat /proc/cmdline
BOOT_IMAGE=(hd0,gpt1)//kernels/gsrnz8jasryy68bdbc4zkp5y4r1yp80x-linux-6.6.51-bzImage init=/nix/store/cddqa8xqh8an8pjq64p3a5wmbarpg471-nixos-system-nixos-24.11.20240916.99dc878/init loglevel=4

Maybe my laptop just has broken sound, on both speakers and output jack… It seems unlikely. How could I check that ?

Any help appreciated. Have a great day.

My first instinct here - have you tried rolling back your configuration to one that had sound working? And if so, was the sound working on it?

I just had this too, or at least similar. Updated my os, and my speakers broke. Mic and headphones still works.

Weirdly, the output is also still broken when I boot up an older config with an older kernel (6.10.3).

I tried the following kernels: 6.6.51, 6.10.10, and 6.10.3. So far no luck, even though I’m pretty sure it worked on 6.10.3 yesterday, so on my end it might actually be a hardware issue.

In the logs (journalctl -b) I get:

Sep 18 09:40:57 lggram kernel: ACPI Error: No handler for Region [XIN1] (0000000004e75a2f) [UserDefinedRegion] (20240322/evregion-126)
Sep 18 09:40:57 lggram kernel: ACPI Error: Region UserDefinedRegion (ID=143) has no handler (20240322/exfldio-261)
Sep 18 09:40:57 lggram kernel: ACPI Error: Aborting method \_SB.PC00.LPCB.LGEC.SEN1._TMP due to previous error (AE_NOT_EXIST) (20240322/psparse-529)
Sep 18 09:40:57 lggram kernel: ACPI Error: No handler for Region [XIN1] (0000000004e75a2f) [UserDefinedRegion] (20240322/evregion-126)
Sep 18 09:40:57 lggram kernel: ACPI Error: Region UserDefinedRegion (ID=143) has no handler (20240322/exfldio-261)
Sep 18 09:40:57 lggram kernel: ACPI Error: Aborting method \_SB.PC00.LPCB.LGEC.SEN2._TMP due to previous error (AE_NOT_EXIST) (20240322/psparse-529)
1 Like

Ok weirder and weird, I changed nothing (just reading online and restarted trying out different configs), and now the speakers are being detected again and working… So maybe it was a hardware thing that’ll prop up again later? I have no clue tbh. The error logs I posted above also no longer show in the latest boot.

Edit: Just remembered, I also tried running sudo rmmod int3403_thermal as suggested here Reddit - Dive into anything , but that didn’t work, at least not after a single reboot. But maybe it only took effect after a few reboots? Who knows.

Edit 2: Seems like int3403_thermal is still there:

❯ lsmod | grep int3403_thermal
int3403_thermal        16384  0
int340x_thermal_zone    16384  2 int3403_thermal,processor_thermal_device

So not sure what’s going on, nor what this means. But hopefully it can give someone some hints in the right direction?

1 Like

Unfortunatly I nix-collect-garbage -d before I had the idea to do that… pretty dumb for sure… So I updated my NixOs on my Desktop, and sound works flawlessly.

EDIT 1

I also did another experiment today. I have a microphone which also has a sound card. When plugged in my laptop, and routing the sound to it with pavucontrol, it works. I have input and output for sound…

So it seems that the issue is with the integrated soundcards in the laptop, and that maybe a key driver is missing or not working.

Here you can see the additional USB-plugged soundcard USB-Audio - Razer Seiren X:

 ❮onyr ★ nixos❯ ❮~❯❯ cat /proc/asound/cards
 0 [X              ]: USB-Audio - Razer Seiren X
                      Razer Inc Razer Seiren X at usb-0000:00:14.0-1, full speed
 1 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0x622d188000 irq 169
 2 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0x84080000 irq 17

EDIT 2

I made another attempt adding "snd_hda_intel" driver to the linux kernel. When I do that, I get no audio card detected and instead get the error in dmesg:

[    2.654760] snd_hda_intel 0000:00:1f.3: Cannot probe codecs, giving up
[    2.647210] snd_hda_intel 0000:01:00.1: Cannot probe codecs, giving up

EDIT 3

I discovered a handy tool: hw-probe: nix-shell -p hw-probe and sudo -E hw-probe -all -upload. It gives the following output showing all hardware and drivers I have so far: HW probe of TUXEDO InfinityBook Pro Gen... #a3f44fecb0

This is likely [24.05] zfs.latestCompatibleLinuxPackages selects linux-libre; unable to load proprietary firmware · Issue #341867 · NixOS/nixpkgs · GitHub

Thanks for the reply. After thorough read, I’m not really sure about that. I do not have ZFS (but ext4), and I’m not sure to know how to detect a problem of loading proprietary firmwares… Maybe you are right, in which case as you mention, your fix will end up in unstable soon. Thanks anyways :slight_smile:

I will continue to investigate the problem and let you know if I even find a fix.

1 Like

If you’ve never used ZFS and didn’t set a libre kernel yourself, this is not your issue.

1 Like

Actually I just talked today with a friend on another distro and he also had the exact same problem at the exact same time. We are now convinced that the problem is with the recent kernel update and that it is not NixOs fault. It’s related to intel CPUs on laptop and interaction between kernel and firmware.

How could I discuss that with someone knowledgeable with linux kernel update ?

1 Like

The only people really knowledgable here are those on the kernel development mailing lists but I don’t know which one you’d contact with your hardware.

The kernel people will likely ask you to bisect, so you should first figure out which kernel update caused this.

Apparently the bug has already been identified by the kernel team and a fix is already on its way.

https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.10.11

commit 87d3436e4c27286bba6e39637b47725e0343af93
Author: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Date:   Mon Sep 9 18:47:46 2024 +0200

    soundwire: stream: Revert "soundwire: stream: fix programming slave ports for non-continous port maps"
    
    commit 233a95fd574fde1c375c486540a90304a2d2d49f upstream.
    
    This reverts commit ab8d66d132bc8f1992d3eb6cab8d32dda6733c84 because it
    breaks codecs using non-continuous masks in source and sink ports.  The
    commit missed the point that port numbers are not used as indices for
    iterating over prop.sink_ports or prop.source_ports.
    
    Soundwire core and existing codecs expect that the array passed as
    prop.sink_ports and prop.source_ports is continuous.  The port mask still
    might be non-continuous, but that's unrelated.
    
    Reported-by: Bard Liao <yung-chuan.liao@linux.intel.com>
    Closes: https://lore.kernel.org/all/b6c75eee-761d-44c8-8413-2a5b34ee2f98@linux.intel.com/
    Fixes: ab8d66d132bc ("soundwire: stream: fix programming slave ports for non-continous port maps")
    Acked-by: Bard Liao <yung-chuan.liao@linux.intel.com>
    Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Tested-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
    Link: https://lore.kernel.org/r/20240909164746.136629-1-krzysztof.kozlowski@linaro.org
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Harry ten Berge
spockfish
7h

6.10.11 has been released and contains the fix!

The Fedora packaging team is already working on it. As soon as it can be tested (I expect within a few hours) I’ll do a quick check.

How can I load kernel 6.10.11 on NixOs ? I know I can use boot.kernelPackages = pkgs.linuxKernel.packages.linux_6_10 to have 6.10 but how to specify I precisely want the 6.10.11 version ?

1 Like

You need to either wait for it to be updated in upstream Nixpkgs, override its source to be 6.10.11 or have the patch applied.

linux_6_10 was already updated to 6.10.11 though, so all you need to do is wait for that change to propagate to your channel: Kernel updates for 2024-09-18 by K900 · Pull Request #342859 · NixOS/nixpkgs · GitHub.