Bug 895356
Summary: | [RFE] Spice: WDDM Display Only Driver for windows 10+ | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 8 | Reporter: | Shaolong Hu <shu> | ||||||
Component: | spice-qxl-wddm-dod | Assignee: | Default Assignee for SPICE Bugs <rh-spice-bugs> | ||||||
Status: | CLOSED ERRATA | QA Contact: | SPICE QE bug list <spice-qe-bugs> | ||||||
Severity: | urgent | Docs Contact: | |||||||
Priority: | urgent | ||||||||
Version: | --- | CC: | adam, ailan, alexander, apinnick, astepano, bertaudmarc, bitozoid, bjoern.teipel, bjoernv, bkozdemb, botsch, bugzilla, byount, ccopper, cfeller, cfergeau, colin.coe, dannieobbink, dblechte, deverre.sylv, devin, dfediuck, dgod.osa, dirk, dkelson, dmardones, dossow, dustin, ealcaniz, e.j.rietveld, fabrox, fade, fastcat, f_ella, fidencio, gchakkar, gilboad, glamb, howey.vernon, htaira, james.hogarth, jan.public, jcall, jfstepha, jingfeng.zhao, jsightle, jspanko, juzhang, knoel, kraxel, lersek, lijin, lindsay.mathieson, lodantas, louis, lpeer, lsurette, lzw19860818, maci, marcandre.lureau, martin, massi.ergosum, mh+redhat-bugzilla-2011, michael.ddek, michele, michen, mickrussom, mkalinin, mkenneth, mtessun, mwest, nardellu, nbensa, negativo17, ngompa13, pbatkowski, pcfe, pilux, ppostler, qzhang, raina, ratatoskr, rbalakri, rduda, ricky.schneberger, rmcswain, rob.verduijn, rpacheco, sharpwiner, shipatil, simon.neininger, spice-qe-bugs, spiderx, srevivo, stanislav.polasek, stefan.kirrmann, tmichett, ToddAndMargo, tony, tpelka, trichard, troels, tuksgig, uril, usurse, vanhoof, virt-maint, vrozenfe, ybendito, zhenfeng_cui | ||||||
Target Milestone: | rc | Keywords: | FutureFeature | ||||||
Target Release: | --- | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Whiteboard: | |||||||||
Fixed In Version: | spice-qxl-wddm-dod-0.18-1 | Doc Type: | Enhancement | ||||||
Doc Text: |
This release adds a new spice-qxl-wddm-dod package, containing a display-only-driver (DOD) for the QXL (virtual) device. It can be installed on Windows 10 virtual machines. This driver adds support for arbitrary resolution, multiple monitors, and client mouse mode.
|
Story Points: | --- | ||||||
Clone Of: | |||||||||
: | 1134733 1478905 (view as bug list) | Environment: | |||||||
Last Closed: | 2018-05-15 17:59:41 UTC | Type: | Bug | ||||||
Regression: | --- | Mount Type: | --- | ||||||
Documentation: | --- | CRM: | |||||||
Verified Versions: | Category: | --- | |||||||
oVirt Team: | Spice | RHEL 7.3 requirements from Atomic Host: | |||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||
Embargoed: | |||||||||
Bug Depends On: | |||||||||
Bug Blocks: | 815874, 1113520, 1134733, 1441102, 1465106, 1478905 | ||||||||
Attachments: |
|
Description
Shaolong Hu
2013-01-15 05:56:44 UTC
*** Bug 895362 has been marked as a duplicate of this bug. *** Alon, I know you've worked on qxl win drivers in the past, please fill in status / plans / reassign if needed. Shaolong, please open a new bug for the win8 s3 issue (+ assign to me) and I'll check out whenever we can do something about s3 even without qxl drivers. (In reply to comment #3) > Alon, I know you've worked on qxl win drivers in the past, please fill in > status / plans / reassign if needed. > > Shaolong, please open a new bug for the win8 s3 issue (+ assign to me) and > I'll check out whenever we can do something about s3 even without qxl > drivers. Shaolong, as comment #3, I'll reopen Bug 895362 for win8 s3 issue and assign to Gerd. We have started working on WDDM qxl driver (a must for W8+), which is to be written completely from scratch, as the driver model totally changed. Moving to Vadim, as he is the developer of Win8 qxl display-only driver. The RFE for Wndows components should be handled in RFEs of rhevm product. spice team is not working on the WDDM, removing "spice" from the whiteboard +1 +1 Looks like we can have it as tech-preview in 7.1. brewweb.devel.redhat.com doesn't resolve for me, even using google dns. Online dns tools can't find a record for it. (In reply to Lindsay Mathieson from comment #23) > brewweb.devel.redhat.com doesn't resolve for me, even using google dns. > Online dns tools can't find a record for it. I put it on public shares, under http://people.redhat.com/~vrozenfe/qxlwddm/qxlwddm-0.6.zip Please be advised that it is not official, completely untested code. Use it on your own risk. Cheers, Vadim. after upgrading to 0.6 the mouse stopped working, no cursor is visible. this is on win2k12 r2. sometimes when the system shuts down a cursor is visible and working for a second. test with qxlwddm-0.1-6 on win8-64 guest,guest can do S3 and resume correctly. package info: kernel-2.6.32-492.el6.x86_64 qemu-img-rhev-0.12.1.2-2.438.el6.x86_64 qxlwddm-0.1-6 (In reply to Marcel Wysocki from comment #28) > after upgrading to 0.6 the mouse stopped working, no cursor is visible. > this is on win2k12 r2. > sometimes when the system shuts down a cursor is visible and working for a > second. What is the qemu version? could you also check if there is any difference between qxl and vga mode by specifying "-global qxl-vga.revision=4" and then re-starting VM with revision=3 ? Thanks, Vadim. qemu-kvm-1.6.2-7.fc20.x86_64 i am using libvirt tho, so no idea how i would specify the other revision +1 After upgrading to 0.6 in a Windows 8.1 Pro, I had the same problem (no mouse)... Any news? (I'm using RHEV 3.2). (In reply to Leonardo Dantas from comment #34) > After upgrading to 0.6 in a Windows 8.1 Pro, I had the same problem (no > mouse)... > > Any news? (I'm using RHEV 3.2). Do you have it running over SPICE? If so, could you please disable vdagent and give it another shot? Thanks, Vadim. How can I disable vdagent in a RHEV environment? Other error in other guest: In a Windows 2012 R2 64 bits, the driver could not be installed. The errors are in this screenshots: http://postimg.org/image/jv4y0djvz (choice of driver) http://postimg.org/image/4axk9u9rj (error) "Driver not projected for this platform" (In reply to Leonardo Dantas from comment #36) > How can I disable vdagent in a RHEV environment? It's a Windows service. You can stop or disable it from the Service Control Manager. > > Other error in other guest: > > In a Windows 2012 R2 64 bits, the driver could not be installed. The errors > are in this screenshots: > > http://postimg.org/image/jv4y0djvz (choice of driver) > > http://postimg.org/image/4axk9u9rj (error) > > > "Driver not projected for this platform" You are trying to install a 64-bit version, from x64 sub-directory, right? Can you please post setupapi.dev.log file? Thanks, Vadim. After forcing the removal of the installed driver and install all updates from windows update, worked for me (windows 2012)! :) thanks! Any new version for test? (In reply to Leonardo Dantas from comment #38) > After forcing the removal of the installed driver and install all updates > from windows update, worked for me (windows 2012)! :) thanks! > > Any new version for test? Not at the moment, but there are several bugs that are waiting to be fixed asap. Best regards, Vadim. So this driver version 0.6-1 flips actually my entire display at 180 degrees and leaves mouse cursor traces behind. Am I the only one who has this issue ? I did start test it using the cloudbase windows eval image http://www.cloudbase.it/ws2012r2/ which does not come with any QXL driver. (In reply to bjoern from comment #45) > So this driver version 0.6-1 flips actually my entire display at 180 degrees > and leaves mouse cursor traces behind. Am I the only one who has this issue ? > I did start test it using the cloudbase windows eval image > http://www.cloudbase.it/ws2012r2/ which does not come with any QXL driver. Ah... You are not alone actually.. This version of qxl wddm driver did not work so well. Is it still under development ? Flipping at 180 degrees is something new to me. Never seen it before. Will try to figure out why it happens. Regarding to mouse cursor - do you have vdagent running on your system? If so, then it probably needs to be disable, because 0.6 doesn't work well with spice. We are trying to address spice compatibility issues in the following build. Vadim. Would it be useful to test the driver with Windows 10? (In reply to Lindsay Mathieson from comment #48) > Would it be useful to test the driver with Windows 10? Windows 10 is still in beta stage ,We will consider support it once windows 10 and windows server vnext is GA Mike Sorry but I think that is the wrong answer. Win8 escaped in October 2012. It's now Feb 2015. Respectfully, 2+ years to release a video driver is not acceptable. Are we to wait 2 more years for the Win10 driver? Truly (RHEV) supported Windows OS are now N-2 (Win7/Server 2008R2) I realize that writing drivers is far from trivial but RH needs to lift here. Win8 may not have had much take up but Server 2012 has. Not having decent console screen resolution in RHEV sucks. Other virtualization providers have the drivers ready for the product GA, or very shortly after. (In reply to Lindsay Mathieson from comment #48) > Would it be useful to test the driver with Windows 10? It should work on Win10. Tested it once to see that it can be installed without crash. However, the driver doesn't provide any Win10 specific functionally. Vadim. Just to add that the drivers Vadim released at the beginning of the month (at http://people.redhat.com/~vrozenfe/qxlwddm/qxlwddm-0.7.zip ) work fine on the Tech Preview of Windows 10 for me. No crashes or weird behaviour so far after a couple of hours of poking around. Well done! When can we expect an 'official' release do you think? I tried the 0.7 release with my Windows 8.1 VM, and on installation, the screen flashed a bunch (expected), but then windows told me the driver failed to start. The device manager shows "Windows has stopped this device because it has reported problems. (Code 43)". Oddly, however, there's nothing in the event log about it. I'd previously installed the 0.6 version and then uninstalled it after having problems with it. After rebooting, it shows the same error in Device Manager. Is there anything I can do to try to find more about what the error is to help fix it? QXL driver is not belongs to virtio-win component. In order to speed up the process ,Moving the bug to the rhevm product. Any concern,pls let me know. Thanks, Mike (In reply to Phil Armstrong from comment #52) > Just to add that the drivers Vadim released at the beginning of the month > (at http://people.redhat.com/~vrozenfe/qxlwddm/qxlwddm-0.7.zip ) work fine > on the Tech Preview of Windows 10 for me. No crashes or weird behaviour so > far after a couple of hours of poking around. > > Well done! When can we expect an 'official' release do you think? Technically we should be able to release more or less SPICE-compatible driver in next few mounts. But I have no idea about which team and when will WHQL test the driver. (In reply to Matthew Gabeler-Lee from comment #53) > I tried the 0.7 release with my Windows 8.1 VM, and on installation, the > screen flashed a bunch (expected), but then windows told me the driver > failed to start. The device manager shows "Windows has stopped this device > because it has reported problems. (Code 43)". Oddly, however, there's > nothing in the event log about it. > > I'd previously installed the 0.6 version and then uninstalled it after > having problems with it. > > After rebooting, it shows the same error in Device Manager. > > Is there anything I can do to try to find more about what the error is to > help fix it? Can you try completely removing (including the binary) the previous version of QXL driver, run HW scan (you should see Microsoft BDD driver installed after completion of this stage), and then update BDD driver with the new version of QXL DOD driver? Thanks, Vadim. Dear Vadim i can confirm installation fails on a fresh install of Windows 8.1 Pro 64. (qxl-wddm 0.7) On loading driver system return code: 43 failing to install driver. Same issue on Windows Server 2012. :( No hardware logs was present on event manager. Alessandro (In reply to Vadim Rozenfeld from comment #56) > (In reply to Matthew Gabeler-Lee from comment #53) > > Is there anything I can do to try to find more about what the error is to > > help fix it? > > Can you try completely removing (including the binary) the previous version > of QXL driver, run HW scan (you should see Microsoft BDD driver installed > after completion of this stage), and then update BDD driver with the new > version of QXL DOD driver? OK ... did the uninstall from device manager, ran the hw scan as you noted, and confirmed the presence of the "Microsoft Basic Display Adapter". I rummaged about in the windows directory to confirm there weren't any leftovers hanging around. There was a copy of the current version of qxldod in %system32%\drivers and another copy in the lastgood.tmp folder, I deleted both. I also noticed an older copy of the qxl driver (probably the 0.6 one?) that was not the dod, but just qxl.sys and qxldd.sys. Wiped those too. Rebooted after that to try to ensure a clean slate. Then I tried to re-install the drivers using the right-click update drivers, pointing to the unzipped qxlwddm-0.7\Win8\x64 folder. Unfortunately I got the same error as before -- display flashed, temporarily showing aero-ish window decorations, and the driver update wizard showed the Code 43 error again. Might this have to do with what version of seabios/vgabios qemu is using? Or the amount of video ram assigned? libvirt says there is 64MB assigned. My vm is x64, if that matters. Is there any way to enable driver debug logging (environment variables, etc.) to dig into this? (In reply to Alessandro Nardecchia from comment #57) > Dear Vadim i can confirm installation fails on a fresh install of Windows > 8.1 Pro 64. (qxl-wddm 0.7) > > On loading driver system return code: 43 failing to install driver. > Hello Alessandro, Technically, qxldod installation process is absolutely the same as for kmdod sample, written by Microsoft. It's what they say about kmdod installation (https://code.msdn.microsoft.com/windowshardware/Kernel-mode-display-only-49adea58) : "If the current display driver is not a WDDM 1.2 compliant driver, the sample driver might fail to install, with error code 43 displayed. The KMDOD driver is actually installed, but it cannot be started. The workaround for this issue is to switch to the Microsoft Basic Display Adapter Driver before installing the KMDOD sample driver, or simply to reboot your system after installing the KMDOD sample." If it still doesn't work for you, please post the following information: - qemu and spice versions, - qemu command line, - output from "info pci" command. Thanks, Vadim. > Same issue on Windows Server 2012. :( > > No hardware logs was present on event manager. > > Alessandro Background context: I'm using Debian ... (In reply to Vadim Rozenfeld from comment #59) > or simply to reboot your system after installing This doesn't do anything for me, the QXL driver still shows in device manager with the yellow triangle and the Code 43 error. > If it still doesn't work for you, please post the following information: > - qemu and spice versions, qemu-system-x86:amd64/testing 1:2.1+dfsg-11 libspice-server1:amd64/testing 0.12.5-1+b1 Possibly also important: seabios:all/testing 1.7.5-1 libvirt-daemon-system:amd64/testing 1.2.9-9 (the rest of libvirt is the same version, naturally) > - qemu command line, This one is a doozy due to libvirt ... I've anonymized (xx or xyzzy) a few values out of random paranoia ... qemu-system-x86_64 -enable-kvm -name win8real -S -machine pc-1.1,accel=kvm,usb=off -cpu Westmere,+rdtscp,+pdpe1gb,+pdcm,+xtpr,+tm2,+est,+vmx,+ds_cpl,+monitor,+dtes64,+pclmuldq,+pbe,+tm,+ht,+ss,+acpi,+ds,+vme -m 2048 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/xyzzy.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-shutdown -boot order=cda,menu=on,strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 -drive file=/xx/vms/xyzzy/xyzzy.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=writeback -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0,id=virtio-disk0 -drive if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=24,id=hostnet0,vhost=on,vhostfd=25 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=xx:xx:xx:xx:xx:xx,bus=pci.0,addr=0x7 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -chardev socket,id=charchannel1,path=/var/lib/libvirt/qemu/channel/target/win8real.org.qemu.guest_agent.0,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=org.qemu.guest_agent.0 -spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x3 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1 -chardev spicevmc,id=charredir2,name=usbredir -device usb-redir,chardev=charredir2,id=redir2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -msg timestamp=on > - output from "info pci" command. Sorry if I'm being dumb, but where do I issue this? Windows 8.1 at least doesn't have an "info" command at the command line. Does this go to the qemu console? If so, how do I issue that through libvirt? Just for giggles, I tried running "net start qxldod" from an elevated command prompt, and that said that the service started, but nothing changed in device manager, including after another reboot. I also tried disabling & re-enabling the device, and the re-enable caused the same screen flash as the initial install (including the momentary Aero-ish view), but didn't clear the error. (In reply to Matthew Gabeler-Lee from comment #58) (In reply to Matthew Gabeler-Lee from comment #58) > (In reply to Vadim Rozenfeld from comment #56) > > (In reply to Matthew Gabeler-Lee from comment #53) > > > Is there anything I can do to try to find more about what the error is to > > > help fix it? > > > > Can you try completely removing (including the binary) the previous version > > of QXL driver, run HW scan (you should see Microsoft BDD driver installed > > after completion of this stage), and then update BDD driver with the new > > version of QXL DOD driver? > > OK ... did the uninstall from device manager, ran the hw scan as you noted, > and confirmed the presence of the "Microsoft Basic Display Adapter". I > rummaged about in the windows directory to confirm there weren't any > leftovers hanging around. There was a copy of the current version of qxldod > in %system32%\drivers and another copy in the lastgood.tmp folder, I deleted > both. > Microsoft has "Delay the diver software for device" check-box to "Confirm Device Uninstall" page for doing that automatically :) > I also noticed an older copy of the qxl driver (probably the 0.6 one?) that > was not the dod, but just qxl.sys and qxldd.sys. Wiped those too. > They are both belong to the old, XP style, qxl display driver which cannot be installed on Windows 8 or later OSes > Rebooted after that to try to ensure a clean slate. > > Then I tried to re-install the drivers using the right-click update drivers, > pointing to the unzipped qxlwddm-0.7\Win8\x64 folder. Unfortunately I got > the same error as before -- display flashed, temporarily showing aero-ish > window decorations, and the driver update wizard showed the Code 43 error > again. > > Might this have to do with what version of seabios/vgabios qemu is using? > Or the amount of video ram assigned? libvirt says there is 64MB assigned. > My vm is x64, if that matters. Is there any way to enable driver debug > logging (environment variables, etc.) to dig into this? First of all please post the same information as I mentioned in the previous comment - qemu & spice versions, qemu command line, and output from "info pci" Regarding to logs, you can rebuild the driver with log option enabled. It will be easier if you can reproduce the problem on 32-bit OS (say Win8 or Win8.1), otherwise you need do deal with all that signing stuff, but it is not a bug problem if you know what to do. In any case, if you really want to dig into this problem and need some help - don't hesitate to ping me by email vrozenfe_at_redhat_dot_com. Best regards, Vadim. (In reply to Matthew Gabeler-Lee from comment #60) > Background context: I'm using Debian ... > > (In reply to Vadim Rozenfeld from comment #59) > > or simply to reboot your system after installing > > This doesn't do anything for me, the QXL driver still shows in device > manager with the yellow triangle and the Code 43 error. > > > If it still doesn't work for you, please post the following information: > > - qemu and spice versions, > qemu-system-x86:amd64/testing 1:2.1+dfsg-11 > libspice-server1:amd64/testing 0.12.5-1+b1 > > Possibly also important: > seabios:all/testing 1.7.5-1 > libvirt-daemon-system:amd64/testing 1.2.9-9 > (the rest of libvirt is the same version, naturally) > > > - qemu command line, > This one is a doozy due to libvirt ... I've anonymized (xx or xyzzy) a few > values out of random paranoia ... > > qemu-system-x86_64 -enable-kvm -name win8real -S -machine > pc-1.1,accel=kvm,usb=off -cpu > Westmere,+rdtscp,+pdpe1gb,+pdcm,+xtpr,+tm2,+est,+vmx,+ds_cpl,+monitor, > +dtes64,+pclmuldq,+pbe,+tm,+ht,+ss,+acpi,+ds,+vme -m 2048 -realtime > mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid > xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -no-user-config -nodefaults -chardev > socket,id=charmonitor,path=/var/lib/libvirt/qemu/xyzzy.monitor,server,nowait > -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime > -no-shutdown -boot order=cda,menu=on,strict=on -device > piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device > virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 -drive > file=/xx/vms/xyzzy/xyzzy.qcow2,if=none,id=drive-virtio-disk0,format=qcow2, > cache=writeback -device > virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk0, > id=virtio-disk0 -drive if=none,id=drive-ide0-1-0,readonly=on,format=raw > -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev > tap,fd=24,id=hostnet0,vhost=on,vhostfd=25 -device > virtio-net-pci,netdev=hostnet0,id=net0,mac=xx:xx:xx:xx:xx:xx,bus=pci.0, > addr=0x7 -chardev spicevmc,id=charchannel0,name=vdagent -device > virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0, > name=com.redhat.spice.0 -chardev > socket,id=charchannel1,path=/var/lib/libvirt/qemu/channel/target/win8real. > org.qemu.guest_agent.0,server,nowait -device > virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1, > name=org.qemu.guest_agent.0 -spice > port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on -device > qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 > -device intel-hda,id=sound0,bus=pci.0,addr=0x3 -device > hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev > spicevmc,id=charredir0,name=usbredir -device > usb-redir,chardev=charredir0,id=redir0 -chardev > spicevmc,id=charredir1,name=usbredir -device > usb-redir,chardev=charredir1,id=redir1 -chardev > spicevmc,id=charredir2,name=usbredir -device > usb-redir,chardev=charredir2,id=redir2 -device > virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 -msg timestamp=on > > > - output from "info pci" command. > Sorry if I'm being dumb, but where do I issue this? Windows 8.1 at least > doesn't have an "info" command at the command line. Does this go to the > qemu console? If so, how do I issue that through libvirt? From the qemu monitor. IIUC, you have qemu monitor rendered through -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/xyzzy.monitor You must be able to connect to that socket with telnet, netcat, or whatever you like more and issue "info pci" command to see pci resources assigned to devices. > Just for giggles, I tried running "net start qxldod" from an elevated > command prompt, and that said that the service started, but nothing changed > in device manager, including after another reboot. > > I also tried disabling & re-enabling the device, and the re-enable caused > the same screen flash as the initial install (including the momentary > Aero-ish view), but didn't clear the error. (In reply to Vadim Rozenfeld from comment #61) > First of all please post the same information as I mentioned in the previous > comment - qemu & spice versions, qemu command line, and output from "info > pci" Done above, info pci is here now that I figured out how to do it: $ virsh -c qemu:///system qemu-monitor-command --domain xyzzy --hmp "info pci" Bus 0, device 0, function 0: Host bridge: PCI device 8086:1237 id "" Bus 0, device 1, function 0: ISA bridge: PCI device 8086:7000 id "" Bus 0, device 1, function 1: IDE controller: PCI device 8086:7010 BAR4: I/O at 0xc0e0 [0xc0ef]. id "" Bus 0, device 1, function 2: USB controller: PCI device 8086:7020 IRQ 11. BAR4: I/O at 0xc040 [0xc05f]. id "usb" Bus 0, device 1, function 3: Bridge: PCI device 8086:7113 IRQ 9. id "" Bus 0, device 2, function 0: VGA controller: PCI device 1b36:0100 IRQ 5. BAR0: 32 bit memory at 0xf4000000 [0xf7ffffff]. BAR1: 32 bit memory at 0xf8000000 [0xfbffffff]. BAR2: 32 bit memory at 0xfc034000 [0xfc035fff]. BAR3: I/O at 0xc060 [0xc07f]. BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe]. id "video0" Bus 0, device 3, function 0: Audio controller: PCI device 8086:2668 IRQ 5. BAR0: 32 bit memory at 0xfc030000 [0xfc033fff]. id "sound0" Bus 0, device 4, function 0: Class 1920: PCI device 1af4:1003 IRQ 0. BAR0: I/O at 0xc080 [0xc09f]. BAR1: 32 bit memory at 0xfc036000 [0xfc036fff]. id "virtio-serial0" Bus 0, device 5, function 0: SCSI controller: PCI device 1af4:1001 IRQ 0. BAR0: I/O at 0xc000 [0xc03f]. BAR1: 32 bit memory at 0xfc037000 [0xfc037fff]. id "virtio-disk0" Bus 0, device 6, function 0: Class 0255: PCI device 1af4:1002 IRQ 5. BAR0: I/O at 0xc0a0 [0xc0bf]. id "balloon0" Bus 0, device 7, function 0: Ethernet controller: PCI device 1af4:1000 IRQ 0. BAR0: I/O at 0xc0c0 [0xc0df]. BAR1: 32 bit memory at 0xfc038000 [0xfc038fff]. BAR6: 32 bit memory at 0xffffffffffffffff [0x0001fffe]. id "net0" > Regarding to logs, you can rebuild the driver with log option enabled. It > will be easier if you can reproduce the problem on 32-bit OS (say Win8 or > Win8.1), > otherwise you need do deal with all that signing stuff, but it is not a bug > problem if you know what to do. Sadly I don't have a windows development environment around any more, and I don't see myself having the free time to set one up in the immediate future. Can the code at least be built with the free versions of VS (used to be called Express, I guess it's Community now)? I don't have a license key or an install image for anything other than Windows 8 x64, so if I do go this route I guess I'll have to sort out the fake signing stuff. It looks like there's info on that on the KMDOD sample page. If you / someone else trust-worthy can build a version with the logging enabled, the steps for allowing the test signed driver to run look straight forward enough I should be able to install it and collect the log data. What is the best place to download this thing for testing? (In reply to Matthew Gabeler-Lee from comment #63) > (In reply to Vadim Rozenfeld from comment #61) > > First of all please post the same information as I mentioned in the previous > > comment - qemu & spice versions, qemu command line, and output from "info > > pci" > > Done above, info pci is here now that I figured out how to do it: > $ virsh -c qemu:///system qemu-monitor-command --domain xyzzy --hmp "info > pci" > Bus 0, device 0, function 0: > Host bridge: PCI device 8086:1237 > id "" > Bus 0, device 1, function 0: > ISA bridge: PCI device 8086:7000 > id "" > Bus 0, device 1, function 1: > IDE controller: PCI device 8086:7010 > BAR4: I/O at 0xc0e0 [0xc0ef]. > id "" > Bus 0, device 1, function 2: > USB controller: PCI device 8086:7020 > IRQ 11. > BAR4: I/O at 0xc040 [0xc05f]. > id "usb" > Bus 0, device 1, function 3: > Bridge: PCI device 8086:7113 > IRQ 9. > id "" > Bus 0, device 2, function 0: > VGA controller: PCI device 1b36:0100 > IRQ 5. > BAR0: 32 bit memory at 0xf4000000 [0xf7ffffff]. > BAR1: 32 bit memory at 0xf8000000 [0xfbffffff]. > BAR2: 32 bit memory at 0xfc034000 [0xfc035fff]. > BAR3: I/O at 0xc060 [0xc07f]. > BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe]. > id "video0" > Bus 0, device 3, function 0: > Audio controller: PCI device 8086:2668 > IRQ 5. > BAR0: 32 bit memory at 0xfc030000 [0xfc033fff]. > id "sound0" > Bus 0, device 4, function 0: > Class 1920: PCI device 1af4:1003 > IRQ 0. > BAR0: I/O at 0xc080 [0xc09f]. > BAR1: 32 bit memory at 0xfc036000 [0xfc036fff]. > id "virtio-serial0" > Bus 0, device 5, function 0: > SCSI controller: PCI device 1af4:1001 > IRQ 0. > BAR0: I/O at 0xc000 [0xc03f]. > BAR1: 32 bit memory at 0xfc037000 [0xfc037fff]. > id "virtio-disk0" > Bus 0, device 6, function 0: > Class 0255: PCI device 1af4:1002 > IRQ 5. > BAR0: I/O at 0xc0a0 [0xc0bf]. > id "balloon0" > Bus 0, device 7, function 0: > Ethernet controller: PCI device 1af4:1000 > IRQ 0. > BAR0: I/O at 0xc0c0 [0xc0df]. > BAR1: 32 bit memory at 0xfc038000 [0xfc038fff]. > BAR6: 32 bit memory at 0xffffffffffffffff [0x0001fffe]. > id "net0" > Thanks, Everything looks good here. > > > Regarding to logs, you can rebuild the driver with log option enabled. It > > will be easier if you can reproduce the problem on 32-bit OS (say Win8 or > > Win8.1), > > otherwise you need do deal with all that signing stuff, but it is not a bug > > problem if you know what to do. > > Sadly I don't have a windows development environment around any more, and I > don't see myself having the free time to set one up in the immediate future. > Can the code at least be built with the free versions of VS (used to be > called Express, I guess it's Community now)? You will need WDK 8.1 & VS 2013. Can get it for free visiting the following link https://msdn.microsoft.com/en-us/windows/hardware/gg454513.aspx > > I don't have a license key or an install image for anything other than > Windows 8 x64, so if I do go this route I guess I'll have to sort out the > fake signing stuff. It looks like there's info on that on the KMDOD sample > page. > > If you / someone else trust-worthy can build a version with the logging > enabled, the steps for allowing the test signed driver to run look straight > forward enough I should be able to install it and collect the log data. I will check what I can do. (In reply to Todd from comment #64) > What is the best place to download this thing for testing? binaries: http://people.redhat.com/~vrozenfe/qxlwddm/ code: https://github.com/vrozenfe/qxl-dod Created attachment 997351 [details]
code43
Rats! I am also getting code 43 when trying to install qxlwddm-0.7 into W8.1 x64 in place of "Microsoft Basic Display Adapter". I will attach a screen shot.
Just some feedback from personal experience. The 0.7 driver on Windows 8.1 x64 was not installing for me at all; the screen would flash a second and then switch to black, leaving no choice but to reboot. The machine did not hang though. After reboot, the driver was not installed. Today, after applying nearly 2gb of Windows updates and rebooting, I found the driver properly installed on boot. Performance is far from the Windows 7 driver I've been using so far; it feels a bit sluggish. (In reply to Vadim Rozenfeld from comment #59) > (In reply to Alessandro Nardecchia from comment #57) > > Dear Vadim i can confirm installation fails on a fresh install of Windows > > 8.1 Pro 64. (qxl-wddm 0.7) > > > > On loading driver system return code: 43 failing to install driver. > > > > Hello Alessandro, > Technically, qxldod installation process is absolutely the same as for kmdod > sample, written by Microsoft. > It's what they say about kmdod installation > (https://code.msdn.microsoft.com/windowshardware/Kernel-mode-display-only- > 49adea58) : > > "If the current display driver is not a WDDM 1.2 compliant driver, the > sample driver might fail to install, with error code 43 displayed. The KMDOD > driver is actually installed, but it cannot be started. The workaround for > this issue is to switch to the Microsoft Basic Display Adapter Driver before > installing the KMDOD sample driver, or simply to reboot your system after > installing the KMDOD sample." > > If it still doesn't work for you, please post the following information: > - qemu and spice versions, > - qemu command line, > - output from "info pci" command. > > Thanks, > Vadim. > > > Same issue on Windows Server 2012. :( > > > > No hardware logs was present on event manager. > > > > Alessandro Tried Windows TESTSIGNING mode ON 1) Removed all previous drivers. 2) Successfully installed base Microsoft display adapter. 3) Update with qxl driver but same issue ( WTF? :D ) code 43. Even tried with all windows updates... same result. :( My system. Ubuntu 14.04 server: (Kernel: 3.13.0-46-generic ) QEMU: QEMU emulator version 2.0.0 (Debian 2.0.0+dfsg-2ubuntu1.10) QEMU COMMAND """ qemu-system-x86_64 -enable-kvm -name PC-test_11 -S -machine pc-1.1,accel=kvm,usb=off -m 2048 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid bc9e0525-f4d8-4d50-9317-ffcb42b0b4df -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/PC-test_11.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-shutdown -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x8.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x8 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x8.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x8.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/opt/semplice/storage/user/hdd_test_55_11.vdi,if=none,id=drive-ide0-0-0,format=qcow2,cache=none,aio=native -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=24,id=hostnet0 -device e1000,netdev=hostnet0,id=net0,mac=00:16:3e:70:17:50,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -spice port=6007,addr=0.0.0.0,image-compression=off,playback-compression=off,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0,bus=usb.0,port=3 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1,bus=usb.0,port=4 -chardev spicevmc,id=charredir2,name=usbredir -device usb-redir,chardev=charredir2,id=redir2,bus=usb.0,port=5 -chardev spicevmc,id=charredir3,name=usbredir -device usb-redir,chardev=charredir3,id=redir3,bus=usb.0,port=6 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 """ Spice Server Version: 0.12.4-0nocelt2 Info PCI: """ Bus 0, device 0, function 0: Host bridge: PCI device 8086:1237 id "" Bus 0, device 1, function 0: ISA bridge: PCI device 8086:7000 id "" Bus 0, device 1, function 1: IDE controller: PCI device 8086:7010 BAR4: I/O at 0xc100 [0xc10f]. id "" Bus 0, device 1, function 3: Bridge: PCI device 8086:7113 IRQ 9. id "" Bus 0, device 2, function 0: VGA controller: PCI device 1b36:0100 IRQ 11. BAR0: 32 bit memory at 0xf4000000 [0xf7ffffff]. BAR1: 32 bit memory at 0xf8000000 [0xfbffffff]. BAR2: 32 bit memory at 0xfc054000 [0xfc055fff]. BAR3: I/O at 0xc040 [0xc05f]. BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe]. id "video0" Bus 0, device 3, function 0: Ethernet controller: PCI device 8086:100e IRQ 10. BAR0: 32 bit memory at 0xfc000000 [0xfc01ffff]. BAR1: I/O at 0xc000 [0xc03f]. BAR6: 32 bit memory at 0xffffffffffffffff [0x0001fffe]. id "net0" Bus 0, device 4, function 0: Audio controller: PCI device 8086:2668 IRQ 10. BAR0: 32 bit memory at 0xfc050000 [0xfc053fff]. id "sound0" Bus 0, device 5, function 0: Class 1920: PCI device 1af4:1003 IRQ 0. BAR0: I/O at 0xc060 [0xc07f]. BAR1: 32 bit memory at 0xfc056000 [0xfc056fff]. id "virtio-serial0" Bus 0, device 6, function 0: Class 0255: PCI device 1af4:1002 IRQ 11. BAR0: I/O at 0xc080 [0xc09f]. id "balloon0" Bus 0, device 8, function 0: USB controller: PCI device 8086:2934 IRQ 10. BAR4: I/O at 0xc0a0 [0xc0bf]. id "" Bus 0, device 8, function 1: USB controller: PCI device 8086:2935 IRQ 5. BAR4: I/O at 0xc0c0 [0xc0df]. id "" Bus 0, device 8, function 2: USB controller: PCI device 8086:2936 IRQ 11. BAR4: I/O at 0xc0e0 [0xc0ff]. id "" Bus 0, device 8, function 7: USB controller: PCI device 8086:293a IRQ 10. BAR0: 32 bit memory at 0xfc057000 [0xfc057fff]. id "usb" """ Thanks for help ;) Hello, I am newbie and would like to check the driver on my ws2012. Could you describe how to install the driver. I tried to change the driver of the "microsoft basic display adapter" in the Device Manager but I think that is not the correct procedure. Thank you, Hello again, I tried this from the Windows Powershell: pnputil -i -a qxldod.inf No errors ! but I don't see in the device manager the consequences. I shutdowned ws2012, I changed cirrus driver to qxl driver and vnc to spice. I restarted ws2012: unable to read from monitor All, I can confirm that the driver works on two of my Windows 8.1 x64 VMs (centos 6.5 qemu-kvm). However there are several things to mention: The driver that works is http://people.redhat.com/vrozenfe/qxlwddm/qxlwddm-0.6.zip qxlwddm-0.7 did NOT work for me. Steps: Started the VM with Display VNC and video VGA. Installed the driver with command: pnputil -i -a qxldod.inf Shut down the VM and configured Display SPICE and video QXL Restarted the VM and updated driver for Microsoft Basic Display Adapter with qxldod.inf Worked perfect on one VM. On the other PC driver installation also worked but the available display resolutions were very limited. I checked the section 'details' of 'QXL KMDOD Properties' and saw that Property Hardware Ids showed entry: PCI\VEN_1B36&DEV_0100&SUBSYS_11001AF4&REV_03 on the other VM it was PCI\VEN_1B36&DEV_0100&SUBSYS_11001AF4&REV_04 So I again restarted the VM with Display VNC and video VGA, enabled display of hidden devices via cmd: Set devmgr_show_nonpresent_devices=1 Devmgmt.msc Show hidden devices Uninstalled the previous driver completely Removed it from the driver store, see https://technet.microsoft.com/en-us/library/cc730875.aspx Reinstalled the same driver and voila all resolutions are available now. I guess the cause for the issue was that I initially edited the xml of the VM with libvirt and inserted <model type='qxl' ram='65536' vram='18432' heads='1' revision='4'/> Hope this helps! Martin (In reply to Martin from comment #72) > All, > I can confirm that the driver works on two of my Windows 8.1 x64 VMs (centos > 6.5 qemu-kvm). However there are several things to mention: > > The driver that works is > http://people.redhat.com/vrozenfe/qxlwddm/qxlwddm-0.6.zip > qxlwddm-0.7 did NOT work for me. Steps: > > Started the VM with Display VNC and video VGA. > Installed the driver with command: pnputil -i -a qxldod.inf > Shut down the VM and configured Display SPICE and video QXL > Restarted the VM and updated driver for Microsoft Basic Display Adapter with > qxldod.inf > > Worked perfect on one VM. On the other PC driver installation also worked > but the available display resolutions were very limited. I checked the > section 'details' of 'QXL KMDOD Properties' and saw that Property Hardware > Ids showed entry: > PCI\VEN_1B36&DEV_0100&SUBSYS_11001AF4&REV_03 > on the other VM it was > PCI\VEN_1B36&DEV_0100&SUBSYS_11001AF4&REV_04 > Thank you, Martin. Juts let me put my 2 cents in. Revision id is a very important parameter for qxldod. Technically, there are two different drivers combined into the same binary. One of them (VGA-Mode) utilizes the standard VGA interface - Int10 BIOS call, while the other one (QXL-mode) built on top of QXL interface. It's way the supported resolutions list can (and probably will) be different, depending on in which mode the driver is running. Changing Revision Id is the way to switch between these two modes - rev_04 activates QXL mode, while rev_03 switches it back to VGA mode. Switch can be done with the following parameter "-global qxl-vga.revision=x", where x can be 3 or 4. Please, be advised to do the following things: - reset the current display resolution to 1024x768; - shutdown the VM; - change the revision id; - start VM. at this point we can see a black screen instead of the normal Windows GUI. If it happens - go to the qemu system monitor and initiate the system restart by executing "system_reset" command. One more thing - we do use this driver a lot mostly for WHQL testing purpose, but now we started to integrate it with spice. And usually we don't see any installation problems, BUT - we use it for VMs running on top of RHEL7.1. I personally, do all my development and testing using more or less recent upstream qemu/qemu-kvm. So, we can have all kind of backward compatibility problems. Being honest, I'm just not sure we will have enough time to address all of them. Best regards, Vadim. > So I again restarted the VM with Display VNC and video VGA, enabled display > of hidden devices via cmd: > Set devmgr_show_nonpresent_devices=1 > Devmgmt.msc > Show hidden devices > > Uninstalled the previous driver completely > Removed it from the driver store, see > https://technet.microsoft.com/en-us/library/cc730875.aspx > > Reinstalled the same driver and voila all resolutions are available now. I > guess the cause for the issue was that I initially edited the xml of the VM > with libvirt and inserted <model type='qxl' ram='65536' vram='18432' > heads='1' revision='4'/> > > Hope this helps! > Martin Moving it back to the RFEs component, and changed the title of this RFE, as it is focused on the WDDM DOD only. Vadim, thank you, very helpful learning something new every day. As I really hate the Gnome version of Centos 7 I guess that have to wait for centos 7.1 to be able to use qxlwddm-0.7.zip... Anyway I also assume that it does NOT make sense with qxlwddm-0.6 to tinker around with multi monitor setup. Right? For Windows versions <8 or <2012 this works perfect if I perform the following steps, Centos 6.5 (maybe this helps others): 1. Update qxl driver at the Windows VM 2. Copy vdagent.exe and vdservice.exe to a directory on the client PC 3. Install vdiservice from this directory (command line) vdservice install net start vdservice Uninstall: net stop vdservice + vdservice uninstall 3. Add a device 'channel' to the VM Device type: spicevmc Target type: virtio Target name: com.redhat.spice.0 4. Start guest and install virtio-serial vioser.inf 5. Add a secondary device Video in virt manager type QXL 6. Start guest with sudo virsh guest name 7. Open guest with sudo virt-viewer guest name 8. Activate secondary monitor in Windows, extend desktop and switch to fullscreen mode F11 Martin (In reply to Martin from comment #76) > Vadim, > thank you, very helpful learning something new every day. As I really hate > the Gnome version of Centos 7 I guess that have to wait for centos 7.1 to be > able to use qxlwddm-0.7.zip... > > Anyway I also assume that it does NOT make sense with qxlwddm-0.6 to tinker > around with multi monitor setup. Right? > > For Windows versions <8 or <2012 this works perfect if I perform the > following steps, Centos 6.5 (maybe this helps others): > > 1. Update qxl driver at the Windows VM > 2. Copy vdagent.exe and vdservice.exe to a directory on the client PC > 3. Install vdiservice from this directory (command line) > vdservice install > net start vdservice > > Uninstall: net stop vdservice + vdservice uninstall > > 3. Add a device 'channel' to the VM > Device type: spicevmc > Target type: virtio > Target name: com.redhat.spice.0 > > 4. Start guest and install virtio-serial vioser.inf > > 5. Add a secondary device Video in virt manager type QXL > 6. Start guest with sudo virsh guest name > 7. Open guest with sudo virt-viewer guest name > 8. Activate secondary monitor in Windows, extend desktop and switch to > fullscreen mode F11 > > Martin Do you mean you are trying to use qxl wddm driver on windows 7? qxl on http://people.redhat.com/vrozenfe/qxlwddm/qxlwddm-0.6.zip seemed can't install on windows 7 . No, for OSes < WIN 8 I meant the older - I guess XPDM driver qxldd, NOT the WDDM driver. I thought these instructions could be helpful for others. (In reply to yxu from comment #77) > (In reply to Martin from comment #76) > > Vadim, > > thank you, very helpful learning something new every day. As I really hate > > the Gnome version of Centos 7 I guess that have to wait for centos 7.1 to be > > able to use qxlwddm-0.7.zip... > > > > Anyway I also assume that it does NOT make sense with qxlwddm-0.6 to tinker > > around with multi monitor setup. Right? Right, qxlwddm-0.6 doesn't support multi-monitor configuration. Try qxlwddm-0.7 instead, it should be fine. > > > > For Windows versions <8 or <2012 this works perfect if I perform the > > following steps, Centos 6.5 (maybe this helps others): > > > > 1. Update qxl driver at the Windows VM > > 2. Copy vdagent.exe and vdservice.exe to a directory on the client PC > > 3. Install vdiservice from this directory (command line) > > vdservice install > > net start vdservice > > > > Uninstall: net stop vdservice + vdservice uninstall > > > > 3. Add a device 'channel' to the VM > > Device type: spicevmc > > Target type: virtio > > Target name: com.redhat.spice.0 > > > > 4. Start guest and install virtio-serial vioser.inf > > > > 5. Add a secondary device Video in virt manager type QXL > > 6. Start guest with sudo virsh guest name > > 7. Open guest with sudo virt-viewer guest name > > 8. Activate secondary monitor in Windows, extend desktop and switch to > > fullscreen mode F11 > > > > Martin > It also should work with qxlwddm-0.7, except for arbitrary resolutions (re-sizing) which needs some changes in vdagent code to work properly. Vadim. > Do you mean you are trying to use qxl wddm driver on windows 7? > > qxl on http://people.redhat.com/vrozenfe/qxlwddm/qxlwddm-0.6.zip seemed > can't install on windows 7 . Vadim, thank you, again very helpful. As I have learned that it doesn't make sense to setup qxlwddm-0.7 on rockstable workhorse boxes with Centos 6.x could we, as a conclusion say that at least Centos 7 or RHEL 7 is required for qxlwddm-0.7? Martin (In reply to Vadim Rozenfeld from comment #79) > (In reply to yxu from comment #77) > > (In reply to Martin from comment #76) > > > Vadim, > > > thank you, very helpful learning something new every day. As I really hate > > > the Gnome version of Centos 7 I guess that have to wait for centos 7.1 to be > > > able to use qxlwddm-0.7.zip... > > > > > > Anyway I also assume that it does NOT make sense with qxlwddm-0.6 to tinker > > > around with multi monitor setup. Right? > > Right, qxlwddm-0.6 doesn't support multi-monitor configuration. Try > qxlwddm-0.7 > instead, it should be fine. > > > > > > > For Windows versions <8 or <2012 this works perfect if I perform the > > > following steps, Centos 6.5 (maybe this helps others): > > > > > > 1. Update qxl driver at the Windows VM > > > 2. Copy vdagent.exe and vdservice.exe to a directory on the client PC > > > 3. Install vdiservice from this directory (command line) > > > vdservice install > > > net start vdservice > > > > > > Uninstall: net stop vdservice + vdservice uninstall > > > > > > 3. Add a device 'channel' to the VM > > > Device type: spicevmc > > > Target type: virtio > > > Target name: com.redhat.spice.0 > > > > > > 4. Start guest and install virtio-serial vioser.inf > > > > > > 5. Add a secondary device Video in virt manager type QXL > > > 6. Start guest with sudo virsh guest name > > > 7. Open guest with sudo virt-viewer guest name > > > 8. Activate secondary monitor in Windows, extend desktop and switch to > > > fullscreen mode F11 > > > > > > Martin > > > > It also should work with qxlwddm-0.7, except for arbitrary resolutions > (re-sizing) which needs some changes in vdagent code to work properly. > > Vadim. > > > Do you mean you are trying to use qxl wddm driver on windows 7? > > > > qxl on http://people.redhat.com/vrozenfe/qxlwddm/qxlwddm-0.6.zip seemed > > can't install on windows 7 . Hi Vadmin ! Is windows 7 version of qxldod build possibble ? Because DirectX does make sense for me . (In reply to yxu from comment #82) > (In reply to Vadim Rozenfeld from comment #79) > > (In reply to yxu from comment #77) > > > (In reply to Martin from comment #76) > > > > Vadim, > > > > thank you, very helpful learning something new every day. As I really hate > > > > the Gnome version of Centos 7 I guess that have to wait for centos 7.1 to be > > > > able to use qxlwddm-0.7.zip... > > > > > > > > Anyway I also assume that it does NOT make sense with qxlwddm-0.6 to tinker > > > > around with multi monitor setup. Right? > > > > Right, qxlwddm-0.6 doesn't support multi-monitor configuration. Try > > qxlwddm-0.7 > > instead, it should be fine. > > > > > > > > > > For Windows versions <8 or <2012 this works perfect if I perform the > > > > following steps, Centos 6.5 (maybe this helps others): > > > > > > > > 1. Update qxl driver at the Windows VM > > > > 2. Copy vdagent.exe and vdservice.exe to a directory on the client PC > > > > 3. Install vdiservice from this directory (command line) > > > > vdservice install > > > > net start vdservice > > > > > > > > Uninstall: net stop vdservice + vdservice uninstall > > > > > > > > 3. Add a device 'channel' to the VM > > > > Device type: spicevmc > > > > Target type: virtio > > > > Target name: com.redhat.spice.0 > > > > > > > > 4. Start guest and install virtio-serial vioser.inf > > > > > > > > 5. Add a secondary device Video in virt manager type QXL > > > > 6. Start guest with sudo virsh guest name > > > > 7. Open guest with sudo virt-viewer guest name > > > > 8. Activate secondary monitor in Windows, extend desktop and switch to > > > > fullscreen mode F11 > > > > > > > > Martin > > > > > > > It also should work with qxlwddm-0.7, except for arbitrary resolutions > > (re-sizing) which needs some changes in vdagent code to work properly. > > > > Vadim. > > > > > Do you mean you are trying to use qxl wddm driver on windows 7? > > > > > > qxl on http://people.redhat.com/vrozenfe/qxlwddm/qxlwddm-0.6.zip seemed > > > can't install on windows 7 . > > Hi Vadmin ! > > Is windows 7 version of qxldod build possibble ? > > Because DirectX does make sense for me . No. As far as I know, there is no plans for supporting WDDM 1.1 interface (Win7). Vadim. Two points: 1. Feedback on compatibility: I am running on host Fedora 21 X86_64 with guest Windows 8.1 using first the 0.6 driver and then upgrading to 0.7. (I had all the Windows patches installed before installing 0.6). I have had no Code 43 problems. 2. In Comment 76 mention is made of installing vdservice.exe and vdagent.exe. Please could someone share where I can download these files from? Having the screen automatically resize would be VERY useful to me. Thanks for all the hard work! Louis, vdagent and vdservice are from here: http://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.2/ You can also use the full Windows guest tools package from here: http://www.spice-space.org/download/windows/spice-guest-tools/ Although these binaries are pretty old they worked for me, up to Windows 7. Redhat has an own service, you need a subscription to be able to download the drivers. they are contained in 'virtio-win-1.7.2-2.el6.noarch.rpm' (maybe there's already a newer version): qemu-ga-x64.msi and qemu-ga-x32.msi. I didn't try the Redhat programs. Martin (In reply to Louis van Dyk from comment #84) > > 2. In Comment 76 mention is made of installing vdservice.exe and > vdagent.exe. Please could someone share where I can download these files > from? Having the screen automatically resize would be VERY useful to me. > You can install the latest spice tools in win 7, then copy the directory to a win 8.x VM and run vdservice -install to register the service. (In reply to Lindsay Mathieson from comment #86) > (In reply to Louis van Dyk from comment #84) > > > > 2. In Comment 76 mention is made of installing vdservice.exe and > > vdagent.exe. Please could someone share where I can download these files > > from? Having the screen automatically resize would be VERY useful to me. > > > > > You can install the latest spice tools in win 7, then copy the directory to > a win 8.x VM and run vdservice -install to register the service. Yes, it should work fine, except for resizing which requires a special handling in Win8. FYI, I did got the 0.11 driver to work with also manually installing vdservice and vdagent from spice-guest-tools-0.74.exe (installed it and then manually installed the services from cmd) I had to patch lz.js and display.js from the spice-html5 sources to get the display rotated upside down. More info including patch at https://bugs.launchpad.net/openstack-ansible/+bug/1428833/comments/5 I do still have an issue with the mouse acceleration (In reply to bjoern from comment #88) > FYI, I did got the 0.11 driver to work with also manually installing > vdservice and vdagent from spice-guest-tools-0.74.exe (installed it and then > manually installed the services from cmd) > With centos7.0 + ovirt3.5 + windows8.1 32bit + 0.11 driver + vdagent-win-0.7.3, everything is fine. U can get vdagent-win-0.7.3 at http://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.3/ > I had to patch lz.js and display.js from the spice-html5 sources to get the > display rotated upside down. More info including patch at > https://bugs.launchpad.net/openstack-ansible/+bug/1428833/comments/5 > I do still have an issue with the mouse acceleration (In reply to Jingfeng Zhao from comment #89) > U can get vdagent-win-0.7.3 at > http://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.3/ Do you need all three files or just the tar ball? (In reply to Jingfeng Zhao from comment #89) > (In reply to bjoern from comment #88) > > FYI, I did got the 0.11 driver to work with also manually installing > > vdservice and vdagent from spice-guest-tools-0.74.exe (installed it and then > > manually installed the services from cmd) > > > With centos7.0 + ovirt3.5 + windows8.1 32bit + 0.11 driver + > vdagent-win-0.7.3, > everything is fine. > > U can get vdagent-win-0.7.3 at > http://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.3/ > > > I had to patch lz.js and display.js from the spice-html5 sources to get the > > display rotated upside down. More info including patch at > > https://bugs.launchpad.net/openstack-ansible/+bug/1428833/comments/5 > > I do still have an issue with the mouse acceleration How about the performance? I can install the driver without any problem but using with spice feel a bit sluggish, espacilly when play video muose move slowly. Using the 0.11 driver and vdservice/vdagent 0.73 with Windows Preview 10 (64bit). Working fine so far, no crashes and accelerated video is working. Auto guest Resize sort of works - only resizes in discrete steps, but I gather thats a limit of the wddm model? Fullscreen snaps to the right size though. Thanks for the driver, much appreciated. (In reply to Lindsay Mathieson from comment #92) > Using the 0.11 driver and vdservice/vdagent 0.73 with Windows Preview 10 > (64bit). > > Working fine so far, no crashes and accelerated video is working. Auto guest > Resize sort of works - only resizes in discrete steps, but I gather thats a > limit of the wddm model? Fullscreen snaps to the right size though. Not exactly, qxl-dod itself knows how to deal with arbitrary resolutions. But vdagent needs to be extended with some Win8 related code to send Escape code properly. I sent such code to the SPICE team some time ago, so it probably will be integrated into vdagent in the following versions. > > Thanks for the driver, much appreciated. (In reply to Vadim Rozenfeld from comment #93) > > Not exactly, qxl-dod itself knows how to deal with arbitrary resolutions. > But vdagent needs to be extended with some Win8 related code to send Escape > code > properly. I sent such code to the SPICE team some time ago, so it probably > will be integrated into vdagent in the following versions. Ah, good to know. I was thinking of putting together a windows guest installer that incorporated the latest vdagent (0.74), virtio drivers (1.0) and the wddm qxl driver (0.11) to ease testing - would that be ok to make available? I just tried the 0.11 driver. I got a black screen at install and had to force reboot, but after the reboot the driver was installed. It's hard to say yet for sure if the performance is improved, but I think it is. Now I just wish I could figure out how to add custom display resolutions in Win8 so I could match the VM resolution to my display resolution. (In reply to Lindsay Mathieson from comment #94) > (In reply to Vadim Rozenfeld from comment #93) > > > > Not exactly, qxl-dod itself knows how to deal with arbitrary resolutions. > > But vdagent needs to be extended with some Win8 related code to send Escape > > code > > properly. I sent such code to the SPICE team some time ago, so it probably > > will be integrated into vdagent in the following versions. > > > Ah, good to know. > > I was thinking of putting together a windows guest installer that > incorporated the latest vdagent (0.74), virtio drivers (1.0) and the wddm > qxl driver (0.11) to ease testing - would that be ok to make available? I have no idea about vdagent redistribution policies, but wddm qxl and RH-signed virtio-win drivers available from fedoraproject side should be freely redistributable software. BTW, what is the virtio drivers 1.0? The latest publicly available version is 100. But if you are going to use drivers from http://alt.fedoraproject.org/pub/alt/virtio-win/latest/ , you must understand, that even though the drivers in this folder can be more advanced than drivers in folder stable, they are still not fully tested yet. (In reply to Matthew Gabeler-Lee from comment #95) > I just tried the 0.11 driver. I got a black screen at install and had to > force reboot, but after the reboot the driver was installed. It's hard to Did you update the MS in-box driver or a previous version of qxl-dod driver? > say yet for sure if the performance is improved, but I think it is. > > Now I just wish I could figure out how to add custom display resolutions in > Win8 so I could match the VM resolution to my display resolution. It's what the arbitrary resolution feature for. Please see the comment #c93 (In reply to Vadim Rozenfeld from comment #96) > I have no idea about vdagent redistribution policies, I'll check that > but wddm qxl and > RH-signed > virtio-win drivers available from fedoraproject side should be freely > redistributable software. Thanks, just thought it oolite to ask anyway. > BTW, what is the virtio drivers 1.0? The latest publicly available version > is 100. Gah - meant 100 ;) > But if you are going to use drivers from > http://alt.fedoraproject.org/pub/alt/virtio-win/latest/ , you must > understand, that even though the drivers in this folder can be more advanced > than drivers in folder stable, they are still not fully tested yet. Yup (In reply to Vadim Rozenfeld from comment #93) > But vdagent needs to be extended with some Win8 related code to send Escape > code > properly. I sent such code to the SPICE team some time ago, so it probably > will be integrated into vdagent in the following versions. Would you have a link to that patch? I haven't been able to find it on the spice-devel mailing list. Created attachment 1016319 [details]
Win8 resize POC code
I sent it directly to Sandy. It is just a POC but can be easily integrated into vdagent code.
Ah ok, this makes sense, and would correspond to the patch series she sent a while ago. Hello, I tried the last published binaries of qxl-dod (0.11) on my Windows 8.1 virtual machine, which seems to work well, except I experience random freezes of the display which forces me to do an hard reset of the virtual machine. It seems that guest display freezes happen more frequenly when host uses swap partitions than using solely physical RAM. QEMU command: /usr/bin/qemu-system-x86_64 -name win8.1.64 -S -machine pc-i440fx-2.2,accel=kvm,usb=off -m 1043 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid ca209782-ea9c-4aa3-87a6-f33bc3b34937 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/home/sdever/.config/libvirt/qemu/lib/win8.1.64.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x6.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x6 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x6.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x6.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/home/DiskImages/win8.1.qcow2,if=none,id=drive-ide0-0-0,format=qcow2,cache=unsafe -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 -drive if=none,id=drive-ide0-0-1,readonly=on,format=raw -device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1,bootindex=1 -netdev tap,fd=19,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:c8:3e:a5,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -device usb-tablet,id=input0 -spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=16,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1 -chardev spicevmc,id=charredir2,name=usbredir -device usb-redir,chardev=charredir2,id=redir2 -chardev spicevmc,id=charredir3,name=usbredir -device usb-redir,chardev=charredir3,id=redir3 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -cpu Nehalem,+vmx,-hypervisor -enable-kvm -msg timestamp=on Hello, I recomplied the last code qxl-dod (0.11), tried on my Windows 8.1 virtual machine, which seems to work well. But the mouse information is through the display channel, rather than the cursor channel to reach the client. so modifyed qxldod.h:449 BOOLEAN EnablePointer(void) { return FALSE; } --> BOOLEAN EnablePointer(void) { return TRUE; }, the mouse information is through the cursor channel. Buf the mouse of monochrome displayed abnormally. I got some info from https://msdn.microsoft.com/pl-pl/library/windows/hardware/ff559481(v=vs.85).aspx, and modifyed qxldod.cpp:QxlDevice::SetPointerShape func 1: del thie line-- cursor->header.height >>= 1; 2: mod src_end = src + (pSetPointerShape->Pitch * pSetPointerShape->Height); --> src_end = src + (pSetPointerShape->Pitch * pSetPointerShape->Height * pSetPointerShape->Flags.Monochrome ? 2:1); New it work well. (In reply to dcui from comment #103) > Hello, > > I recomplied the last code qxl-dod (0.11), tried on my Windows 8.1 > virtual machine, which seems to work well. But the mouse information is > through the display channel, rather than the cursor channel to reach the > client. > > so modifyed qxldod.h:449 BOOLEAN EnablePointer(void) { return FALSE; } > --> > BOOLEAN EnablePointer(void) { return TRUE; }, the mouse information is > through the cursor channel. Buf the mouse of monochrome displayed abnormally. > > I got some info from > https://msdn.microsoft.com/pl-pl/library/windows/hardware/ff559481(v=vs.85). > aspx, and modifyed qxldod.cpp:QxlDevice::SetPointerShape func > 1: del thie line-- cursor->header.height >>= 1; > 2: mod src_end = src + (pSetPointerShape->Pitch * > pSetPointerShape->Height); --> src_end = src + (pSetPointerShape->Pitch * > pSetPointerShape->Height * pSetPointerShape->Flags.Monochrome ? 2:1); > > New it work well. Thanks. Could you please send your changes as a patch or as a pull request? I will review and apply it shortly. Best regards, Vadim. (In reply to Vadim Rozenfeld from comment #104) > (In reply to dcui from comment #103) > > Hello, > > > > I recomplied the last code qxl-dod (0.11), tried on my Windows 8.1 > > virtual machine, which seems to work well. But the mouse information is > > through the display channel, rather than the cursor channel to reach the > > client. > > > > so modifyed qxldod.h:449 BOOLEAN EnablePointer(void) { return FALSE; } > > --> > > BOOLEAN EnablePointer(void) { return TRUE; }, the mouse information is > > through the cursor channel. Buf the mouse of monochrome displayed abnormally. > > > > I got some info from > > https://msdn.microsoft.com/pl-pl/library/windows/hardware/ff559481(v=vs.85). > > aspx, and modifyed qxldod.cpp:QxlDevice::SetPointerShape func > > 1: del thie line-- cursor->header.height >>= 1; > > 2: mod src_end = src + (pSetPointerShape->Pitch * > > pSetPointerShape->Height); --> src_end = src + (pSetPointerShape->Pitch * > > pSetPointerShape->Height * pSetPointerShape->Flags.Monochrome ? 2:1); > > > > New it work well. > > Thanks. > Could you please send your changes as a patch or as a pull request? > I will review and apply it shortly. > > Best regards, > Vadim. Sorry I don't know how to increase the attachment. I uesed "diff" command, got three modifications: 1、QxlDod.h 449c449 < BOOLEAN EnablePointer(void) { return FALSE; } --- > BOOLEAN EnablePointer(void) { return TRUE; } 2、QxlDod.cpp 4378d4377 < cursor->header.height >>= 1; 3、QxlDod.cpp 4399c4398 < src_end = src + (pSetPointerShape->Pitch * pSetPointerShape->Height); --- > src_end = src + (pSetPointerShape->Pitch * pSetPointerShape->Height * (pSetPointerShape->Flags.Monochrome ? 2 : 1)); After some many tests, i can confirm that 0.11 works fine on Windows 8.1 64 Professional. In order to make guest driver to work, parameter "-global qxl-vga.revision=4" (for qemu exec) do the trick ;) Guest monitor automatic resize won't work. I think it's related to vdagent service. (0.73) Someone has news about a future release of this one? (In reply to Alessandro Nardecchia from comment #109) > I think it's related to vdagent service. (0.73) Where did you get this agent binary from? (In reply to Christophe Fergeau from comment #110) > (In reply to Alessandro Nardecchia from comment #109) > > I think it's related to vdagent service. (0.73) > > Where did you get this agent binary from? was reported here on a previous comment: http://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.3/ unfortunately automatic resize don't work fine. :( Gents, I'm using 0.11 for my Win 8.1 x64 guest on Centos 7.1 (3.10.0-229.7.2.el7.x86_64) with a dual monitor setup (2 qxl devices). I didn't have to make any additional changes in the xml file. The only minor issue I currently have is that moving the cursor by keyboard keys like shift + end is kind of slow sometimes. I do not know if its related to qxlwddm. I am using vdagent and vdservice from spice-guest-tools-0.100.exe which can be found here: http://www.spice-space.org/download/binaries/spice-guest-tools/ If you like to use them I strongly recommend NOT to install the guest tools but instead extract all files with 7-Zip and manually install vdagent and vdservice: 2. Copy vdagent.exe and vdservice.exe to a directory on the client PC 3. Install vdservice from this directory (command line) vdservice install net start vdservice Uninstall: net stop vdservice + vdservice uninstall Hope this helps! Martin (In reply to Alessandro Nardecchia from comment #111) > > was reported here on a previous comment: > > http://www.spice-space.org/download/windows/vdagent/vdagent-win-0.7.3/ > > unfortunately automatic resize don't work fine. :( Yes, this build predates the code aluded to in https://bugzilla.redhat.com/show_bug.cgi?id=895356#c93 (In reply to Martin from comment #112) > > If you like to use them I strongly recommend NOT to install the guest tools Why not ? Because the guest tools install ALL included drivers on the VM. For me that led to serious issues in the past. If you only want vdservice then only install vdservice. My vdagent is File Version 0.5.1.0 (In reply to Martin from comment #115) > Because the guest tools install ALL included drivers on the VM. For me that > led to serious issues in the past. If you only want vdservice then only > install vdservice. My vdagent is File Version 0.5.1.0 For what it's worth, please file bugs when this installer causes issues as it's supposed to be as painless as possible. vdagent/vdservice requires vioserial to work properly, so you need to install that as well. Driver version 0.11 with vdagent 0.73 seems to install fine on Win10 RTM release but when setting to auto resize it flickers once per second, seems like its resetting the resolution over and over again. Host is F22 with virt-preview packages Same with 0.12. (In reply to Frank Büttner from comment #118) > Same with 0.12. (In reply to Marcel Wysocki from comment #117) > Driver version 0.11 with vdagent 0.73 seems to install fine on Win10 RTM > release > but when setting to auto resize it flickers once per second, seems like its > resetting the resolution over and over again. > Host is F22 with virt-preview packages 0.12 / 0.11 works fine on Windows 10/8.1 guests, except guest resize. Like me, many users are waiting for news about a fresh release of vdagent for Windows, with that feature Gents, as I already mentioned I'm running a Win 8.1 x64 VM with dual monitor setup (0.12) on Centos 7.1 (3.10.0-229.7.2.el7.x86_64). I'm using virt-viewer to access the VM. Everything works almost perfect here, NO issue with resizing screens of VM. Can anyone explain to me where 'setting to auto resize' is done? This would enable me to verify if the issue can be reproduced. Thank you! Martin (In reply to Martin from comment #120) > Gents, > as I already mentioned I'm running a Win 8.1 x64 VM with dual monitor setup > (0.12) on Centos 7.1 (3.10.0-229.7.2.el7.x86_64). I'm using virt-viewer to > access the VM. Everything works almost perfect here, NO issue with resizing > screens of VM. > > Can anyone explain to me where 'setting to auto resize' is done? > > This would enable me to verify if the issue can be reproduced. > Thank you! > Martin My situation: - Global qemu/kvm qxl revision = 4 (for all guest types: windows 7 , windows 8.1, windows 10) - I'm using a Python script (SpiceClientGtk.so/pygtk with resize-guest = True on Spice GTK Widget Object) or spicy test client. When using a windows 8.1/10 guest with new qxl-wddm driver (0.11-0.12) Display does not resize correctly. I can only get standard resolutions: 1366x768, 1280x800, 1280x720, 800x600 but not a particural one like: 1366x738 or 1700x1080 (On windows 7 guest i get all resolutions without problems :) ) This problem it's related to vdagent.exe service (current 0.7.3) that not handle my custom screen resolutions request as explained in this comment by Vadim: https://bugzilla.redhat.com/show_bug.cgi?id=895356#c93 Resize code for windows 8.1 (not sure if already for windows 10) was posted here but i don't have much info for applying and building vdagent.exe with this patch :/ and i'm waiting for a new release. Alessandro (In reply to Martin from comment #120) > Can anyone explain to me where 'setting to auto resize' is done? > In virt-managers built-in virt viewer you can enable auto resize Auto resize has been working fine for me. - Qemu 2.2.1 - Windows 10 RTM - 0.11 QXL Drivers - vdservice/vdagent from the Spice Tools 1.00 Installer Not using dual monitors. I'll test that tomorrow. Performance seems a little sluggish compared to Windows 7. But still quite usable. p.s I'm using the 1.0 Spice Client on Kubuntu. Marcel, thank you, I tried with virt-manager's internal viewer, works also, guest resize works, no flickering. Allesandro's comment: ...I can only get standard resolutions: 1366x768, 1280x800, 1280x720, 800x600... strongly remminds me on the situation I had when I tried to run qxlwddm 0.7 instead of 0.6 on my Centos 6.5 box: https://bugzilla.redhat.com/show_bug.cgi?id=895356#c72 This was exactly the issue. After changing the host OS to Centos 7.1 everything started to work as expected, vdservice and vdagent on my VM are both ver. 0.5.1.0 Martin (In reply to Martin from comment #125) > Marcel, > thank you, I tried with virt-manager's internal viewer, works also, guest > resize works, no flickering. > > Allesandro's comment: ...I can only get standard resolutions: 1366x768, > 1280x800, 1280x720, 800x600... > > strongly remminds me on the situation I had when I tried to run qxlwddm 0.7 > instead of 0.6 on my Centos 6.5 box: > > https://bugzilla.redhat.com/show_bug.cgi?id=895356#c72 > > This was exactly the issue. After changing the host OS to Centos 7.1 > everything started to work as expected, vdservice and vdagent on my VM are > both ver. 0.5.1.0 > Martin Thanks Martin! Fresh install of a windows 8.1 with qxl-0.12, spice-guest-tools 0.100. Checked revision on windows device manager and results: REV_04 but same problem :/ Maybe it's releated to QEMU emulator version 2.0.0 (Debian 2.0.0+dfsg-2ubuntu1.14) ??? (In reply to Alessandro Nardecchia from comment #126) > (In reply to Martin from comment #125) > > Marcel, > > thank you, I tried with virt-manager's internal viewer, works also, guest > > resize works, no flickering. > > > > Allesandro's comment: ...I can only get standard resolutions: 1366x768, > > 1280x800, 1280x720, 800x600... > > > > strongly remminds me on the situation I had when I tried to run qxlwddm 0.7 > > instead of 0.6 on my Centos 6.5 box: > > > > https://bugzilla.redhat.com/show_bug.cgi?id=895356#c72 > > > > This was exactly the issue. After changing the host OS to Centos 7.1 > > everything started to work as expected, vdservice and vdagent on my VM are > > both ver. 0.5.1.0 > > Martin > > Thanks Martin! > > Fresh install of a windows 8.1 with qxl-0.12, spice-guest-tools 0.100. > Checked revision on windows device manager and results: REV_04 > but same problem :/ > > Maybe it's releated to QEMU emulator version 2.0.0 (Debian > 2.0.0+dfsg-2ubuntu1.14) ??? resizing is mostly related to spice->vdagent->qxldod communication chain, rather than qemu. Best regards, Vadim. Vadim, thanks for the clarification. On my Win 8.1 (x64) VM I have vdagent.exe and vdservice.exe version 0.5.1.0 manually installed, extracted with 7-ZIP from spice-guest-tools-0.100.exe as described here: https://bugzilla.redhat.com/show_bug.cgi?id=895356#c112 No issues with resizing so far neither with virt managers internal viewer nor with virt-viewer. Hope this helps. Vadmin, a question now on Windows 10 ... My KVM Windows 8.1 machine qualifies for the "free upgrade" to Windows 10. But with the QXL Driver 0.12, the upgrade checker claims it doesn't meet requirements because: "The display manufacturer hasn't made your display compatible with Windows 10. Check with the manufacturer for support." Any idea when / if this will happen? Thank you for all the hard work you have done. (In reply to Louis van Dyk from comment #129) > Vadmin, a question now on Windows 10 ... > My KVM Windows 8.1 machine qualifies for the "free upgrade" to Windows 10. > But with the QXL Driver 0.12, the upgrade checker claims it doesn't meet > requirements because: > "The display manufacturer hasn't made your display compatible with Windows > 10. Check with the manufacturer for support." > > Any idea when / if this will happen? > > Thank you for all the hard work you have done. Not sure. It probably happens because Win10 has different driver signing policy. What used to work fine with Win10 code preview can stop working with RTM. In any case, we are working on Win10 EV certification for our virtio-win drivers. Hopefully qxl driver will be next. Best regards, Vadim. I ran into the same upgrade issue, but was able to work around it by temporarily uninstalling the driver, doing the upgrade, and then reinstalling the driver, and all went well. You can also use the windows 10 media creation tool to do an in-place upgrade, and it doesn't seem to be as picky about things as the upgrade tool built into windows update. I was able to use that method to work around a similar issue on a different virtualization platform. (In reply to Louis van Dyk from comment #129) > Vadmin, a question now on Windows 10 ... > My KVM Windows 8.1 machine qualifies for the "free upgrade" to Windows 10. > But with the QXL Driver 0.12, the upgrade checker claims it doesn't meet > requirements because: > "The display manufacturer hasn't made your display compatible with Windows > 10. Check with the manufacturer for support." > > Any idea when / if this will happen? > > Thank you for all the hard work you have done. To override the Compatibility Check. Locate the registry key: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade] It should exist, but if not, create it. Create a new DWORD (32-bit) Value with Name = "AllowOSUpgrade” (without the quotes), and set the Value = 0x00000001. Once the registry key is modified, check for updates. Worked for me, upgrading my Win 7 Pro VM. (In reply to Vadim Rozenfeld from comment #127) > resizing is mostly related to spice->vdagent->qxldod communication chain, > rather than qemu. How do I debug this comunication chain? I have Windows 10 running on a Debian box with KVM and Libvirt, spice-guest-tools 0.100 is installed, Device Manager says that Red Hat QXL Driver 3.10.44.724 is working properly. Would I see vdagent and/or qxldod in Device or Service Manager? Greetings Marc (In reply to Lindsay Mathieson from comment #132) > To override the Compatibility Check. > > Locate the registry key: > [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\O > SUpgrade] > > It should exist, but if not, create it. > > Create a new DWORD (32-bit) Value with Name = "AllowOSUpgrade” (without the > quotes), and set the Value = 0x00000001. > > Once the registry key is modified, check for updates. > > Worked for me, upgrading my Win 7 Pro VM. You are brilliant!! I am downloading the upgrade now ... I've been running this driver for a while now, both on Win 8.1 and Win 10 (same VM, pre/post upgrade). While functionality and stability are fine, when I had to temporarily uninstall it to get the Win10 upgrade to go through, I thought things seemed faster. Doing some more careful testing, I can now say for sure that, for me, the basic display adapter performs noticeably better than this driver, especially when connected over an SSH tunnel over a WAN. Display updates are faster, but even more noticeable is that the pointer lag is quite terrible with this driver compared to the basic display driver. Using spice-guest-tools 0.100, QXL driver 0.12 It's not clear to me how to get auto-resize working in Windows 8.1 guests. All I get are standard resolutions (1920x1080, 1600x900). Is this how it should behave? vdagent.exe: 0.5.1.0 vdservice.exe: 0.5.1.0 QXL driver: 22.33.46.473 With Windows Server 2008 R2 I get arbitrary resolutions. For example: 928x982. Same vdagent/vdservice versions. QXL driver 6.1.0.10020. I'm using packages provided by Ubuntu: virt-manager: 1.0.1 spice: 0.25 Thanks! Using qxlwddm-0.12 and spice-guest-tools-0.100 on windows server 2012. Does the copy/paste procedure available ? If yes how to proceed for the installation ? Thanks ! I forget to say that I started vdservice but, after 60 seconds, the service is stopping. I also tries to install the virtio-serial driver. When I restart the vm I have a BSOD. Forget my comments 138 and 139: I will open a new subject ! I have read this thread from top to bottom now several times but I still don't get it. I'm pretty sure that I have the latest versions of vdagent and qxl installed on my Windows 8.1 system but I still do not get arbitrary resolutions in window mode. So i'd guess, even though the patch attached to this ticket is available for a relatively long time now, it is not yet released? Or did I miss a version that might not be public available? Unfortunately I'm not able to build a patched version of the vdagent on my own but I would really like to test the patch and see if it works for me then. Can someone who know this stuff better than me and is able to build this stuff please please supply a patched version for testing? Even the patched vd_agent will need further changes to properly support arbitrary resolution. This is because the newer Oses require the use of the CCD API (Connecting and Configuring Displays) to reliably set monitor position and resolution. We are working adding these calls to vd_agent to support WDDM drivers but it is still a work in progress. (In reply to Sandy Stutsman from comment #143) > Even the patched vd_agent will need further changes to properly support > arbitrary resolution. This is because the newer Oses require the use of the > CCD API (Connecting and Configuring Displays) to reliably set monitor > position and resolution. We are working adding these calls to vd_agent to > support WDDM drivers but it is still a work in progress. Ok, thats not a good news. Is it something you can/will fix in the near future or is it low priority? I've also opened a ticket for this problem on the SPICE Bugzilla because this ticket is not completely related to the problem. https://bugs.freedesktop.org/show_bug.cgi?id=93304 (In reply to Fabian Tobias Rajter from comment #144) > (In reply to Sandy Stutsman from comment #143) > > Even the patched vd_agent will need further changes to properly support > > arbitrary resolution. This is because the newer Oses require the use of the > > CCD API (Connecting and Configuring Displays) to reliably set monitor > > position and resolution. We are working adding these calls to vd_agent to > > support WDDM drivers but it is still a work in progress. > > Ok, thats not a good news. Is it something you can/will fix in the near > future or is it low priority? > > I've also opened a ticket for this problem on the SPICE Bugzilla because > this ticket is not completely related to the problem. > https://bugs.freedesktop.org/show_bug.cgi?id=93304 Many users like me need custom resolution to work properly :( just to clarify, everything is working correctly on my centos 7.1 x64 laptop, guests: Windows 8 (x64), Windows 10 (x64), I can use whatsoever screen resolution, see my comments here: https://bugzilla.redhat.com/show_bug.cgi?id=895356#c125 I'm using pretty old versions of vdagent and vdservice 0.5.1.0 extracted from the guest tools installer, manually(!) installed. WDDM display driver is Vadim's latest driver 0.12. I'm working with dual monitors, 2 qxl devices for each VM. Let me know if you need information about program versions. Martin (In reply to Martin from comment #146) > just to clarify, > everything is working correctly on my centos 7.1 x64 laptop, guests: Windows > 8 (x64), Windows 10 (x64), I can use whatsoever screen resolution, see my > comments here: > https://bugzilla.redhat.com/show_bug.cgi?id=895356#c125 > > I'm using pretty old versions of vdagent and vdservice 0.5.1.0 extracted > from the guest tools installer, manually(!) installed. WDDM display driver > is Vadim's latest driver 0.12. I'm working with dual monitors, 2 qxl devices > for each VM. > > Let me know if you need information about program versions. > Martin Where i can find this vdagent release for testing on kvm-fedora 23 / kvm-ubuntu 14.04 hypervisor with my windows 8 guest? :) See my comments here: https://bugzilla.redhat.com/show_bug.cgi?id=895356#c112 I'd like to mention that custom resolutions did NOT work when I tried this procedure on my Centos 6 host. Martin (In reply to Martin from comment #148) > See my comments here: > https://bugzilla.redhat.com/show_bug.cgi?id=895356#c112 > I'd like to mention that custom resolutions did NOT work when I tried this > procedure on my Centos 6 host. > Martin Tryed... no luck (fedora 23 and ubuntu 14.04) :( i'll try on a centos 7.1 x64 hoping to find a workaround for this problem. Once I had a similar problem with QXLWDDM 0.6 on my Centos 6.5 box and was able to resolve it by a complete uninstall/reinstall of the driver in the guest: https://bugzilla.redhat.com/show_bug.cgi?id=895356#c72 Vadim's comments were also helpful: https://bugzilla.redhat.com/show_bug.cgi?id=895356#c73 However setup of the Windows 10 x64 guest on Centos 7.1 worked (QXLWDDM 0.12) without any tweaking of the xml file. I strongly guess that your issue has something to do with the components on the host side. Hope this helps a bit. Martin (In reply to Martin from comment #150) > Once I had a similar problem with QXLWDDM 0.6 on my Centos 6.5 box and was > able to resolve it by a complete uninstall/reinstall of the driver in the > guest: > https://bugzilla.redhat.com/show_bug.cgi?id=895356#c72 > Vadim's comments were also helpful: > https://bugzilla.redhat.com/show_bug.cgi?id=895356#c73 > > However setup of the Windows 10 x64 guest on Centos 7.1 worked (QXLWDDM > 0.12) without any tweaking of the xml file. I strongly guess that your issue > has something to do with the components on the host side. > Hope this helps a bit. > Martin Thanks for reply :) I tryed all combinations based on all comments in this thread. - WINDOWS 8/10 x86/x64 - QXL WDDM driver (0.6, 0.11, 0.12 updating the default VGA adapter) - QXL REVISION 3 or 4 - SPICE GTK VERSIONS (all from 0.20 to 0.30) (VirtViewer, RemoteViewer, my python connector based on SpiceClientGtk.so import) - VDAGENT (different versions, different install methods like you, and others explained here) - QEMU-KVM (many differents versions) I'm getting out of my mind! :D The only hypervisor that i haven't tested it's CentOs 7. Sorry to hear that. For Centos 7.1 x64 it was sufficient to install the following components: yum install virt-manager libvirt virt-install qemu-kvm virt-viewer dejavu-lgc-sans-fonts Add secondary monitor (WIN 8.1) 1. Update qxl driver with driver from extracted qxlwddm-0.12.zip 2. Copy extracted (7-zip - spice-guest-tools-0.100\64) vdagent.exe and vdservice.exe to a directory on the client PC 3. Install vdservice from this directory (command line) vdservice install net start vdservice Uninstall: net stop vdservice + vdservice uninstall 8.1: Service Name is RHEV Spice Agent 3. Add a device 'channel' to the host Device type: spicevmc Target type: virtio Target name: com.redhat.spice.0 4. Start guest and install virtio-serial vioser.inf 5. Add a secondary device Video in virt manager type QXL 6. Start guest with sudo virsh start guest name 7. Open guest with sudo virt-viewer guest name 8. Activate secondary monitor, extend desktop and switch to fullscreen mode F11 Martin Wanted to see what the status of this is. Looks like the last QXL WDDM driver is dated July 29. Guest Agent seems to work on Win10 for USB. Doesn't seem to work for screen resizing. Mouse performance is still pretty poor and laggy (sometimes it seems to lose where the mouse cursor is) -- even without the Guest Agent ... my Guests are Win10, Srvr 2012R2, and for comparison, Srvr2008R2 and Win7 . Win10 is definitely the worst, bordering on unusable, and may have other KVM performance issues as well. Thanks. We are also affected by poor performance on our virtual 2012 servers (choppy, mouse cursor lagging behind) Is work still ongoing to fix this? Windows 7 guests is very smooth on the same host. Hello? Is this thing on? Yes, we are affected by these drivers - it would be nice to see these updated more often. (In reply to Mick Russom from comment #164) > Yes, we are affected by these drivers - it would be nice to see these > updated more often. Since this driver is slowly moving from POC stage to production it has a new owner now - Dmitry Fleytman. I believe Dmitry can share the latest information about the driver. Best regards, Vadim. Thank you Vadim, I just found information about an updated(?) driver here https://lists.freedesktop.org/archives/spice-devel/2016-February/026319.html Binaries are here: http://depot.flexvdi.com/guest-tools/ I didn't try them because for me 0.12 works reliable. Did anyone try one of these? Martin I would definitely like to hear more about. The 0.16 QXL driver itself, however, is a huge huge huge improvement. Testing on Windows10 1607 x64. It's not doing the auto-scaling, but perhaps I also need the Guest Tools for that (can't recall)? Yah, auto-sizing needs the guest agent. There's a 0.16 version? Yep, at: http://depot.flexvdi.com/guest-tools/ dated April 2016. Ah right, thanks. Not the official one. there is not yet an "official" one for Win 8/10. Hence this thread :) there is not yet an "official" one for Win 8/10. Hence this thread :) there is not yet an "official" one for Win 8/10. Hence this thread :) One problem with the Guest Tools installer is that that installer blows away existing drivers, replacing said drivers with the driver versions included with the Guest Tools. The installer did not give the option to only install the Guest Agent (which was the only piece I wanted, having already installed drivers from the virtio-win package in RHEL6). Please fix :) Dave, agree 100%, we already had this discussion in the past see https://bugzilla.redhat.com/show_bug.cgi?id=895356#c112 I'm working with a pretty old version of the agent 0.5.1.0, resizing and all other stuff works with qxlwddm 0.12 on all Windows guests. Martin http://depot.flexvdi.com/guest-tools/ here you can find a special customized qxl driver that works (almost stable) for me on windows 8.1 and a special guest agent that finally grant very custom resolution change. It's works only with qemu param qxl.revision=4 Not a stable and official ones, but a good workaround ;) Alessandro, for testing I downloaded the zip file as well as the latest iso file. Question: Where is the 'special guest agent'?? I currently use vdagent and vdservice. Thank you in advance! Martin (In reply to Martin from comment #181) > Alessandro, > for testing I downloaded the zip file as well as the latest iso file. > Question: Where is the 'special guest agent'?? I currently use vdagent and > vdservice. > > Thank you in advance! > Martin on the same dir you can find: http://depot.flexvdi.com/guest-tools/flexvdi-guest-tools-2.2.9.exe I don't know if it's different from original vd-agent package, but in win 8.1 works almost stable. Dmitry, can we know what is the current state of this? We are working on unified driver for Win8/10/2012/2016. The new repository location is https://gitlab.com/spice/qxl-wddm-dod. Current master (commit 1afadc7aeb4314809746ce53a16dc7b24e802428) is stable as far as we concerned and we are going to release an official build from it. On devel side there are no plans to add it to HRV. The WDDM DOD is recommended for local cases only. (In reply to David Blechter from comment #185) > On devel side there are no plans to add it to HRV. The WDDM DOD is > recommended for local cases only. Could explain this comment? (Also assuming HRV was supposed to be RHV?) (In reply to Colin Coe from comment #186) > (In reply to David Blechter from comment #185) > > On devel side there are no plans to add it to HRV. The WDDM DOD is > > recommended for local cases only. > > Could explain this comment? (Also assuming HRV was supposed to be RHV?) First, thanks for the correction, it is RHV! Second, the local case means the client is running on the same machine, where VM is running. With vdagent-win-0.8.0 --- which is what is on spice-space.org/download/windows ... it seems to have sort of installed the RHEV Vdagent. Extracted... cd'd into the directory with vdagent and vdservice and did a vdservice install . But, in services.msc, it left the path to where the files were extracted, which was in a temporary profile. So, that's no good. Shouldn't "vdservice install" be putting the files wherever they go in windows? Or is there an undocumented "make a permanent local folder" step? (In reply to Dave Botsch from comment #190) > With vdagent-win-0.8.0 --- which is what is on > spice-space.org/download/windows ... > > it seems to have sort of installed the RHEV Vdagent. > > Extracted... cd'd into the directory with vdagent and vdservice and did a > vdservice install . > > But, in services.msc, it left the path to where the files were extracted, > which was in a temporary profile. So, that's no good. > > Shouldn't "vdservice install" be putting the files wherever they go in > windows? Or is there an undocumented "make a permanent local folder" step? The easy way :) (Tried on Win8 and Win10) 1) Install https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-0.100.exe 2) Under task manager or services management stop vdagent service. 3) Extract in a temp folder: https://www.spice-space.org/download/windows/vdagent/vdagent-win-0.8.0/vdagent-win-0.8.0.zip 4) Replace vdagent.exe and vdservice.exe (take care of x86 or x64 depending on your's Win platform) in the folder: \\Program Files (x86)\SPICE Guest Tools\32 or \\Program Files (x86)\SPICE Guest Tools\64 5) Restart vdagent service from services management 6) Install the last qxl-wddm-dod: https://www.spice-space.org/download/windows/qxl-wddm-dod/qxl-wddm-dod-0.15/qxlwddm-0.15.zip At the time i think that no dualmonitor/dual-head support :( but it seems to be almost stable. For me it works with dual display/dual-head from Windows XP (32Bit) up to the newest Windows Server 2016 (64Bit). I also have no problem with the location of vdagent.exe and vdservice.exe. Host OS is Centos 7.1. I'm using version 0.5.1.0 of both programs. However I do NOT use one of the 'do everything for me' installers. QXL driver is still Vadims 0.12 version. See: https://bugzilla.redhat.com/show_bug.cgi?id=895356#c112 Hope this helps. Martin (In reply to Pavel Grunt from comment #203) > why not the latest (0.132) ? > You can get it from > https://www.spice-space.org/download.html#windows-binaries > > 0.100 was released more than 2 years ago > It would be nice if spice space listed *any* version information and/or embedded it in the filename rather than "latest" I have no idea what versions are installed by https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe The qxl links are all for 0.18, the spiceagent 0.80 Versioned binaries are at https://www.spice-space.org/download/windows/spice-guest-tools/ , -latest is just a symlink provided for convenience, but I guess this doesn't translate well through http/https. The version of the various components can be found by looking in the -src directory https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-0.132/src/ I forgot if the installer installs a text file with this information or not. (In reply to Christophe Fergeau from comment #207) > Versioned binaries are at > https://www.spice-space.org/download/windows/spice-guest-tools/ , -latest is > just a symlink provided for convenience, but I guess this doesn't translate > well through http/https. Thanks I'm new to bugzilla format, so hopefully my response should be posted here. I'm working on building a new Openstack Windows Server 2016 image, and we are having difficulties using the spice console (through Openstack) to display Windows 2016. It will display upside down and backwards. I am building the image with the latest virtio-win drivers, 0.1.139 and I have tried to manually install both qxl drivers mentioned in here (qxlwddm-0.12 and qxl-wddm-dod-0.18) both give me the error "The driver selected for this device does not support this version of Windows". I'm going through Device Manager and doing the install new drivers on the Microsoft Basic Display Adapter that is listed. I've also tried the Spice Guest Tools and the installer errored saying it wasn't a supported OS version. Has anyone had any success getting QXL/SPICE installed and working on Windows 2016 Standard (with GUI)? Does anyone have any suggestions on how I could tackle this? Thanks. Latest driver qxl-wddm-dod-0.18 was certified for Win10, not for 2016. Currently there is no release of qxl-wddm-dod that targets 2016 and such release was never requested. Possible, the driver (qxl-wddm-dod-0.18) can be installed for one-time test purpose on 2016 if signature verification is suppressed (via 'shutdown -r -o'), but this can't be configured permanently. Gents, this is the first time that I hear about such problems. For me, technically Server 2016 is Windows 10. I have a Standard Server 2016 (with GUI) and a Dual Display setup with spice and QXL DOD. According to device manager its qxldod.sys version 10.0.0.18000, digitally signed. However, I installed vdagent.exe and vdservice.exe manually, no big Guest Tools installer executed. Hope this helps. Martin This bug has been cloned to the RHEV-M .z stream: https://bugzilla.redhat.com/show_bug.cgi?id=1478905 Uri, please add relevant doctext. Hi. Some change in the virtualization layer seems to have broken earlier versions of the QXL WDDM driver with Server2012R2. Ie, when trying to boot an install of Server2012R2, qemu-kvm quits with a SIGABRT. Version 0.18 of the driver does not appear to have an appropriate signature for Server2012R2, which earlier versions of the QXL WDDM driver evidently did. Please appropriately sign version 0.18 or newer of qxl wddm so that one can try this version of the driver under Server 2012R2 (and see if the crash is fixed or if something is fundamentally broken someplace else in the qemu-kvm virt layer). The Guest OS is not very usable with the basic MS display driver. Thanks. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2018:1531 BZ<2>Jira Resync |