Bug 1311373 - Fail to install QXL driver for windows 2008r2 and win7 guest after conversion by virt-v2v
Summary: Fail to install QXL driver for windows 2008r2 and win7 guest after conversion...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: libguestfs
Version: 7.3
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Richard W.M. Jones
QA Contact: Virtualization Bugs
URL:
Whiteboard: V2V
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-02-24 05:29 UTC by tingting zheng
Modified: 2016-11-03 17:59 UTC (History)
7 users (show)

Fixed In Version: libguestfs-1.32.5-6.el7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-11-03 17:59:15 UTC
Target Upstream Version:


Attachments (Terms of Use)
qxl driver fails to be installed (242.85 KB, image/jpeg)
2016-02-24 05:29 UTC, tingting zheng
no flags Details
debug info for virt-v2v (15.41 KB, text/plain)
2016-02-24 05:30 UTC, tingting zheng
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2016:2576 0 normal SHIPPED_LIVE Moderate: libguestfs and virt-p2v security, bug fix, and enhancement update 2016-11-03 12:06:51 UTC

Description tingting zheng 2016-02-24 05:29:37 UTC
Created attachment 1130033 [details]
qxl driver fails to be installed

Description of problem:
On rhel 7.3,virt-v2v will install qxl for windows 2008r2 and win7 after conversion as there are qxl driver are provided under virtio-win,but it fails to install QXL driver for windows 2008r2 and win7 guest after conversion by virt-v2v.
For other windows guests,it will use basic/standard VGA display driver. 


Version-Release number of selected component (if applicable):
virt-v2v-1.32.2-6.el7.x86_64
libvirt-1.2.17-13.el7.x86_64
virtio-win-1.8.0-4.el7.noarch

How reproducible:
100%

Steps to Reproduce:
1.Use virt-v2v to convert windows 2008r2 or win7 guest to libvirt.
eg:
# virt-v2v -ic vpx://root@10.66.145.47/data/10.66.144.40/?no_verify=1 -os default -b virbr0  --password-file /tmp/passwd2 esx6.0-win2008r2-x86_64 

2.After conversion,boot the guest.
3.Check "Device Manager","Video Controller" have some problems as qxl driver can not installed successfully,refer to sreenshot.

Actual results:
As description.

Expected results:
qxl driver are installed successfully for windows 2008r2 and win7 guests.

Additional info:

Comment 1 tingting zheng 2016-02-24 05:30:58 UTC
Created attachment 1130034 [details]
debug info for virt-v2v

Comment 3 Richard W.M. Jones 2016-03-03 12:13:55 UTC
We copy the following files into the guest:

Copying virtio driver bits: 'host:/usr/share/virtio-win/./drivers/amd64/Win2008R2/qxl.cat' -> '/Windows/Drivers/VirtIO/qxl.cat'
Copying virtio driver bits: 'host:/usr/share/virtio-win/./drivers/amd64/Win2008R2/qxl.inf' -> '/Windows/Drivers/VirtIO/qxl.inf'
Copying virtio driver bits: 'host:/usr/share/virtio-win/./drivers/amd64/Win2008R2/qxl.sys' -> '/Windows/Drivers/VirtIO/qxl.sys'

Vadim: There's another file called 'qxldd.dll'.  Do we need
to copy that file too?  Any idea what file Windows might be
missing (see screenshot comment 0)?

