Skip to content

Commit

Permalink
Merge #47699: nixos on hyperv improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
vcunat committed Oct 4, 2018
2 parents cb08cb4 + 9ffdaa1 commit 8dae912
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 6 deletions.
3 changes: 1 addition & 2 deletions nixos/modules/installer/tools/nixos-generate-config.pl
Original file line number Diff line number Diff line change
Expand Up @@ -277,8 +277,7 @@ sub usbCheck {

# Also for Hyper-V.
if ($virt eq "microsoft") {
push @initrdAvailableKernelModules, "hv_storvsc";
$videoDriver = "fbdev";
push @attrs, "virtualisation.hypervGuest.enable = true;"
}


Expand Down
35 changes: 31 additions & 4 deletions nixos/modules/virtualisation/hyperv-guest.nix
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,47 @@ 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;

# enable hotadding memory
# enable hotadding cpu/memory
services.udev.packages = lib.singleton (pkgs.writeTextFile {
name = "hyperv-memory-hotadd-udev-rules";
destination = "/etc/udev/rules.d/99-hyperv-memory-hotadd.rules";
name = "hyperv-cpu-and-memory-hotadd-udev-rules";
destination = "/etc/udev/rules.d/99-hyperv-cpu-and-memory-hotadd.rules";
text = ''
ACTION="add", SUBSYSTEM=="memory", ATTR{state}="online"
# Memory hotadd
SUBSYSTEM=="memory", ACTION=="add", DEVPATH=="/devices/system/memory/memory[0-9]*", TEST=="state", ATTR{state}="online"
# CPU hotadd
SUBSYSTEM=="cpu", ACTION=="add", DEVPATH=="/devices/system/cpu/cpu[0-9]*", TEST=="online", ATTR{online}="1"
'';
});

Expand Down

0 comments on commit 8dae912

Please sign in to comment.