feat(systemModules:host): add initial host configuration module
used to define general host configuration, including: - hardware - name - admin - type - role
This commit is contained in:
		
							parent
							
								
									6db577fbf5
								
							
						
					
					
						commit
						7a74befde3
					
				
					 19 changed files with 538 additions and 0 deletions
				
			
		
							
								
								
									
										43
									
								
								system/modules/host/hardware/cpu/amd/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								system/modules/host/hardware/cpu/amd/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,43 @@ | |||
| { lib, config, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
|   inherit (lib) mkMerge mkEnableOption mkIf versionAtLeast versionOlder; | ||||
|   hardware = config.systemModules.host.hardware.cpu;  | ||||
|   cfg = hardware.amd; | ||||
|   kernelVersion = config.kernelPackages.kernel.version; | ||||
|   kernelVersionAtLeast = versionAtLeast kernelVersion; | ||||
|   kernelVersionOlder= versionOlder kernelVersion; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   options.systemModules.host.hardware.cpu.amd = { | ||||
|     pstate.enable = mkEnableOption "Enable pstate amd module"; | ||||
|   }; | ||||
| 
 | ||||
|   config = mkIf (builtins.elem hardware.type ["amd"]) { | ||||
|     environment.systemPackages = [pkgs.amdctl]; | ||||
|     hardware.cpu.amd.updateMicrocode = true; | ||||
|     boot = mkMerge [ | ||||
|       { | ||||
|         kernelModules = [ | ||||
|           "amd-pstate" | ||||
|           "amd-kvm" # virtulization | ||||
|           "msr" # required for amdctl | ||||
|         ]; | ||||
|       } | ||||
|        | ||||
|       (mkIf (cfg.pstate.enable && (kernelVersionAtLeast "5.27") && (kernelVersionOlder "6.1")) { | ||||
|         kernelParams = ["initcall_blacklist-acpi_cpufreq_init"]; | ||||
|         kernelModules = ["amd-pstate"]; | ||||
|       }) | ||||
| 
 | ||||
|       (mkIf (cfg.pstate.enable && (kernelVersionAtLeast "6.1") && (kernelVersionOlder "6.3")) { | ||||
|         kernelParams = ["amd_pstate=passive"]; | ||||
|       }) | ||||
| 
 | ||||
|       (mkIf (cfg.pstate.enable && (kernelVersionAtLeast "6.3")) { | ||||
|         kernelParams = ["amd_pstate=active"]; | ||||
|       }) | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue