From ce30a0be8b59cdb334e36407bac3029e7b79dc20 Mon Sep 17 00:00:00 2001 From: chn Date: Tue, 16 Sep 2025 21:08:45 +0800 Subject: [PATCH 1/6] Reapply "flake.lib.buildNixpkgsConfig: add rocm support" This reverts commit 5eb9eaa1990b8871e2b96e0e084a5c4737e118ec. --- devices/jykang.xmuhpc/default.nix | 2 +- devices/pc/default.nix | 2 +- devices/xmuhk/default.nix | 2 +- flake/lib/buildNixpkgsConfig/default.nix | 9 +++++---- flake/packages.nix | 2 +- modules/system/nixpkgs.nix | 3 ++- 6 files changed, 11 insertions(+), 9 deletions(-) diff --git a/devices/jykang.xmuhpc/default.nix b/devices/jykang.xmuhpc/default.nix index d50a1d22..d6e15465 100644 --- a/devices/jykang.xmuhpc/default.nix +++ b/devices/jykang.xmuhpc/default.nix @@ -5,7 +5,7 @@ let pkgs = import inputs.nixpkgs (localLib.buildNixpkgsConfig { inputs = { inherit (inputs.nixpkgs) lib; topInputs = inputs; }; - nixpkgs = { march = "haswell"; cuda = null; nixRoot = "/data/gpfs01/jykang/.nix"; nixos = false; }; + nixpkgs = { march = "haswell"; nixRoot = "/data/gpfs01/jykang/.nix"; nixos = false; }; }); in pkgs.symlinkJoin { diff --git a/devices/pc/default.nix b/devices/pc/default.nix index 483aa241..88f45e4c 100644 --- a/devices/pc/default.nix +++ b/devices/pc/default.nix @@ -28,7 +28,7 @@ inputs: # SERIALIZE SGX WAITPKG WIDEKL XSAVE XSAVEOPT "alderlake" ]; - nixpkgs.march = "znver4"; + nixpkgs = { march = "znver5"; rocm = true; }; sysctl.laptop-mode = 5; kernel.variant = "xanmod-latest"; }; diff --git a/devices/xmuhk/default.nix b/devices/xmuhk/default.nix index dbe1d475..1b8ff9f6 100644 --- a/devices/xmuhk/default.nix +++ b/devices/xmuhk/default.nix @@ -3,7 +3,7 @@ let pkgs = import inputs.nixpkgs (localLib.buildNixpkgsConfig { inputs = { inherit (inputs.nixpkgs) lib; topInputs = inputs; }; - nixpkgs = { march = null; cuda = null; nixRoot = "/public/home/xmuhk/.nix"; nixos = false; }; + nixpkgs = { march = null; nixRoot = "/public/home/xmuhk/.nix"; nixos = false; }; }); lumericalLicenseManager = let diff --git a/flake/lib/buildNixpkgsConfig/default.nix b/flake/lib/buildNixpkgsConfig/default.nix index 8c72e4f1..c283860d 100644 --- a/flake/lib/buildNixpkgsConfig/default.nix +++ b/flake/lib/buildNixpkgsConfig/default.nix @@ -1,4 +1,4 @@ -# inputs = { lib, topInputs, ...}; nixpkgs = { march, cuda, nixRoot, nixos, arch }; +# inputs = { lib, topInputs, ...}; nixpkgs = { march, cuda, nixRoot, nixos, arch, rocm }; { inputs, nixpkgs }: let platformConfig = @@ -8,7 +8,7 @@ let ${if nixpkgs.nixos then "hostPlatform" else "localSystem"} = { system = "${nixpkgs.arch or "x86_64"}-linux"; gcc = { arch = nixpkgs.march; tune = nixpkgs.march; }; }; }; - cudaConfig = inputs.lib.optionalAttrs (nixpkgs.cuda != null) + cudaConfig = inputs.lib.optionalAttrs (nixpkgs.cuda or null != null) ( { cudaSupport = true; } // (inputs.lib.optionalAttrs (nixpkgs.cuda.capabilities != null) @@ -16,8 +16,9 @@ let // (inputs.lib.optionalAttrs (nixpkgs.cuda.forwardCompat != null) { cudaForwardCompat = nixpkgs.cuda.forwardCompat; }) ); + rocmConfig = inputs.lib.optionalAttrs (nixpkgs.rocm or false) { rocmSupport = true; }; allowInsecurePredicate = p: inputs.lib.warn "Allowing insecure package ${p.name or "${p.pname}-${p.version}"}" true; - config = cudaConfig + config = cudaConfig // rocmConfig // { inherit allowInsecurePredicate; allowUnfree = true; @@ -30,7 +31,7 @@ let nvhpcArch = nixpkgs.march; # contentAddressedByDefault = true; }) - // (inputs.lib.optionalAttrs (nixpkgs.nixRoot != null) + // (inputs.lib.optionalAttrs (nixpkgs.nixRoot or null != null) { nix = { storeDir = "${nixpkgs.nixRoot}/store"; stateDir = "${nixpkgs.nixRoot}/state"; }; }); in platformConfig // { diff --git a/flake/packages.nix b/flake/packages.nix index 56de7eec..e8292857 100644 --- a/flake/packages.nix +++ b/flake/packages.nix @@ -3,7 +3,7 @@ pkgs = import inputs.nixpkgs (localLib.buildNixpkgsConfig { inputs = { inherit (inputs.nixpkgs) lib; topInputs = inputs; }; - nixpkgs = { march = null; cuda = null; nixRoot = null; nixos = false; }; + nixpkgs = { march = null; nixos = false; }; }); hpcstat = let diff --git a/modules/system/nixpkgs.nix b/modules/system/nixpkgs.nix index cdf3b443..d36344d3 100644 --- a/modules/system/nixpkgs.nix +++ b/modules/system/nixpkgs.nix @@ -12,13 +12,14 @@ inputs: };}); default = null; }; + rocm = mkOption { type = types.bool; default = false; }; }; config = let inherit (inputs.config.nixos.system) nixpkgs; in { nixpkgs = inputs.localLib.buildNixpkgsConfig { inherit inputs; - nixpkgs = nixpkgs // { nixRoot = null; nixos = true; inherit (inputs.config.nixos.model) arch; }; + nixpkgs = nixpkgs // { nixos = true; inherit (inputs.config.nixos.model) arch; }; }; boot.kernelPatches = inputs.lib.mkIf (nixpkgs.march != null) ( From f6243b36655411a03afa819c97ff36ef87b7977a Mon Sep 17 00:00:00 2001 From: chn Date: Tue, 16 Sep 2025 23:20:40 +0800 Subject: [PATCH 2/6] Revert "devices.pc: remove cpu optimization, to get a working system asap" This reverts commit 72236d82af53eb4061a98d462e6e5319e8820824. --- devices/pc/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/pc/default.nix b/devices/pc/default.nix index 69d2b3e8..88f45e4c 100644 --- a/devices/pc/default.nix +++ b/devices/pc/default.nix @@ -32,7 +32,7 @@ inputs: sysctl.laptop-mode = 5; kernel.variant = "xanmod-latest"; }; - hardware = { gpu.type = "amd"; cpu = "amd"; }; + hardware.gpu.type = "amd"; services = { samba = @@ -83,7 +83,7 @@ inputs: lumericalLicenseManager.macAddress = "10:5f:ad:10:3e:ca"; }; bugs = [ "xmunet" "amdpstate" "iwlwifi" ]; - # packages = { mathematica = {}; vasp = {}; lumerical = {}; }; + packages = { mathematica = {}; vasp = {}; lumerical = {}; }; user.users = [ "chn" "xly" ]; }; # 允许kvm读取物理硬盘 From c6d0e9cb397a2556382e826f9ef8f4da0b25897e Mon Sep 17 00:00:00 2001 From: chn Date: Wed, 17 Sep 2025 06:42:47 +0800 Subject: [PATCH 3/6] fix dbus --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index b6915d3c..8c43f9d6 100644 --- a/flake.lock +++ b/flake.lock @@ -963,11 +963,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1758033839, - "narHash": "sha256-E21mL8edhADz9sTMYZXPhibvC88XBU1ka2CPH4X+OZ0=", + "lastModified": 1758062517, + "narHash": "sha256-QgyScNKqULPW7ehKUPB5b+9vQoodUbxUXEE0jdmr0Rw=", "owner": "CHN-beta", "repo": "nixpkgs", - "rev": "35d2195c37a47c2f5d8078cbdd7b86df62a247d8", + "rev": "3bd1118744b81b834214d9d08a08dd56967348e4", "type": "github" }, "original": { From 417764527f4273979b250697e8b9ba93957bde56 Mon Sep 17 00:00:00 2001 From: chn Date: Wed, 17 Sep 2025 21:48:06 +0800 Subject: [PATCH 4/6] flake.lib.buildNixpkgsConfig: fix --- flake/lib/buildNixpkgsConfig/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake/lib/buildNixpkgsConfig/default.nix b/flake/lib/buildNixpkgsConfig/default.nix index c283860d..9342199a 100644 --- a/flake/lib/buildNixpkgsConfig/default.nix +++ b/flake/lib/buildNixpkgsConfig/default.nix @@ -27,7 +27,7 @@ let } // (inputs.lib.optionalAttrs (nixpkgs.march != null) { - oneapiArch = let match = {}; in match.${nixpkgs.march} or nixpkgs.march; + oneapiArch = let match.znver5 = "znver4"; in match.${nixpkgs.march} or nixpkgs.march; nvhpcArch = nixpkgs.march; # contentAddressedByDefault = true; }) From c030b363d4e94135af281b0da8b74f2526995c54 Mon Sep 17 00:00:00 2001 From: chn Date: Wed, 17 Sep 2025 21:52:22 +0800 Subject: [PATCH 5/6] remove deprecated usage --- modules/default.nix | 2 +- modules/system/kernel/default.nix | 22 +++++++++------------- modules/system/nixpkgs.nix | 28 +++++++++++----------------- 3 files changed, 21 insertions(+), 31 deletions(-) diff --git a/modules/default.nix b/modules/default.nix index 692f1e81..68a7165b 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -22,7 +22,7 @@ inputs: let inherit (inputs) topInputs; in { home-manager.sharedModules = [ - topInputs.plasma-manager.homeManagerModules.plasma-manager + topInputs.plasma-manager.homeModules.plasma-manager topInputs.catppuccin.homeModules.catppuccin ]; }; diff --git a/modules/system/kernel/default.nix b/modules/system/kernel/default.nix index 1186917d..d4bfe03d 100644 --- a/modules/system/kernel/default.nix +++ b/modules/system/kernel/default.nix @@ -67,19 +67,15 @@ inputs: { hibernate-progress = [{ name = "hibernate-progress"; patch = ./hibernate-progress.patch; }]; btrfs = - let configName = - if inputs.config.nixos.system.kernel.variant == "xanmod-unstable" then "structuredExtraConfig" - else "extraStructuredConfig"; - in - [{ - name = "btrfs"; - patch = inputs.pkgs.fetchurl - { - url = "https://github.com/kakra/linux/pull/36.patch"; - sha256 = "0wimihsvrxib6g23jcqdbvqlkqk6nbqjswfx9bzmpm1vlvzxj8m0"; - }; - ${configName}.BTRFS_EXPERIMENTAL = inputs.lib.kernel.yes; - }]; + [{ + name = "btrfs"; + patch = inputs.pkgs.fetchurl + { + url = "https://github.com/kakra/linux/pull/36.patch"; + sha256 = "0wimihsvrxib6g23jcqdbvqlkqk6nbqjswfx9bzmpm1vlvzxj8m0"; + }; + structuredExtraConfig.BTRFS_EXPERIMENTAL = inputs.lib.kernel.yes; + }]; }; in builtins.concatLists (builtins.map (name: patches.${name}) kernel.patches); }; diff --git a/modules/system/nixpkgs.nix b/modules/system/nixpkgs.nix index d36344d3..aa547672 100644 --- a/modules/system/nixpkgs.nix +++ b/modules/system/nixpkgs.nix @@ -22,22 +22,16 @@ inputs: nixpkgs = nixpkgs // { nixos = true; inherit (inputs.config.nixos.model) arch; }; }; boot.kernelPatches = inputs.lib.mkIf (nixpkgs.march != null) - ( - let configName = - if inputs.config.nixos.system.kernel.variant == "xanmod-unstable" then "structuredExtraConfig" - else "extraStructuredConfig"; - in - [{ - name = "native kernel"; - patch = null; - ${configName} = - let kernelConfig = { znver2 = "MZEN2"; znver3 = "MZEN3"; znver4 = "MZEN4"; znver5 = "MZEN5"; }; - in - { - GENERIC_CPU = inputs.lib.kernel.no; - ${kernelConfig.${nixpkgs.march} or "M${inputs.lib.toUpper nixpkgs.march}"} = inputs.lib.kernel.yes; - }; - }] - ); + [{ + name = "native kernel"; + patch = null; + structuredExtraConfig = + let kernelConfig = { znver2 = "MZEN2"; znver3 = "MZEN3"; znver4 = "MZEN4"; znver5 = "MZEN5"; }; + in + { + GENERIC_CPU = inputs.lib.kernel.no; + ${kernelConfig.${nixpkgs.march} or "M${inputs.lib.toUpper nixpkgs.march}"} = inputs.lib.kernel.yes; + }; + }]; }; } From b6116d7c0c307e5ac767ee471638ff9cdd231aa5 Mon Sep 17 00:00:00 2001 From: chn Date: Fri, 19 Sep 2025 19:29:43 +0800 Subject: [PATCH 6/6] devices.pc: disable rocm support since RDNA3.5 was not supported --- devices/pc/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devices/pc/default.nix b/devices/pc/default.nix index 88f45e4c..16bcc8a0 100644 --- a/devices/pc/default.nix +++ b/devices/pc/default.nix @@ -28,7 +28,7 @@ inputs: # SERIALIZE SGX WAITPKG WIDEKL XSAVE XSAVEOPT "alderlake" ]; - nixpkgs = { march = "znver5"; rocm = true; }; + nixpkgs = { march = "znver5"; rocm = false; }; sysctl.laptop-mode = 5; kernel.variant = "xanmod-latest"; };