Hi, so I got a new Lenovo Legion Pro 7 16iax10h a while back and I’m currently dualbooting NixOS and Windows 11 on it.
I’ve noticed that the audio on NixOS is a lot poorer in quality compared to Windows, but I can’t really figure out what to do.
Currently I have a pretty basic NixOS Config, with not much going on, beyond enabling NixOS hardware options: https://github.com/grobo-chan/nixos-config
Does anyone have any suggestions on what to do to fix this?
If yes, please help, thanks!
Oh yea I should also put the lscpi -k output as well here
00:00.0 Host bridge: Intel Corporation Arrow Lake-HX 8p+16e cores Host Bridge (rev 01)
Subsystem: Lenovo Device 3d6c
00:01.0 PCI bridge: Intel Corporation Meteor Lake-H PCIe Root Port #12 (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: pcieport
00:02.0 VGA compatible controller: Intel Corporation Arrow Lake-S [Intel Graphics] (rev 06)
Subsystem: Lenovo Device 800e
Kernel driver in use: i915
Kernel modules: i915, xe
00:04.0 Signal processing controller: Intel Corporation Device ad03 (rev 01)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: proc_thermal_pci
Kernel modules: processor_thermal_device_pci
00:06.0 PCI bridge: Intel Corporation Arrow Lake-HX PCIe Root Port #13 (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: pcieport
00:07.0 PCI bridge: Intel Corporation Meteor Lake-P Thunderbolt 4 PCI Express Root Port #0 (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: pcieport
00:0a.0 Signal processing controller: Intel Corporation Arrow Lake-HX Crash Log & Telemetry (rev 01)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: intel_vsec
Kernel modules: intel_vsec
00:0b.0 Processing accelerators: Intel Corporation Arrow Lake NPU (rev 01)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: intel_vpu
Kernel modules: intel_vpu
00:0d.0 USB controller: Intel Corporation Meteor Lake-P Thunderbolt 4 USB Controller (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
00:0d.2 USB controller: Intel Corporation Meteor Lake-P Thunderbolt 4 NHI #0 (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: thunderbolt
Kernel modules: thunderbolt
00:14.0 RAM memory: Intel Corporation Arrow Lake-HX Shared SRAM (SOC-S) (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: intel_pmc_ssram_telemetry
Kernel modules: intel_pmc_ssram_telemetry
00:1f.0 ISA bridge: Intel Corporation Arrow Lake-HX Direct eSPI Controller (rev 10)
Subsystem: Lenovo Device 3d6c
00:1f.5 Serial bus controller: Intel Corporation Arrow Lake-HX SPI (flash) Controller (rev 10)
Subsystem: Lenovo Device 3d6c
01:00.0 Non-Volatile memory controller: SK hynix PVC10 NVMe Solid State Drive (DRAM-less)
Subsystem: SK hynix PVC10 NVMe Solid State Drive (DRAM-less)
Kernel driver in use: nvme
Kernel modules: nvme
02:00.0 VGA compatible controller: NVIDIA Corporation GB205M [GeForce RTX 5070 Ti Mobile] (rev a1)
Subsystem: Lenovo Device 800e
Kernel driver in use: nvidia
Kernel modules: nvidiafb, nouveau, nova_core, nvidia_drm, nvidia
02:00.1 Audio device: NVIDIA Corporation GB205 High Definition Audio Controller (rev a1)
Subsystem: NVIDIA Corporation Device 0000
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
80:14.0 USB controller: Intel Corporation 800 Series PCH USB 3.1 xHCI HC (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci
80:14.5 Non-VGA unclassified device: Intel Corporation Device 7f2f (rev 10)
Subsystem: Lenovo Device 3d6c
80:15.0 Serial bus controller: Intel Corporation 800 Series PCH I2C Controller #0 (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
80:15.1 Serial bus controller: Intel Corporation Device 7f4d (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
80:15.2 Serial bus controller: Intel Corporation Device 7f4e (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
80:16.0 Communication controller: Intel Corporation 800 Series PCH HECI #1 (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: mei_me
Kernel modules: mei_me
80:19.0 Serial bus controller: Intel Corporation 800 Series PCH I2C Controller #4 (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
80:19.1 Serial bus controller: Intel Corporation 800 Series PCH I2C Controller #5 (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: intel-lpss
Kernel modules: intel_lpss_pci
80:1c.0 PCI bridge: Intel Corporation 800 Series PCH PCIe Root Port #7 (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: pcieport
80:1c.7 PCI bridge: Intel Corporation Device 7f3f (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: pcieport
80:1d.0 PCI bridge: Intel Corporation 800 Series PCH PCIe Root Port #13 (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: pcieport
80:1f.0 ISA bridge: Intel Corporation HM870 Chipset LPC/eSPI Controller (rev 10)
Subsystem: Lenovo Device 3d6c
80:1f.3 Audio device: Intel Corporation 800 Series ACE (Audio Context Engine) (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: snd_hda_intel
Kernel modules: snd_sof_pci_intel_mtl, snd_hda_intel
80:1f.4 SMBus: Intel Corporation 800 Series PCH SMBus Controller (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801
80:1f.5 Serial bus controller: Intel Corporation 800 Series PCH SPI (flash) Controller (rev 10)
Subsystem: Lenovo Device 3d6c
Kernel driver in use: intel-spi
Kernel modules: spi_intel_pci
81:00.0 Ethernet controller: Intel Corporation Ethernet Controller I226-V (rev 04)
Subsystem: Lenovo Device 3801
Kernel driver in use: igc
Kernel modules: igc
82:00.0 Network controller: MEDIATEK Corp. MT7927 802.11be 320MHz 2x2 PCIe Wireless Network Adapter [Filogic 380]
Subsystem: Lenovo Device e0e4
83:00.0 Non-Volatile memory controller: SK hynix PVC10 NVMe Solid State Drive (DRAM-less)
Subsystem: SK hynix PVC10 NVMe Solid State Drive (DRAM-less)
Kernel driver in use: nvme
Kernel modules: nvme
hey first of all try your sound in ubuntu live iso boot from it and try playing the same stuff there that way we can know whether this is nixos-specific 
Just tried audio on a Ubuntu 25.10 Live USB
It also had poor audio quality
Definitely not nixos-specific, more of a linux thing in general
1 Like
So I eventually ended up finding this GitHub Repository
https://github.com/nadimkobeissi/16iax10h-linux-sound-saga
But I have no idea how to implement all that in a “nix” way @.@;
1 Like
took another look at it today and i got the first few steps done by adding this to hardware-configuration.nix
hardware.firmware = [
(pkgs.runCommand “legion-audio-patch” {
src = ./aw88399_acf.bin;
} ‘’
mkdir -p $out/lib/firmware
cp -f $src $out/lib/firmware/aw88399_acf.bin
‘’)
];
boot.kernelPatches = [
{
name = “16iax10h-audio-linux-6.18”;
patch = ./16iax10h-audio-linux-6.18.patch;
structuredExtraConfig = with lib.kernel; {
SND_HDA_SCODEC_AW88399 = module;
SND_HDA_SCODEC_AW88399_I2C = module;
SND_SOC_AW88399 = module;
SND_SOC_SOF_INTEL_TOPLEVEL = yes;
SND_SOC_SOF_INTEL_COMMON = module;
SND_SOC_SOF_INTEL_MTL = module;
SND_SOC_SOF_INTEL_LNL = module;
};
}
];
audio is a LOT better but the controls are a bit wonky
0 is mute and 10-100 all sounds the same
can’t really figure out how to patch the alsa config and install nvidia dkms drivers though, which atleast according to the repo should fix it