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