Erik Nolte
2011-Sep-27 22:58 UTC
[Libguestfs] "make check" on ArchLinux: "This kernel requires an x86-64 CPU, but only detected an i686 CPU"
I'm updating the ArchLinux libguestfs package to 1.12.7, but the "make
check" tests fail in qemu with:
Booting from ROM...
This kernel requires an x86-64 CPU, but only detected an i686 CPU.
Unable to boot - please use a kernel appropriate for your CPU.
How does qemu detect the CPU type? I'm running a 64-bit ArchLinux (without
KVM) on an Intel Xeon E5420 processor. I'm able to boot qemu's small
test image (http://wiki.qemu.org/download/linux-0.2.img.bz2) and the libguestfs
iso image test passes, but the make-{debian,fedora,ubuntu,windows}-img.sh
scripts all fail with the CPU mismatch bios error.
I added "-v" to guestfish in images/guest-aux/make-debian-img.sh, ran
"make check" and got the output listed below. I got the same results
running as root and as non-root.
$ mcp:/enolte/libguestfs/src/libguestfs-1.12.7> make check
Making check in gnulib/lib
make[1]: Entering directory
`/home/enolte/libguestfs/src/libguestfs-1.12.7/gnulib/lib'
GEN configmake.h
make check-recursive
make[2]: Entering directory
`/home/enolte/libguestfs/src/libguestfs-1.12.7/gnulib/lib'
make[3]: Entering directory
`/home/enolte/libguestfs/src/libguestfs-1.12.7/gnulib/lib'
GEN configmake.h
make[3]: Leaving directory
`/home/enolte/libguestfs/src/libguestfs-1.12.7/gnulib/lib'
make[2]: Leaving directory
`/home/enolte/libguestfs/src/libguestfs-1.12.7/gnulib/lib'
make[1]: Leaving directory
`/home/enolte/libguestfs/src/libguestfs-1.12.7/gnulib/lib'
Making check in images
make[1]: Entering directory
`/home/enolte/libguestfs/src/libguestfs-1.12.7/images'
ln -sf /10klines abssymlink
rm -f test.iso test.iso-t
mkdir -p directory
/usr/bin/genisoimage -J -r -graft-points \
-o test.iso-t \
./helloworld.tar ./helloworld.tar.gz ./helloworld.tar.xz ./empty ./known-1
./known-2 ./known-3 ./known-4 ./known-5 ./bin-i586-dynamic ./bin-sparc-dynamic
./bin-win32.exe ./bin-win64.exe ./bin-x86_64-dynamic ./lib-i586.so
./lib-sparc.so ./lib-win32.dll ./lib-win64.dll ./lib-x86_64.so ./test-grep.txt
./100kallzeroes ./100kallnewlines ./100kallspaces ./100krandom ./10klines
./abssymlink ./hello.b64 ./initrd ./initrd-x86_64.img ./initrd-x86_64.img.gz
./test-grep.txt.gz /directory=directory
Total translation table size: 0
Total rockridge attributes bytes: 3010
Total directory bytes: 2048
Path table size(bytes): 26
Max brk space used 0
635 extents written (1 MB)
rmdir directory
mv test.iso-t test.iso
make debian.img fedora.img ubuntu.img windows.img
make[2]: Entering directory
`/home/enolte/libguestfs/src/libguestfs-1.12.7/images'
TMPDIR=.. \
SRCDIR=. \
bash guest-aux/make-debian-img.sh
libguestfs: [00000ms] febootstrap-supermin-helper --verbose -f checksum
'/home/enolte/libguestfs/src/libguestfs-1.12.7/appliance/supermin.d'
x86_64
supermin helper [00000ms] whitelist = (not specified), host_cpu = x86_64, kernel
= (null), initrd = (null), appliance = (null)
supermin helper [00000ms] inputs[0] =
/home/enolte/libguestfs/src/libguestfs-1.12.7/appliance/supermin.d
supermin helper [00000ms] finished creating kernel
supermin helper [00000ms] visiting
/home/enolte/libguestfs/src/libguestfs-1.12.7/appliance/supermin.d
supermin helper [00000ms] visiting
/home/enolte/libguestfs/src/libguestfs-1.12.7/appliance/supermin.d/base.img
supermin helper [00000ms] visiting
/home/enolte/libguestfs/src/libguestfs-1.12.7/appliance/supermin.d/daemon.img
supermin helper [00000ms] visiting
/home/enolte/libguestfs/src/libguestfs-1.12.7/appliance/supermin.d/hostfiles
supermin helper [00020ms] visiting
/home/enolte/libguestfs/src/libguestfs-1.12.7/appliance/supermin.d/init.img
supermin helper [00052ms] finished creating appliance
libguestfs: [00055ms] begin testing qemu features
libguestfs: [00068ms] finished testing qemu features
libguestfs: accept_from_daemon: 0x1625140 g->state = 1
[00069ms] /usr/bin/qemu \
-drive file=debian.img.tmp,cache=off,format=raw,if=virtio \
-nodefconfig \
-machine pc,accel=kvm:tcg \
-nodefaults \
-nographic \
-m 500 \
-no-reboot \
-no-hpet \
-device virtio-serial \
-serial stdio \
-chardev
socket,path=/home/enolte/libguestfs/src/libguestfs-1.12.7/libguestfsCMM14k/guestfsd.sock,id=channel0
\
-device virtserialport,chardev=channel0,name=org.libguestfs.channel.0 \
-kernel
/home/enolte/libguestfs/src/libguestfs-1.12.7/.guestfs-1004/kernel.26205 \
-initrd
/home/enolte/libguestfs/src/libguestfs-1.12.7/.guestfs-1004/initrd.26205 \
-append 'panic=1 console=ttyS0 udevtimeout=300 noapic acpi=off
printk.time=1 cgroup_disable=memory selinux=0 guestfs_verbose=1
TERM=xterm-256color ' \
-drive
file=/home/enolte/libguestfs/src/libguestfs-1.12.7/.guestfs-1004/root.26205,snapshot=on,if=virtio,cache=unsafeCould
not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
Back to tcg accelerator.
\x1b[1;256r\x1b[256;256H\x1b[6n
Google, Inc.
Serial Graphics Adapter 09/23/11
SGABIOS $Id: sgabios.S 8 2010-04-22 00:03:40Z nlaredo $ (root at saltdev) Fri
Sep 23 18:55:38 UTC 2011
Term: 80x24
4 0
SeaBIOS (version pre-0.6.3-20110315_112143-titi)
Booting from ROM...
This kernel requires an x86-64 CPU, but only detected an i686 CPU.
Unable to boot - please use a kernel appropriate for your CPU.
^Cmake[2]: *** [debian.img] Interrupt
make[1]: *** [check-am] Interrupt
make: *** [check-recursive] Interrupt
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://listman.redhat.com/archives/libguestfs/attachments/20110927/55e47fb1/attachment.htm>
Richard W.M. Jones
2011-Sep-28 10:27 UTC
[Libguestfs] "make check" on ArchLinux: "This kernel requires an x86-64 CPU, but only detected an i686 CPU"
On Tue, Sep 27, 2011 at 06:58:09PM -0400, Erik Nolte wrote:> I'm updating the ArchLinux libguestfs package to 1.12.7, but the "make check" tests fail in qemu with: > > Booting from ROM... > This kernel requires an x86-64 CPU, but only detected an i686 CPU. > Unable to boot - please use a kernel appropriate for your CPU. > > How does qemu detect the CPU type? I'm running a 64-bit ArchLinux (without KVM) on an Intel Xeon E5420 processor. I'm able to boot qemu's small test image (http://wiki.qemu.org/download/linux-0.2.img.bz2) and the libguestfs iso image test passes, but the make-{debian,fedora,ubuntu,windows}-img.sh scripts all fail with the CPU mismatch bios error. > > I added "-v" to guestfish in images/guest-aux/make-debian-img.sh, ran "make check" and got the output listed below. I got the same results running as root and as non-root.[...]> [00069ms] /usr/bin/qemu \This is the problem. /usr/bin/qemu is an i686 emulator. You need to use qemu-system-x86_64 instead. You can change this either by temporarily setting $LIBGUESTFS_QEMU, or by using ./configure --with-qemu="qemu-system-x86_64" The default for configure is to test each of: - qemu-kvm - qemu-system-<hostarch> - qemu so this may indicate that you don't actually have qemu-system-x86_64 installed. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones New in Fedora 11: Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 70 libraries supprt'd http://fedoraproject.org/wiki/MinGW http://www.annexia.org/fedora_mingw