Question

Display resolution in Windows Server 2016 (AHV-VM) stuck to 1280x1024

  • 8 May 2020
  • 8 replies
  • 2672 views

Userlevel 1
Badge +1

Ok, yesterday one of our many Nutanix clusters was upgraded to 5.15 LTS and I started to create a new Windows Server 2016 template using UEFI-configuration.

 

Now I am stuck at display resolution of 1280x1024 and change is not possible, because it is grayed out. Nutanix Guest Tools from 5.15 LTS and VirtIO 1.1.5 are installed.

 

Is this bug known and does there exist a work-around?

 

What about 5.16 STS? Is it fixed there?

 

Thanks for any reply.

 

Regards,

Didi7

 


8 replies

Userlevel 5
Badge +5

Hi Didi7,

 

To make sure we’re on the same page is this where the option is greyed out?

 

Userlevel 1
Badge +1

Hello Alona, no it is not within the UEFI configuration, you are stuck at display resolution 1280x1024 within Windows OS.

 

Userlevel 1
Badge +1

Changing resolution within UEFI-configuration is possible but has no effect during installation. The whole installation process of a Windows VM can only be done with 1280x1024, so you are forced to use big monitors to succeed with the installation of Windows Server 2016 and as you cannot change the resolution during installation, you are also stuck at 1280x1024, when Windows is fully installed and Nutanix Guest Tools, as well as VirtIO drivers are installed.

 

Really, that’s so annoying and really not resonable to customers.

 

Might be fixable with an Nutanix display driver, don’t know?

 

Using non-UEFI VMs during installatation of Windows Server 2016 results in the same Monitor and display driver, but you can change resolutions.

 

Is there a solution from Nutanix available or is this a known bug?

 

Does there exist a work-around?

Userlevel 5
Badge +5

Would it be correct to say that the issue you are experiencing is when connecting to the VM by using “Launch console” feature in Prism? When using “Launch console” screen resolution is picked up from UEFI settings and Windows driver does not have the ability to change that setting. Therefore, you would need to change the resolution settings in UEFI in order to affect VNC connection resolution.

The thing is, VNC is intended for troubleshooting, debugging and such rather then as a all time access tool.

Does the issue appear when you connect via RDP post the installation? RDP is using a different driver hence you should be able to adjust the screen as required.

Have you considered deploying VMs from an image? This way you can skip the installation phase entirely and arrive at initial set up. I would recommend to sysprep the OS prior to making an image out of it. AFAIK, sysprep defaults the resolution to 1024 x 768 – something to keep in mind.

Here is a KB describing the issue that you encountered specifically KB-4792 AHV | How to change display resolution on Windows VMs running in UEFI mode.

Userlevel 1
Badge +1

Quote: Would it be correct to say that the issue you are experiencing is when connecting to the VM by using “Launch console” feature in Prism?

 

Yes absolutely, but as long as there is no network connection, one is forced to use the VNC Console until everything is setup and I am talking about VM-template generation, where there are no network connections availaible, as here they stay disconnected. Updates, like Cumulative Updates in Windows Server 2016 are done via ISO medias. After syspreping and cloning those VM-templates, they get connected to networks and then RDP is used of course.

 

I really know a lot of Hypervisor platforms and have 15 years of experience with VMware and the likes, but never had any problems to change the display resolution via the console, even if it’s only 640x480 and a change to 800x600 is only possible, but that I am forced to change the display resolution in the UEFI-firmware and that display resolution change within Windows is no longer possible, is unique to Nutanix AHV VMs imho!

 

Of course, if you use RDP, the client defines the resolution, that’s not the question I originally had.

 

And yes, after those templates are generated (without any network connection) and completely configured for further distribution, those VMs are shutdown with sysprep and generalized!

 

I decided to continue to create non UEFI-firmware Windows VM-templates at the moment, because this display resolution problem is annoying. Unfortunately I am forced to transfer some Hyper-V Generation 2 VMs to Nutanix AHV and there I will try to set the default resolution to 1024x768 in UEFI-firmware, but iirc this had no effect to how the Windows setup display resolution came up, but as I am unsure, I will give it another try.

 

Regards,

Didi7

 

Userlevel 1
Badge +1

Ok, I continued my tests on UEFI-firmware based Windows 2016 VMs and finally found out, that display resolution in Windows 2016 VMs only changes, when changing the default resolution in UEFI-firmware and only if you enter UEFI-firmware configuration after a reboot and exit. The display resolution changes to the one you choose in UEFI-firmware.

 

As soon as you power off the Windows Server 2016 VM again, the display resolution returns to 1280x1024 again and cannot be changed within Windows. If you reboot (not power off) the Windows 2016 VM, enter UEFI-firmware with F2 and exit again, the display resolution changes again to the one you chose in Nutanix UEFI-firmware settings.

 

That’s what I call annoying and should be changed from Nutanix asap, but maybe I am the only one claiming it’s annoying, at least in our company several users find it annoying.

 

Any comments from Nutanix are welcome!

 

Regards,

Didi7

 

Userlevel 1
Badge +2

@Didi7  

I understand your concern and have tested the same in my lab on AOS 5.15 with AHV20170830.395. This indeed is a necessary feature and works well in Hyper-V and VMWare. As you have mentioned its specific to UEFI and LEGACY VMs doesn't show the behaviour.  It's because, to change the display resolution, legacy Graphics cards based on VGA standard exposed their helper routines via VGA BIOS. OS drivers would raise a BIOS to interrupt INT 10H for the respective VGA bios routine to be invoked, which would in turn call into the firmware helper for driving the card in a particular resolution.
With UEFI, there is no VGA. All UEFI-compliant cards provide GOP protocol handlers to drive the card accordingly for changing display resolution.
To fully implement dynamic resolution changing capabilities, the OS driver must be able to call into platform firmware (BIOS or UEFI) at runtime (using VGA or GOP). Note that in the absence of resolution change capability, the guest OS will have to inherit whatever resolution (and hence framebuffer size) the firmware had initially set for it while setting up the display device at boot.

Due to the reason mentioned above, you can only change the default boot resolution of your Windows VM from the UEFI firmware menu as described here https://portal.nutanix.com/page/documents/details/?targetId=AHV-Admin-Guide-v5_17%3Avmm-getting-familiar-with-uefi-firmware-c.html

We have an enhancement request in place for this and I am checking with engineering for more updates on that. I will keep you posted on this thread.

Userlevel 1
Badge +1

Hi Sudhir,

 

interesting! Well, other Hypervisors like Hyper-V and VMware have no display resolution change problems with UEFI-VMs under Windows Server 2016.

 

Lets see how Nutanix can fix that!

 

Regards,

Didi7

Reply