diff --git a/flake.lock b/flake.lock index 8f618f9..762dfa9 100644 --- a/flake.lock +++ b/flake.lock @@ -59,6 +59,38 @@ "type": "github" } }, + "cachyos-kernel": { + "flake": false, + "locked": { + "lastModified": 1775145950, + "narHash": "sha256-AfVja9nvYHm0BHbuTvn+K8rKfLmPl5QjoiNecp9HOJU=", + "owner": "CachyOS", + "repo": "linux-cachyos", + "rev": "b91624f68ceaf5394ef1571f60290dca6ba22b45", + "type": "github" + }, + "original": { + "owner": "CachyOS", + "repo": "linux-cachyos", + "type": "github" + } + }, + "cachyos-kernel-patches": { + "flake": false, + "locked": { + "lastModified": 1775157685, + "narHash": "sha256-g8HgH7gADoEnrBN30BK3pz7+M2pT/p3xtfRFEuEov5w=", + "owner": "CachyOS", + "repo": "kernel-patches", + "rev": "c1ba300617a12d257b5721572b9bbe28efae182f", + "type": "github" + }, + "original": { + "owner": "CachyOS", + "repo": "kernel-patches", + "type": "github" + } + }, "crane": { "locked": { "lastModified": 1773189535, @@ -210,6 +242,22 @@ "type": "github" } }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ @@ -231,6 +279,24 @@ "type": "github" } }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1775087534, + "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems_2" @@ -481,6 +547,31 @@ "type": "github" } }, + "nix-cachyos-kernel": { + "inputs": { + "cachyos-kernel": "cachyos-kernel", + "cachyos-kernel-patches": "cachyos-kernel-patches", + "flake-compat": "flake-compat_3", + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1775239578, + "narHash": "sha256-MKJmDHlaxwBcnfCUEA89AwKOOONjOjbjHNNWdSdg5RA=", + "owner": "xddxdd", + "repo": "nix-cachyos-kernel", + "rev": "beaf7a533ae106c2681de2624da94707f9857f1f", + "type": "github" + }, + "original": { + "owner": "xddxdd", + "ref": "release", + "repo": "nix-cachyos-kernel", + "type": "github" + } + }, "nix-doom-emacs-unstraightened": { "inputs": { "doomemacs": "doomemacs", @@ -575,6 +666,21 @@ "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1774748309, + "narHash": "sha256-+U7gF3qxzwD5TZuANzZPeJTZRHS29OFQgkQ2kiTJBIQ=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "333c4e0545a6da976206c74db8773a1645b5870a", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, "noctalia": { "inputs": { "nixpkgs": [ @@ -655,6 +761,7 @@ "lanzaboote": "lanzaboote", "llm-agents": "llm-agents", "niri": "niri", + "nix-cachyos-kernel": "nix-cachyos-kernel", "nix-doom-emacs-unstraightened": "nix-doom-emacs-unstraightened", "nix-flatpak": "nix-flatpak", "nixos-hardware": "nixos-hardware", diff --git a/flake.nix b/flake.nix index aaad4f1..9ad3e0b 100644 --- a/flake.nix +++ b/flake.nix @@ -79,6 +79,10 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + nix-cachyos-kernel = { + url = "github:xddxdd/nix-cachyos-kernel/release"; + inputs.nixpkgs.follows = "nixpkgs"; + }; llm-agents = { url = "github:numtide/llm-agents.nix"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/system/common.nix b/system/common.nix index 0004c80..74189a4 100644 --- a/system/common.nix +++ b/system/common.nix @@ -94,10 +94,11 @@ }; }; + # cachyos kernel overlay + nixpkgs.overlays = [ inputs.nix-cachyos-kernel.overlays.default ]; + # kernel options boot = { - kernelPackages = pkgs.linuxPackages_testing; - # kernelPackages = pkgs.linuxPackages_latest; # aes_generic is built-in as of linux 7.0, no longer a loadable module initrd.luks.cryptoModules = lib.mkForce ( diff --git a/system/system-mreow.nix b/system/system-mreow.nix index 16d7902..eddf970 100644 --- a/system/system-mreow.nix +++ b/system/system-mreow.nix @@ -14,6 +14,17 @@ inputs.nixos-hardware.nixosModules.framework-amd-ai-300-series ]; + # cachyos kernel: bore scheduler, full lto, zen 4 (amd ai 340) + boot.kernelPackages = + let + helpers = pkgs.callPackage "${inputs.nix-cachyos-kernel}/helpers.nix" { }; + kernel = pkgs.cachyosKernels.linux-cachyos-bore-lto.override { + lto = "full"; + processorOpt = "zen4"; + }; + in + helpers.kernelModuleLLVMOverride (pkgs.linuxKernel.packagesFor kernel); + hardware.framework.laptop13.audioEnhancement.rawDeviceName = lib.mkDefault "alsa_output.pci-0000_c1_00.6.analog-stereo"; diff --git a/system/system-yarn.nix b/system/system-yarn.nix index 549ddb7..8b0f064 100644 --- a/system/system-yarn.nix +++ b/system/system-yarn.nix @@ -18,6 +18,22 @@ inputs.jovian-nixos.nixosModules.default ]; + # cachyos kernel: bore scheduler, full lto, zen 3 (5800x) + boot.kernelPackages = + let + helpers = pkgs.callPackage "${inputs.nix-cachyos-kernel}/helpers.nix" { }; + kernel = pkgs.cachyosKernels.linux-cachyos-bore-lto.override { + lto = "full"; + processorOpt = "x86_64-v3"; + structuredExtraConfig = with lib.kernel; { + # x86_64-v3 is the ISA level; pin to zen 3 for microarch tuning + GENERIC_CPU = lib.mkForce no; + MZEN3 = lib.mkForce yes; + }; + }; + in + helpers.kernelModuleLLVMOverride (pkgs.linuxKernel.packagesFor kernel); + fileSystems."/media/games" = { device = "/dev/disk/by-uuid/1878136e-765d-4784-b204-3536ab4fdac8"; fsType = "f2fs";