2023-07-15 22:37:43 +08:00
|
|
|
inputs:
|
2023-07-14 17:10:53 +08:00
|
|
|
{
|
|
|
|
options.nixos.kernel = let inherit (inputs.lib) mkOption types; in
|
|
|
|
{
|
|
|
|
cpu = mkOption { type = types.listOf (types.enum [ "intel" "amd" ]); default = []; };
|
2023-07-15 22:37:43 +08:00
|
|
|
patches = mkOption { type = types.listOf (types.enum [ "hdmi" "cjktty" ]); default = []; };
|
2023-07-14 17:10:53 +08:00
|
|
|
};
|
|
|
|
config =
|
|
|
|
{
|
2023-07-15 22:12:29 +08:00
|
|
|
boot =
|
|
|
|
{
|
|
|
|
kernelParams = [ "delayacct" "acpi_osi=Linux" ];
|
|
|
|
kernelPackages = inputs.pkgs.linuxPackages_xanmod_latest;
|
2023-07-15 22:37:43 +08:00
|
|
|
kernelPatches =
|
|
|
|
(
|
|
|
|
let
|
|
|
|
patches =
|
|
|
|
{
|
|
|
|
"hdmi" = { patch = ./hdmi.patch; };
|
|
|
|
"cjktty" =
|
|
|
|
{
|
|
|
|
patch = inputs.pkgs.fetchurl
|
|
|
|
{
|
|
|
|
url = "https://raw.githubusercontent.com/zhmars/cjktty-patches/master/v6.x/cjktty-6.4.patch";
|
|
|
|
sha256 = "sha256-oGZxvg6ldpPAn5+W+r/e/WkVO92iv0XVFoJfFF5rdc8=";
|
|
|
|
};
|
|
|
|
extraStructuredConfig =
|
|
|
|
{ FONT_CJK_16x16 = inputs.lib.kernel.yes; FONT_CJK_32x32 = inputs.lib.kernel.yes; };
|
|
|
|
};
|
|
|
|
};
|
|
|
|
in
|
|
|
|
builtins.map (name: { inherit name; } // patches.${name}) inputs.config.nixos.kernel.patches
|
|
|
|
);
|
2023-07-15 22:12:29 +08:00
|
|
|
};
|
2023-07-14 17:10:53 +08:00
|
|
|
hardware.cpu = builtins.listToAttrs (builtins.map
|
|
|
|
(name: { inherit name; value = { updateMicrocode = true; }; })
|
|
|
|
inputs.config.nixos.kernel.cpu);
|
|
|
|
};
|
|
|
|
}
|