[Libguestfs] [PATCH] v2v: virtio-win: include *.dll too
Richard W.M. Jones
rjones at redhat.com
Tue Oct 27 14:11:10 UTC 2015
On Tue, Oct 27, 2015 at 04:45:00PM +0300, Roman Kagan wrote:
> On Tue, Oct 27, 2015 at 12:02:40PM +0000, Richard W.M. Jones wrote:
> > On Tue, Oct 27, 2015 at 02:08:42PM +0300, Roman Kagan wrote:
> > > On Tue, Oct 27, 2015 at 09:12:41AM +0000, Richard W.M. Jones wrote:
> > > > On Mon, Oct 26, 2015 at 09:00:03PM +0300, Roman Kagan wrote:
> > > > > Windows QXL drivers include also qxldd.dll which used to get filtered
> > > > > out and not copied over into the guest. As a result QXL driver failed
> > > > > to install due to a missing file.
> > > > > (* Skip files without specific extensions. *)
> > > > > - let extensions = ["cat"; "inf"; "pdb"; "sys"] in
> > > > > + let extensions = ["cat"; "dll"; "inf"; "pdb"; "sys"] in
> > > >
> > > > Actually no, this part is (may be) wrong.
> > > >
> > > > This causes WdfCoInstaller*.dll from the ISO to be copied in. It's
> > > > not clear to me whether these files are needed - I suspect not.
> > >
> > > Yes it is, see the corresponding *.inf where it's mentioned in the
> > > corresponding CopyFiles directive (and yes, I just verified that with
> > > that file missing the balloon driver installation fails with 'file not
> > > found' error).
> >
> > Maybe we should be looking at the CopyFiles directive? (As you may be
> > able to guess, I know next to nothing about how Windows drivers work).
>
> So do I, and parsing the *.inf files is the last thing I'd like to do
> here; I'm not sure it can be made reliable (I mean, not the parsing, but
> making any sense out of the parsed data).
>
> However I'm now facing a more serious problem: when I actually went
> ahead and looked into the virio-win iso packaged in the rhel virtio-win
> rpm, I found out that its contents differed significantly from what was
> packaged in that very same rpm as a driver directory hierarchy.
>
> Namely,
>
> - there are no qxl drivers on the iso, but they are present in the rpm
>
> - there are no balloon, qemupciserial, viorng, vioserial in the rpm,
> but they are present on the iso
>
> - qemupciserial is an inf-only 'driver' which matches all windows
> versions; it's just one copy at the sub-toplevel directory, so it
> won't pass the virtio_iso_path_matches_guest_os() criteria
>
> - there are a lot of duplicates between files for different windows
> flavors
>
> To sum up, the packaging and naming policy of the virtio-win rpm and the
> virtio-win iso therein are different and neither is clear. Hardcoding
> the policy in v2v without actually knowing it appears risky at best.
>
> We need guidance here from someone who knows how that virtio-win stuff
> is packaged and how different it is across distros. Any idea whom to
> contact on the matter?
Amnon -- CC'd -- I guess?
I'm aware that there are at least some differences in paths, and the
current virt-v2v code should be able to cope for the two drivers that
we really care about - viostor and virtio-net. Of course it can't
install drivers that don't exist on either the ISO or the rpm.
Rich.
> > Anyhow, can you fix up the test at least.
>
> Sure, but I'd like first to figure out how to fix up the code ;)
>
> Roman.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/
More information about the Libguestfs
mailing list