36 lines
		
	
	
		
			985 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			985 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ config, pkgs, ... }:
 | 
						|
 | 
						|
with pkgs.lib;
 | 
						|
 | 
						|
let virtualbox = config.boot.kernelPackages.virtualbox; in
 | 
						|
 | 
						|
{
 | 
						|
  boot.kernelModules = [ "vboxdrv" "vboxnetadp" "vboxnetflt" ];
 | 
						|
  boot.extraModulePackages = [ virtualbox ];
 | 
						|
  environment.systemPackages = [ virtualbox ];
 | 
						|
 | 
						|
  users.extraGroups = singleton { name = "vboxusers"; };
 | 
						|
  
 | 
						|
  services.udev.extraRules =
 | 
						|
    ''
 | 
						|
      KERNEL=="vboxdrv",    OWNER="root", GROUP="vboxusers", MODE="0660"
 | 
						|
      KERNEL=="vboxnetctl", OWNER="root", GROUP="root",      MODE="0600"
 | 
						|
    '';
 | 
						|
 | 
						|
  # Since we lack the right setuid binaries, set up a host-only network by default.
 | 
						|
  
 | 
						|
  jobs."create-vboxnet0" =
 | 
						|
    { task = true;
 | 
						|
      path = [ virtualbox ];
 | 
						|
      startOn = "starting network-interfaces";
 | 
						|
      script =
 | 
						|
        ''
 | 
						|
          if ! [ -e /sys/class/net/vboxnet0 ]; then
 | 
						|
            VBoxManage hostonlyif create
 | 
						|
          fi
 | 
						|
        '';
 | 
						|
    };
 | 
						|
 | 
						|
  networking.interfaces = [ { name = "vboxnet0"; ipAddress = "192.168.56.1"; subnetMask = "255.255.255.0"; } ];
 | 
						|
}
 |