[Pkg-xen-devel] Bug#776742:xen-utils-common: no support for VGA Passthrough
Chuck Zmudzinski
brchuckz at netscape.net
Sun Feb 12 18:05:57 UTC 2017
This bug, at its core, is that currently there is no supported solution
for VGA
passthrough on Xen for stable version Jessie from Debian.
After browsing Xen's repositories, I found out that Xen did not claim to
support
VGA passthrough with the upstream qemu-xen device model until Sep 25,
2015, the
date the xl.cfg man page was updated to indicate support for VGA passthrough
with upstream qemu-xen. This change to the xl.cfg man page was only made
on the
Xen version 4.7 and 4.8 branches, so if you want to use VGA passthrough
without
the traditional qemu-dm binary, you must upgrade to at least Xen version
4.7.
Debian testing (currently stretch) uses Xen 4.8 and it presumably
supports VGA
passthrough without qemu-xen-traditional but I have not tried it.
This situation leaves users of Debian stable (currently Jessie) with no
supported solution from Debian for VGA passthrough on Xen. Obviously
there are
two solutions. Backport Xen 4.7 or greater to Jessie, or restore the
traditional qemu-dm binary to the Xen 4.4.x package for Jessie.
A couple of months ago I decided to try and rebuild the Xen source package
for Jessie with support for qemu-xen-traditional from upstream included.
It did
not take long to get a working package that solves this bug. I
discovered the
following facts:
1. Adding qemu-xen-traditional in a way supported by Xen also requires
rombios
which, like qemu-xen-traditional, is disabled in Debian's official
build of
Xen for Jessie.
2. After configuring the build for qemu-xen-traditional and rombios, the
only
binary package that is modified significantly is xen-utils-4.4, which is
where the qemu-dm binary is installed, and where a modified
hvmloader binary
is installed so it includes the statically linked rombios modules.
3. With these changes to xen-utils-4.4, together with a few simple
configuration
tweaks such as the location of the qemu keymaps directory, VGA
passthrough
on Debian Jessie works with HVM domains that use qemu-xen-traditional,
and this feature can be enabled simply by adding 2 lines to the config
file: device_model_version = 'qemu-xen-traditional'
gfx_passthru = '1'
I think the second option is only needed if you want the passed through
video card to be the primary video adapter, but I have never tried VGA
passthrough as a secondary adapter in the HVM. Your mileage may vary.
4. Also, with these changes to xen-utils, the qemu-xen upstream device model
and the seabios bios remain the defaults, so these changes will not do
violence to existing installations that use upstream qemu-xen and
seabios.
5. It is not possible to build the Xen source package with
qemu-xen-traditional
in such a way that it meets all the requirements for inclusion in
the main
area of Debian's archive of packages. Specifically, the build must
access
remote repositories to download qemu-xen-traditional source files from
xen.org and ipxe source files from ipxe.org. Later I found it is
possible to
build and configure a working package that supports VGA passthrough
without
ipxe by making a couple of small configuration tweaks that remove
etherboot
and ipxe support from the rombios modules that are statically linked
into
hvmloader. But the requirement that the build not access the
internet for
source files cannot be met unless the xen source package is modified
by adding another original source tar archive, something like the
xen_4.1.6.lts1.orig-qemu.tar.xz source file for the xen package for
oldstable
Wheezy that does include support for qemu-xen-traditional and VGA
passthrough, in order for the build to succeed without needing to access
a remote repository.
With these discoveries, I would like to make the observation that
although it is
not trivial, it seems like it would not be too dificult for the Debian
Xen team
to add support for qemu-xen-traditional and rombios to the Xen source
package so
the resulting binary packages would support VGA passthrough when an HVM
domain
is configured to use qemu-xen-traditional.
After having said all this, the stage is set for my question: Why hasn't the
Debian Xen team added support for VGA passthrough in Debian Jessie?
From Archived Bug #688311, Bastian Blank asserted that qemu-dm will not
come
back and that you have to use the normal (now called upstream) qemu.
Ian Campbell responded: "Just FYI position of upstream is that the
'traditional'
qemu-dm will continue to be maintained for the foreseeable future for the
benefit of users who are running guest OSes which are not as happy to
have the
"motherboard" changed from under them as Linux is."
That was over four years ago, and Debian still has not restored qemu-dm so
users of a stable Debian system can have a working VGA Passthrough for any
guest OS, not even Linux, much less users of those Oses that don't like the
motherboard changed from other them.
As far as I can tell, Xen still maintains the traditional qemu-dm, and I was
able to recently rebuild the xen package for Jessie and get VGA Passthrough
working on Jessie with the most recent version of the traditional device
model
that is available from Xen for the stable 4.4 release of Xen.
So I ask again, why can't the Debian Xen team restore qemu-dm to its
official
Xen package for Jessie?
The only reasonable reasons I can think of is that there is some free
software
licensing issue with the rombios modules that are statically linked to
hvmloader
or with some necessary component of qemu-dm, or the Debian Xen team has
too few
resources and is devoting its efforts to developing Xen for stretch
rather than
adding feaatures that did not make it into Jessie when it was released.
But why
should oldstable Wheezy have a feature that stable Jessie does not have?
In any case, I hope the Debian Xen team can explain why qemu-dm cannot be
restored to Debian Jessie's offical xen package.
Thank you for your consideration of my question.
Sincerely,
Chuck Zmudzinski
More information about the Pkg-xen-devel
mailing list