diff --git a/doc/release-notes/rl-2505.section.md b/doc/release-notes/rl-2505.section.md index 901124b91c7c..956d9fb754e9 100644 --- a/doc/release-notes/rl-2505.section.md +++ b/doc/release-notes/rl-2505.section.md @@ -18,6 +18,8 @@ - [`lib.types.enum`](https://nixos.org/manual/nixos/unstable/#sec-option-types-basic): Previously the `functor.payload` was the list of enum values directly. Now it is an attribute set containing the values in the `values` attribute. - [`lib.types.separatedString`](https://nixos.org/manual/nixos/unstable/#sec-option-types-string): Previously the `functor.payload` was the seperator directly. Now it is an attribute set containing the seperator in the `sep` attribute. +- The `virtualisation.hypervGuest.videoMode` option has been removed. Standard tooling can now be used to configure display modes for Hyper-V VMs. + ### Deprecations {#sec-nixpkgs-release-25.05-lib-deprecations} `functor` is an implementation detail and should not be relied upon, but since its status wasn't clear and it has had some use cases without alternatives, changes are being handled as gracefully as possible. Deprecations within functor: diff --git a/nixos/modules/virtualisation/hyperv-guest.nix b/nixos/modules/virtualisation/hyperv-guest.nix index af7ef02bdcff..1bdf6ab29d39 100644 --- a/nixos/modules/virtualisation/hyperv-guest.nix +++ b/nixos/modules/virtualisation/hyperv-guest.nix @@ -6,22 +6,15 @@ let cfg = config.virtualisation.hypervGuest; in { + imports = [ + (mkRemovedOptionModule [ "virtualisation" "hypervGuest" "videoMode" ] + "The video mode can now be configured via standard tools, or in Hyper-V VM settings." + ) + ]; + 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. - ''; - }; }; }; @@ -34,7 +27,7 @@ in { initrd.availableKernelModules = [ "hyperv_keyboard" ]; kernelParams = [ - "video=hyperv_fb:${cfg.videoMode}" "elevator=noop" + "elevator=noop" ]; }; diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 302325018eac..4fb187270ed3 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -525,6 +525,8 @@ let DRM_I915_GVT_KVMGT = module; # Enable Hyper-V Synthetic DRM Driver DRM_HYPERV = whenAtLeast "5.14" module; + # And disable the legacy framebuffer driver when we have the new one + FB_HYPERV = whenAtLeast "5.14" no; } // lib.optionalAttrs (stdenv.hostPlatform.system == "aarch64-linux") { # enable HDMI-CEC on RPi boards