summary refs log tree commit diff
path: root/nixos/modules/virtualisation/hyperv-guest.nix
diff options
context:
space:
mode:
authorPeter Hoeg <peter@hoeg.com>2018-09-28 22:10:03 +0800
committerPeter Hoeg <peter@hoeg.com>2018-09-28 22:28:17 +0800
commit3a76bc7a79e18020716ba063dcd1bd8ec11b0790 (patch)
tree92a9b6f0425c93f2abeebcf9acbb05f9046088c3 /nixos/modules/virtualisation/hyperv-guest.nix
parent46651b82b87318e37440c15a639d49ec05e79b79 (diff)
downloadnixpkgs-3a76bc7a79e18020716ba063dcd1bd8ec11b0790.tar
nixpkgs-3a76bc7a79e18020716ba063dcd1bd8ec11b0790.tar.gz
nixpkgs-3a76bc7a79e18020716ba063dcd1bd8ec11b0790.tar.bz2
nixpkgs-3a76bc7a79e18020716ba063dcd1bd8ec11b0790.tar.lz
nixpkgs-3a76bc7a79e18020716ba063dcd1bd8ec11b0790.tar.xz
nixpkgs-3a76bc7a79e18020716ba063dcd1bd8ec11b0790.tar.zst
nixpkgs-3a76bc7a79e18020716ba063dcd1bd8ec11b0790.zip
nixos on hyperv: load modules and set video mode
Diffstat (limited to 'nixos/modules/virtualisation/hyperv-guest.nix')
-rw-r--r--nixos/modules/virtualisation/hyperv-guest.nix23
1 files changed, 23 insertions, 0 deletions
diff --git a/nixos/modules/virtualisation/hyperv-guest.nix b/nixos/modules/virtualisation/hyperv-guest.nix
index ecd2a811771..d86cb9fe1ab 100644
--- a/nixos/modules/virtualisation/hyperv-guest.nix
+++ b/nixos/modules/virtualisation/hyperv-guest.nix
@@ -9,10 +9,33 @@ in {
   options = {
     virtualisation.hypervGuest = {
       enable = mkEnableOption "Hyper-V Guest Support";
+
+      videoMode = mkOption {
+        type = types.str;
+        default = "1152x864";
+        example = "1024x768";
+        description = ''
+          Resolution at which to initialize the video adapter.
+
+          Supports screen resolution up to Full HD 1920x1080 with 32 bit color
+          on Windows Server 2012, and 1600x1200 with 16 bit color on Windows
+          Server 2008 R2 or earlier.
+        '';
+      };
     };
   };
 
   config = mkIf cfg.enable {
+    boot = {
+      initrd.kernelModules = [
+        "hv_balloon" "hv_netvsc" "hv_storvsc" "hv_utils" "hv_vmbus"
+      ];
+
+      kernelParams = [
+        "video=hyperv_fb:${cfg.videoMode}"
+      ];
+    };
+
     environment.systemPackages = [ config.boot.kernelPackages.hyperv-daemons.bin ];
 
     security.rngd.enable = false;