[Libguestfs] Notes on libguestfs with Ubuntu 12.04 (Precise)
Richard W.M. Jones
rjones at redhat.com
Sun Apr 15 20:05:49 UTC 2012
On Sat, Apr 14, 2012 at 09:49:03PM +0100, Richard W.M. Jones wrote:
> > There is another problem which you may hit, if you add a completely
> > blank disk to libguestfs (this also affects libguestfs-test-tool):
> >
> > https://bugs.launchpad.net/ubuntu/+source/linux/+bug/931371
> > https://bugzilla.kernel.org/show_bug.cgi?id=42778
I've now identified the bug, and provided a fix. The bug in fact is
in SeaBIOS (not the kernel as originally thought):
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/931371/comments/12
To recompile SeaBIOS with this fix on Ubuntu 12.04, do:
apt-get source seabios
cd seabios-0.6.2/debian/patches
# Download the patch attached to this email into this directory.
echo 0001-Fix-alignment-bug-in-pci_bios_init_root_regions.patch >> series
cd ../..
debuild -i -uc -us -b
cd ..
sudo dpkg -i seabios_0.6.2-0ubuntu2_all.deb
After this, libguestfs should work normally. (Note you may also need
to do the febootstrap update from the previous email and rebuild the
appliance).
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top
-------------- next part --------------
>From 3c5fcec00ce1317cda56d549259550fcc018c834 Mon Sep 17 00:00:00 2001
From: Kevin O'Connor <kevin at koconnor.net>
Date: Sat, 1 Oct 2011 12:35:32 -0400
Subject: [PATCH] Fix alignment bug in pci_bios_init_root_regions().
If there are no memory allocations for a given type then the "max" bar
size is zero. However, ALIGN_DOWN does not handle an alignment of
zero properly. Catch and handle the zero case.
Signed-off-by: Kevin O'Connor <kevin at koconnor.net>
---
src/pciinit.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pciinit.c b/src/pciinit.c
index a857da0..0d8758e 100644
--- a/src/pciinit.c
+++ b/src/pciinit.c
@@ -536,7 +536,7 @@ static void pci_bios_init_bus_bases(struct pci_bus *bus)
}
}
-#define ROOT_BASE(top, sum, align) ALIGN_DOWN((top)-(sum),(align))
+#define ROOT_BASE(top, sum, max) ALIGN_DOWN((top)-(sum),(max) ?: 1)
static int pci_bios_init_root_regions(u32 start, u32 end)
{
--
1.7.9.5
More information about the Libguestfs
mailing list