[nvidia] Move into module
This commit is contained in:
		
							parent
							
								
									5386ed5ba3
								
							
						
					
					
						commit
						5f49e43af9
					
				
					 9 changed files with 87 additions and 48 deletions
				
			
		
							
								
								
									
										46
									
								
								nixos/modules/hardware/nvidia/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								nixos/modules/hardware/nvidia/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,46 @@ | |||
| { config, lib, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
|   cfg = config.sisyphus.hardware.nvidia; | ||||
| 
 | ||||
|   nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" '' | ||||
|     export __NV_PRIME_RENDER_OFFLOAD=1 | ||||
|     export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0 | ||||
|     export __GLX_VENDOR_LIBRARY_NAME=nvidia | ||||
|     export __VK_LAYER_NV_optimus=NVIDIA_only | ||||
|     exec "$@" | ||||
|   ''; | ||||
| in { | ||||
|   options.sisyphus.hardware.nvidia = { | ||||
|     enable = lib.mkEnableOption "NVIDIA GPU support"; | ||||
|     model = lib.mkOption { | ||||
|       type = lib.types.enum [ "" "T2000" "RTX 2060" ]; | ||||
|       default = ""; | ||||
|       example = "T2000"; | ||||
|       description = lib.mdDoc "The model of NVIDIA GPU card"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf cfg.enable { | ||||
|     services.xserver.videoDrivers = [ "nvidia" ]; | ||||
|    | ||||
|     hardware = { | ||||
|       opengl.enable = true; | ||||
|       nvidia = { | ||||
|         open = true; | ||||
|         package = config.boot.kernelPackages.nvidiaPackages.stable; | ||||
|         modesetting.enable = true; | ||||
| 
 | ||||
|         prime = lib.mkIf (cfg.model == "T2000") { | ||||
|           offload.enable = true; | ||||
|           intelBusId = "PCI::00:02:0"; | ||||
|           nvidiaBusId = "PCI:01:00:0"; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     environment.systemPackages = lib.mkIf (cfg.model != "") [ | ||||
|       nvidia-offload | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue