Skip to content

Lenovo Yoga 7 15ILL9 #1480

Open
Open
@cpaluszek

Description

@cpaluszek

Hello!

I've recently installed NixOS on this device and managed to get audio working properly.
I'm new to NixOS but would like to contribute my findings.

Hardware details:

  • CPU: Intel Core Ultra 7 - Lunar Lake architecture
  • Laptop Model: Lenovo Yoga 7 15ILL9
  • Audio codec: Intel Corporation Lunar Lake-M HD Audio Controller

With kernel 6.14.6 and UEFI (also misnamed BIOS) version NYCN67WW.

References:

Current configuration:

{ lib, pkgs, unstablePkgs, ... }:

let
  # Custom package for alsa-ucm-conf 1.2.14
  # Can be removed when 1.2.14 gets included in nixpkgs
  alsa-ucm-conf-latest = pkgs.alsa-ucm-conf.overrideAttrs (oldAttrs: {
    version = "1.2.14";
    src = pkgs.fetchurl {
      url = "mirror://alsa/lib/alsa-ucm-conf-1.2.14.tar.bz2";
      hash = "sha256-MumAn1ktkrl4qhAy41KTwzuNDx7Edfk3Aiw+6aMGnCE=";
    };
  });
in
{
  boot.kernelPackages = pkgs.linuxPackages_latest;

  hardware.pulseaudio.enable = false;
  security.rtkit.enable = true;

  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    jack.enable = true;
    wireplumber.enable = true;
  };

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

  environment.systemPackages = with pkgs; [
    pavucontrol
    alsa-ucm-conf-latest
  ];

  environment = {
    sessionVariables.ALSA_CONFIG_UCM2 = "${alsa-ucm-conf-latest}/share/alsa/ucm2";
  };
}

Questions:
Which part of this configurations should be included in the hardware profile for this laptop? I understand hardware profiles should use lib.mkDefault for most settings - which ones are appropriate here?

The ALSA_CONFIG_UCM2 environment variable is crucial for the audio to work. Is setting this via environment.sessionVariables the preferred approach in hardware profiles?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions