38 lines
		
	
	
		
			857 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			857 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| 
								 | 
							
								{ config, lib, pkgs, ... }:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								with lib;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								let
							 | 
						||
| 
								 | 
							
								  cfg = config.virtualisation.hypervGuest;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								in {
							 | 
						||
| 
								 | 
							
								  options = {
							 | 
						||
| 
								 | 
							
								    virtualisation.hypervGuest = {
							 | 
						||
| 
								 | 
							
								      enable = mkEnableOption "Hyper-V Guest Support";
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  config = mkIf cfg.enable {
							 | 
						||
| 
								 | 
							
								    environment.systemPackages = [ config.boot.kernelPackages.hyperv-daemons.bin ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    security.rngd.enable = false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # enable hotadding memory
							 | 
						||
| 
								 | 
							
								    services.udev.packages = lib.singleton (pkgs.writeTextFile {
							 | 
						||
| 
								 | 
							
								      name = "hyperv-memory-hotadd-udev-rules";
							 | 
						||
| 
								 | 
							
								      destination = "/etc/udev/rules.d/99-hyperv-memory-hotadd.rules";
							 | 
						||
| 
								 | 
							
								      text = ''
							 | 
						||
| 
								 | 
							
								        ACTION="add", SUBSYSTEM=="memory", ATTR{state}="online"
							 | 
						||
| 
								 | 
							
								      '';
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    systemd = {
							 | 
						||
| 
								 | 
							
								      packages = [ config.boot.kernelPackages.hyperv-daemons.lib ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      targets.hyperv-daemons = {
							 | 
						||
| 
								 | 
							
								        wantedBy = [ "multi-user.target" ];
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								}
							 |