diff --git a/microsoft/surface/kernel/default.nix b/microsoft/surface/kernel/default.nix index 354fe90..97fd174 100644 --- a/microsoft/surface/kernel/default.nix +++ b/microsoft/surface/kernel/default.nix @@ -1,5 +1,36 @@ { config, lib, pkgs, ... }: -{ - boot.kernelPackages = pkgs.callPackage ./linux-5.16.11.nix { }; +# To test the kernel build: +# nix-build -E "with import {}; (pkgs.callPackage ./. {}).boot.kernelPackages.kernel" + +let + inherit (lib) kernel recurseIntoAttrs; + inherit (pkgs) buildLinux linuxPackagesFor; + repos = pkgs.callPackage ../repos.nix {}; + + linuxPackage = + { version, + modDirVersion ? version, + branch, + src, + kernelPatches ? [], + ... + }: let + buildLinux' = buildLinux { + inherit version src kernelPatches; + modDirVersion = version; + extraMeta.branch = branch; + }; + linuxPackagesFor' = linuxPackagesFor buildLinux'; + in recurseIntoAttrs linuxPackagesFor'; + + linux-5_16_11 = linuxPackage ( + pkgs.callPackage ./linux-5.16.11.nix { inherit repos; } + ); + linux-5_19_2 = linuxPackage ( + pkgs.callPackage ./linux-5.19.2.nix { inherit repos; } + ); + +in { + boot.kernelPackages = linux-5_19_2; } diff --git a/microsoft/surface/kernel/linux-5.19.2.nix b/microsoft/surface/kernel/linux-5.19.2.nix index f893e81..c941b88 100644 --- a/microsoft/surface/kernel/linux-5.19.2.nix +++ b/microsoft/surface/kernel/linux-5.19.2.nix @@ -1,20 +1,21 @@ { lib, fetchurl, + repos, }: let inherit (lib) kernel; version = "5.19.2"; + branch = "5.19"; + patches = repos.linux-surface + "/patches/${branch}"; in { - inherit version; + inherit version branch; modDirVersion = version; - branch = "5.19"; src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; sha256 = "sha256-SOQKH1UB7GxA48htPVMZIAtojy2TYPcoMwhNdIAf5j0="; }; - patches = repos.linux-surface + "/patches/${branch}"; kernelPatches = [ {