Bug 1707282 - Cannot install Redhat QXL controller in Windows Server 2016
Summary: Cannot install Redhat QXL controller in Windows Server 2016
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Virtualization Tools
Classification: Community
Component: virtio-win
Version: unspecified
Hardware: x86_64
OS: Windows
unspecified
urgent
Target Milestone: ---
Assignee: ybendito
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-05-07 08:01 UTC by Binarus
Modified: 2019-05-07 08:48 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-05-07 08:42:34 UTC
Embargoed:


Attachments (Terms of Use)

Description Binarus 2019-05-07 08:01:00 UTC
Description of problem:

On a freshly installed Windows Server 2016 Desktop Experience (i.e. not Core) (updated to the latest patches available at the time of this writing) running under QEMU-KVM, we can't install the Redhat QXL controller because the OS claims that the driver does not support that version of Windows.

Version-Release number of selected component (if applicable):

Host O/S: Debian stretch, updated to the latest patches available at the time of this writing; no custom-compiled software

Kernel:  4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux

KVM: from Kernel

QEMU: 2.8.1(Debian 1:2.8+dfsg-6+deb9u5)

Guest O/S: Windows Server 2016 (x64, English) Desktop Experience, updated to the latest patches available at the time of this writing

Virtio Drivers in the guest O/S: virtio-win-0.1.141 or virtio-win-0.1.164 (does not make a difference)

How reproducible:

Using the command line shown under "Steps to Reproduce", start a VM under QEMU-KVM and install Windows Server 2016 Desktop Experience in that VM. Log onto the VM either via Remote Desktop or via QNC and try to update the display adapter driver (which is Microsoft Basic Display adapter immediately after the installation of the guest O/S) to the Redhat QXL controller driver from the virtio-win ISO. Observe that the installation seems to start, but after a short time, Windows Server 2016 throws an error message claiming that the driver does not support that Windows version although you have explicitly chosen the driver from the "2K16" installation directory from the virtio-win ISO.

Steps to Reproduce:

1.
On a physical host running the Debian, Kernel, KVM and QEMU versions mentioned above, start a VM using the following command line:

/usr/bin/qemu-system-x86_64 \
-machine q35,accel=kvm \
-cpu host \
-smp cores=2,threads=2,sockets=1 \
-rtc base=localtime,clock=host,driftfix=none \
-bios /usr/share/ovmf/OVMF.fd \
-drive file=/vm-images/garak.qcow2,format=qcow2,if=virtio,cache=writeback,index=0 \
-drive file=/vm-images/garak.iso,index=2,media=cdrom \
-drive file=/vm-images/virtio.iso,index=3,media=cdrom \
-boot d \
-pidfile /root/qemu-kvm/qemu-garak.pid \
-m 16384 \
-k de \
-daemonize \
-usb \
-usbdevice "tablet" \
-vga std \
-name garak \
-device virtio-net-pci,vlan=0,mac=02:01:01:01:07:01 \
-net tap,vlan=0,name=garak,ifname=garak0,script=/etc/qemu-ifup,downscript=/etc/qemu-ifdown \
-vnc :7

where /vm-images/garak.qcow2 is a 100 GB file created by qemu-img in qcow2 format and serves as HDD of the VM, /vm-images/garak.iso is the ISO of the Windows Server 2016 Desktop Experience installation DVD, and /vm-images/virtio.iso is an ISO file containing the virtio-win drivers in one of the versions mentioned above.

2.
Connect to the VM with the help of a VNC client and install Windows Server 2016 Desktop experience in the VM.

3.
Apply all patches available to Windows Server 2016 Desktop Experience in the VM (using Windows Update).

4.
In the guest, open the Device Manager, expand its root node (if it isn't expanded yet), and expand "Display Adapters". Note that the display adapter currently is "Microsoft Basic Display Adapter".

5.
In the guest, right-click "Microsoft Basic Display Adapter" and choose "Update Driver Software ..." from the context menu. In the dialog which opens, click "Browse my computer for driver software". In the dialog which opens, click "Let me pick from a list of device drivers on my computer". In the dialog which opens, click "Have Disk ...". In the file selection dialog which opens, browse to the drive letter of the emulated CD/DVD drive containing the virtio-win drivers, then to the folder qxldod/2K16/amd64. Choose (i.e. double-click) qxldod.inf (this will close the file browser dialog), then click "OK" in the "Install From Disk" dialog (this will close that dialog). In the "Update Driver Software" dialog, click "Next". Confirm the "Update Driver Warning" dialog which will appear by clicking "Yes".

Actual results:

The driver installation seems to start, but after a moment, Windows throws an error message telling (among others): "The driver selected for this device does not support this version of Windows." In consequence, the driver installation fails.

Note that this happens although you explicitly have chosen the driver from the "2K16" folder of the virtio-win ISO / CD.

Expected results:

The Redhat QXL driver from the "2K16" folder of the virtio-win ISO / CD should install on Windows Server 2016 Desktop experience without any issues, thereby replacing the Microsoft Basic Display Adapter Driver.

Additional info:

If you need log files for further analysis, please provide detailed, step-by-step instructions of how to create them. Furthermore, please note that I am not using (and will not use, not even for testing) any sort of QEMU or KVM wrapper like virsh or libvirt. The command line and other instructions given above should be sufficient for precise reproduction of the problem.

For us, that problem is urgent because (for certain reasons we won't detail here) we have to administer a lot of such VMs via VNC (and not via Remote Desktop). Since the Microsoft Basic Display Adapter obviously limits the screen resolution to 800x600, this is big problem. We strongly suppose that the Redhat QXL driver provides more (higher) resolutions and therefore really would like to be able to install it in that VMs.

Comment 1 Binarus 2019-05-07 08:42:34 UTC
Sorry - seems to be my fault.

If I replace

-vga std

with

-vga qxl

the Redhat QXL driver installs without any issue in the Windows Server 2016 guest.

The reason why I didn't notice in the first place is the weird error message: It's not that the driver does not support the *version* of Windows, but the driver just does not support the *hardware*.

However, with the QXL driver, I am getting errors in the display (black rectangles on the desktop and so on), but that's a story for another bug report.

I think we can close this bug.

Comment 2 Victor Toso 2019-05-07 08:48:03 UTC
Hi,

> Host O/S: Debian stretch, updated to the latest patches available at the time of this writing; no custom-compiled software
> QEMU: 2.8.1(Debian 1:2.8+dfsg-6+deb9u5)

In the future, please open the bug upstream instead.

https://gitlab.freedesktop.org/spice/win32/qxl-wddm-dod


Note You need to log in before you can comment on or make changes to this bug.