Move Lenovo Legion configs into nixos-hardware
This commit is contained in:
parent
1fde84a001
commit
12e98d14a4
17
flake.lock
17
flake.lock
|
@ -188,6 +188,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixos-hardware-16arha7": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1712449958,
|
||||||
|
"narHash": "sha256-QDJaTsWRA42nidOWhS3hN3v9IiQW8SvEY2yPF9qbqzA=",
|
||||||
|
"owner": "8bitbuddhist",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"rev": "defa95f33bf4749ce8e3f60621ad3aeefa656229",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "8bitbuddhist",
|
||||||
|
"ref": "lenovo-legion-16ARHA7",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1682741954,
|
"lastModified": 1682741954,
|
||||||
|
@ -273,6 +289,7 @@
|
||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
|
"nixos-hardware-16arha7": "nixos-hardware-16arha7",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
|
|
||||||
# Hardware configurations
|
# Hardware configurations
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
|
nixos-hardware-16arha7.url = "github:8bitbuddhist/nixos-hardware/lenovo-legion-16ARHA7";
|
||||||
|
|
||||||
# Home-manager
|
# Home-manager
|
||||||
home-manager = {
|
home-manager = {
|
||||||
|
@ -25,7 +26,7 @@
|
||||||
# TODO: Add Disko - https://github.com/nix-community/disko
|
# TODO: Add Disko - https://github.com/nix-community/disko
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs@{ self, nixpkgs, lanzaboote, nix-flatpak, home-manager, nixos-hardware, ... }:
|
outputs = inputs@{ self, nixpkgs, lanzaboote, nix-flatpak, home-manager, nixos-hardware, nixos-hardware-16arha7, ... }:
|
||||||
let
|
let
|
||||||
inherit (self) outputs;
|
inherit (self) outputs;
|
||||||
inherit (nixpkgs) lib;
|
inherit (nixpkgs) lib;
|
||||||
|
@ -69,7 +70,6 @@
|
||||||
Haven = nixpkgs.lib.nixosSystem {
|
Haven = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = defaultModules.base ++ [
|
modules = defaultModules.base ++ [
|
||||||
nixos-hardware.nixosModules.common-cpu-amd
|
|
||||||
nixos-hardware.nixosModules.common-cpu-amd-pstate
|
nixos-hardware.nixosModules.common-cpu-amd-pstate
|
||||||
./hosts/Haven
|
./hosts/Haven
|
||||||
];
|
];
|
||||||
|
@ -86,9 +86,7 @@
|
||||||
Shura = nixpkgs.lib.nixosSystem {
|
Shura = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = defaultModules.base ++ [
|
modules = defaultModules.base ++ [
|
||||||
nixos-hardware.nixosModules.common-cpu-amd
|
nixos-hardware-16arha7.nixosModules.lenovo-legion-16arha7
|
||||||
nixos-hardware.nixosModules.common-cpu-amd-pstate
|
|
||||||
nixos-hardware.nixosModules.common-gpu-amd
|
|
||||||
./hosts/Shura
|
./hosts/Shura
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,11 +1,5 @@
|
||||||
# Lenovo Legion S7 16ARHA7 configuration
|
# Lenovo Legion S7 16ARHA7 configuration
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
let
|
|
||||||
lenovo-speaker-fix-module = pkgs.callPackage ./patches/lenovo-16ARHA7_speaker-fix.nix {
|
|
||||||
# Make sure the module targets the same kernel as your system is using.
|
|
||||||
inherit (config.boot.kernelPackages) kernel;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
@ -33,10 +27,6 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
kernelModules = [ "kvm-amd" ];
|
kernelModules = [ "kvm-amd" ];
|
||||||
|
|
||||||
# Add kernel patch to enable sound over the speakers.
|
|
||||||
# Patch sourced from https://github.com/christian-bendiksen/kernel-6.8.0-63.16ARHA7.fc40
|
|
||||||
extraModulePackages = [ lenovo-speaker-fix-module ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
# Patch sourced from https://github.com/christian-bendiksen/kernel-6.8.0-63.16ARHA7.fc40
|
|
||||||
{ pkgs, lib, kernel ? pkgs.linuxPackages_latest.kernel }:
|
|
||||||
|
|
||||||
pkgs.stdenv.mkDerivation {
|
|
||||||
pname = "lenovo-16ARHA7-speaker-fix-module";
|
|
||||||
inherit (kernel) src version postPatch nativeBuildInputs;
|
|
||||||
|
|
||||||
kernel_dev = kernel.dev;
|
|
||||||
kernelVersion = kernel.modDirVersion;
|
|
||||||
|
|
||||||
modulePath = "sound/pci/hda/";
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
BUILT_KERNEL=$kernel_dev/lib/modules/$kernelVersion/build
|
|
||||||
|
|
||||||
cp $BUILT_KERNEL/Module.symvers .
|
|
||||||
cp $BUILT_KERNEL/.config .
|
|
||||||
cp $kernel_dev/vmlinux .
|
|
||||||
|
|
||||||
make "-j$NIX_BUILD_CORES" modules_prepare
|
|
||||||
make "-j$NIX_BUILD_CORES" M=$modulePath modules
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
make \
|
|
||||||
INSTALL_MOD_PATH="$out" \
|
|
||||||
XZ="xz -T$NIX_BUILD_CORES" \
|
|
||||||
M="$modulePath" \
|
|
||||||
modules_install
|
|
||||||
'';
|
|
||||||
|
|
||||||
patches = [ ./lenovo_16ARHA7_sound_fix.patch ];
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Patch to get the speakers working for Lenovo Legion Slim 7 Gen 7 AMD (16ARHA7)";
|
|
||||||
license = lib.licenses.gpl3;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,33 +0,0 @@
|
||||||
diff -rupN linux-6.8-9791-ge5eb28f6d1af/sound/pci/hda/cs35l41_hda_property.c linux-6.8-9791-ge5eb28f6d1af-patched/sound/pci/hda/cs35l41_hda_property.c
|
|
||||||
--- linux-6.8-9791-ge5eb28f6d1af/sound/pci/hda/cs35l41_hda_property.c 2024-03-15 02:03:09.000000000 +0100
|
|
||||||
+++ linux-6.8-9791-ge5eb28f6d1af-patched/sound/pci/hda/cs35l41_hda_property.c 2024-03-17 12:23:48.183404375 +0100
|
|
||||||
@@ -115,6 +115,8 @@ static const struct cs35l41_config cs35l
|
|
||||||
{ "17AA38B5", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 0, 0, 0 },
|
|
||||||
{ "17AA38B6", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 0, 0, 0 },
|
|
||||||
{ "17AA38B7", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 0, 0, 0 },
|
|
||||||
+ { "17AA3877", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 0, 0, 0 },
|
|
||||||
+ { "17AA3878", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 0, 0, 0 },
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -503,6 +505,8 @@ static const struct cs35l41_prop_model c
|
|
||||||
{ "CSC3551", "17AA38B5", generic_dsd_config },
|
|
||||||
{ "CSC3551", "17AA38B6", generic_dsd_config },
|
|
||||||
{ "CSC3551", "17AA38B7", generic_dsd_config },
|
|
||||||
+ { "CSC3551", "17AA3877", generic_dsd_config },
|
|
||||||
+ { "CSC3551", "17AA3878", generic_dsd_config },
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
|
|
||||||
diff -rupN linux-6.8-9791-ge5eb28f6d1af/sound/pci/hda/patch_realtek.c linux-6.8-9791-ge5eb28f6d1af-patched/sound/pci/hda/patch_realtek.c
|
|
||||||
--- linux-6.8-9791-ge5eb28f6d1af/sound/pci/hda/patch_realtek.c 2024-03-15 02:03:09.000000000 +0100
|
|
||||||
+++ linux-6.8-9791-ge5eb28f6d1af-patched/sound/pci/hda/patch_realtek.c 2024-03-17 12:18:22.241570472 +0100
|
|
||||||
@@ -10263,6 +10263,8 @@ static const struct snd_pci_quirk alc269
|
|
||||||
SND_PCI_QUIRK(0x17aa, 0x38b5, "Legion Slim 7 16IRH8", ALC287_FIXUP_CS35L41_I2C_2),
|
|
||||||
SND_PCI_QUIRK(0x17aa, 0x38b6, "Legion Slim 7 16APH8", ALC287_FIXUP_CS35L41_I2C_2),
|
|
||||||
SND_PCI_QUIRK(0x17aa, 0x38b7, "Legion Slim 7 16APH8", ALC287_FIXUP_CS35L41_I2C_2),
|
|
||||||
+ SND_PCI_QUIRK(0x17aa, 0x3877, "Legion S7 16ARHA7", ALC287_FIXUP_CS35L41_I2C_2),
|
|
||||||
+ SND_PCI_QUIRK(0x17aa, 0x3878, "Legion S7 16ARHA7", ALC287_FIXUP_CS35L41_I2C_2),
|
|
||||||
SND_PCI_QUIRK(0x17aa, 0x38ba, "Yoga S780-14.5 Air AMD quad YC", ALC287_FIXUP_TAS2781_I2C),
|
|
||||||
SND_PCI_QUIRK(0x17aa, 0x38bb, "Yoga S780-14.5 Air AMD quad AAC", ALC287_FIXUP_TAS2781_I2C),
|
|
||||||
SND_PCI_QUIRK(0x17aa, 0x38be, "Yoga S980-14.5 proX YC Dual", ALC287_FIXUP_TAS2781_I2C),
|
|
Loading…
Reference in a new issue