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

Reply via email to