Comment 4 Vadim Rozenfeld 2016-03-04 02:18:46 UTC
(In reply to Richard W.M. Jones from comment #3)
> We copy the following files into the guest:
> 
> Copying virtio driver bits:
> 'host:/usr/share/virtio-win/./drivers/amd64/Win2008R2/qxl.cat' ->
> '/Windows/Drivers/VirtIO/qxl.cat'
> Copying virtio driver bits:
> 'host:/usr/share/virtio-win/./drivers/amd64/Win2008R2/qxl.inf' ->
> '/Windows/Drivers/VirtIO/qxl.inf'
> Copying virtio driver bits:
> 'host:/usr/share/virtio-win/./drivers/amd64/Win2008R2/qxl.sys' ->
> '/Windows/Drivers/VirtIO/qxl.sys'
> 
> Vadim: There's another file called 'qxldd.dll'.  Do we need
> to copy that file too?  Any idea what file Windows might be
> missing (see screenshot comment 0)?

Yes, we do.
The XDDM-style (targeted to be installed on WinXP..WS2008R2/Win7 platforms) qxl driver comes in two parts - qxl.sys (mini-port driver) and qxldd.dll (display driver) both of them have to be installed (copied to the %sysroot%/Windows/system32/drivers/ sub-directory).

Best regards,
Vadim.

Comment 5 Richard W.M. Jones 2016-03-04 09:11:35 UTC
Thanks Vadim.  Patch posted:

https://www.redhat.com/archives/libguestfs/2016-March/msg00029.html

Comment 6 Vadim Rozenfeld 2016-03-04 09:52:48 UTC
(In reply to Richard W.M. Jones from comment #5)
> Thanks Vadim.  Patch posted:
> 
> https://www.redhat.com/archives/libguestfs/2016-March/msg00029.html

Hi Rich,
You are right about WdfCoInstaller*.dll Technically, we shouldn't copy this dll
manually. However, it is absolutely harmful if we do this.

Best regards,
Vadim.

Comment 7 Richard W.M. Jones 2016-03-04 10:27:02 UTC
v2 of this patch series does not copy the WdfCoInstaller*.dll files:

https://www.redhat.com/archives/libguestfs/2016-March/msg00031.html

Comment 8 Richard W.M. Jones 2016-03-04 12:05:40 UTC
v3 reverts to copying WdfCoInstaller*.dll files.

https://www.redhat.com/archives/libguestfs/2016-March/msg00037.html

Comment 9 Mike McCune 2016-03-28 23:28:22 UTC
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune@redhat.com with any questions

Comment 11 Richard W.M. Jones 2016-06-21 08:04:10 UTC
I believe that the following patch should fix this:

  commit 4c24531d907d888d20498bbac8bd4a4aef424e49
  Author: Roman Kagan <**>
  Date:   Fri Jun 3 18:14:17 2016 +0300

    v2v: copy all driver files into guest
    
    Some virtio-win drivers contain more files than just *.{cat,inf,sys}.
    They are filtered out currently, which prevents the drivers from being
    installed by PnP.
    
    Stop filtering driver files by extension, and copy all of them instead.

I'll include it in the next build.

Comment 13 mxie@redhat.com 2016-06-27 11:27:33 UTC
I can reproduce the bug on build:
virt-v2v-1.32.2-6.el7.x86_64

Try to verify the bug with builds
virt-v2v-1.32.5-6.el7.x86_64
libguestfs-1.32.5-6.el7.x86_64

Steps:
1.Use virt-v2v to convert win2008r2 or win7 guest to rhev
1.1 # virt-v2v -ic vpx://root@10.66.145.47/data/10.66.4.153/?no_verify=1 esx5.1-win2008r2-x86_64 -o rhev -os 10.73.72.63:/home/nfs_export -on win2008r2-mxie -of raw --password-file /tmp/passwd
1.2 # virt-v2v -ic vpx://root@10.66.145.47/data/10.66.4.153/?no_verify=1 esx5.1-win7-x86_64 -o rhev -os 10.73.72.63:/home/nfs_export -on win7-mxie -of raw --password-file /tmp/passwd

2.After conversion,boot the guest on rhev
3.Check "Display adapters" in device manager, the qxl driver has been installed for win2008r2 or win7 guest

Result now:
According to step3, the bug has been fixed

So move the bug from ON_QA to VERIFIED

Comment 15 errata-xmlrpc 2016-11-03 17:59:15 UTC
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://rhn.redhat.com/errata/RHSA-2016-2576.html


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