8

I have two windows vms, windows server 2012 and windows server 2008. Both use kvm and libvirt. I recently decided I wanted to increase my screen resolution options, which required changing from the default "cirrus" video card to the "vga" option. This worked like a charm for my windows server 2008 VM, giving me several resolution options from 800x600 up to 2560x1600. However, this doesn't work for windows server 2012.

Here's the code from my xml template pertaining to the video card:

<video> <model type='vga' vram='9216' heads='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video>

I suspect that this is a driver issue. I tried to figure out what drivers would be compatible with KVM's emulated VGA card, but all I found about the card was that it was a " dummy VGA card with Bochs VESA extensions" and googling that plus "drivers" turned up nothing useful.

In my windows 2008 vm, the driver is a "Standard VGA Graphics Adapter" which seems like window's generic driver and would explain why I didn't need to download anything new to get the vga card working for windows 2008. However, in windows 2012 the driver just shows up as the "Microsoft Basic Display Adapter" and attempted driver updates result in windows telling me that everything's up to date. Under this driver, I only get a resolution of 1024x768, which is even worse than it was with the cirrus card, which at least went to 1280x1024.

Based on this question, I understand the poor behavior with the VGA card to be a result of the basic display adapter's very basic capabilities: Stuck at low resolution: Monitor as well as display adaptor not recognized in Windows Server 2012

As far as I can tell, I need one of two things. A) a better driver, one that'll give better resolution support to the dummy card. B) a new dummy card with fancier capabilities (can KVM do this?)

One last possibility is that C) http://support.microsoft.com/kb/2855505 suggests this may be because my GPU doesn't support directx9 but I have no idea how to check on that.

Any help would be greatly appreciated.

SwampDragons
  • 111
  • 1
  • 5
  • to check directX you can run `dxdiags`. But frankly, why don't you move on to Spice? With the QXL driver installed, you can go to high resolutions if you need to. Another thing I don't get is why you would want high resolutions in a server system, when all you need the display for is installation, and after that it's RDP all the way. – dyasny Jan 21 '14 at 23:39
  • I think I finally figured out the part that I missed below. Try it out. – Michael Hampton Jul 03 '15 at 04:25

1 Answers1

10

Install the SPICE Guest Tools in your Windows guest to obtain (almost) all the various virtio drivers. (If it fails, install them from the virtio-win package instead.)

Then shut down the VM and reconfigure it so that it uses a SPICE channel and QXL video.

Windows guest video configuration

The corresponding XML is:

<controller type='virtio-serial' index='0'>
  <alias name='virtio-serial0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</controller>
<channel type='spicevmc'>
  <target type='virtio' name='com.redhat.spice.0'/>
  <alias name='channel0'/>
  <address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<video>
  <model type='qxl' ram='65536' vram='65536' heads='1'/>
  <alias name='video0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>

After you restart, go to Device Manager, select the Microsoft Basic Display Adapter and Update Driver. Point it at the latest QXL WDDM driver.

Though installing the driver will reset your resolution to 1024x768, you can then change your resolution and use the full Desktop Experience at any resolution you wish, up to 2560x1600.

Windows guest at high resolution with Desktop Experience

You'll even be able to do things you couldn't before with the VGA driver... like watch YouTube.

I need to turn down the volume though...

Michael Hampton
  • 237,123
  • 42
  • 477
  • 940
  • I finally got back to this project and I want to give your fix a shot, but I can't get the guest tools to install on Windows Server 2012. The Spice guest tools installer fails, telling me that I have an unsupported version of windows. Do you know of a workaround for this? also, what else do I need to do on the host side to get this qxl support working? – SwampDragons Apr 29 '14 at 18:24
  • When you try to install spice-guest-tools on windows server 2012, you have the message "unsupported window version" ! I don't understand how you did it ... – Bertaud Jun 06 '14 at 17:11
  • Good question. I don't have it in my notes, so I'll have to go play with it again and figure out what I did. – Michael Hampton Jun 06 '14 at 17:14
  • Did you retrieve your note ? ah ! ah ! ah ! – Bertaud Feb 19 '15 at 18:25
  • Ah, now I remember what I did. I had to get [a different QXL driver](http://people.redhat.com/~vrozenfe/qxlwddm/) as the old driver only works through 7/2008R2. I've also tested this and confirmed [it works on Windows 10](http://i.stack.imgur.com/M2UcA.jpg). – Michael Hampton Jul 03 '15 at 04:17
  • I tried qxlwddm-012 on windows server 2012 and nothing happens ! could you describe better the procedure ? I have not the option channel spice in virt-manager I tried also spice-guest-tools-0.100.exe but I didn't fing a qxl driver for win2012 – Bertaud Oct 18 '15 at 15:57