[Fedora-packaging] Request for exception: seabios-bin on ppc64
Richard W.M. Jones
rjones at redhat.com
Tue Oct 16 14:19:20 UTC 2012
Here's the situation, since the bug doesn't explain it well.
(1) qemu can run any architecture on any other architecture, using
software emulation. eg. It can run x86_64 guest operating systems on
top of ppc64 hosts (albeit not at full speed).
(2) In order to run guests, you have to provide a BIOS (or some sort
of other boot ROM), since most guests wouldn't be able to boot without
BIOS services. This applies for all guests, but of particular
interest to us are i686/x86_64 guests.
(3) SeaBIOS is a free, open source PC BIOS implementation. It is what
we use to provide services to i686/x86_64 PC guests.
(4) Although qemu itself bundles some binary BIOSes, in Fedora we have
chosen to recompile these from source. We now (on i686/x86_64)
compile or cross-compile all ROMs from source.
(5) 'seabios-bin' is the name of the RPM package that contains the
SeaBIOS ROMs. I have no idea why (historical?) this package has
'-bin' in the name, but the important point is that it is NOT a
binary-only package. It is built from source.
(6) In order to compile SeaBIOS you need a program called 'iasl' (part
of the ACPICA.org project). This program is needed to compile the
ACPI tables which are an integral part of the ROM data that is needed
for i686/x86_64 guests to boot.
(7) Unfortunately the iasl program, which runs fine on little-endian
platforms, has endianness issues. Such that when you run it on a
ppc64 host it produces big-endian ACPI tables, which are of course
completely broken. 'iasl' itself is a very large program, and I do
not know the scope of the fix for this issue -- it may be trivial, or
it may require auditing every line of code.
We would like a packaging exception which would allow us to import the
seabios-bin package (built on little-endian) into the ppc & ppc64
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
More information about the packaging