From a1175b89066dbea7ab6783ac68e9b2ce98b326b0 Mon Sep 17 00:00:00 2001 From: Zhai Edwin Date: Thu, 2 Dec 2010 15:11:53 +0800 Subject: [PATCH] qemu: Enable KVM support on x86/x86-64 host User need build kvm module for native kernel and install them by "modprobe kvm_intel". Then add "kvm" option to poky-qemu to enable it. Signed-off-by: Zhai Edwin --- meta/recipes-devtools/qemu/qemu.inc | 2 +- scripts/poky-qemu | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc index 12ce82fe8e..33c2c7149a 100644 --- a/meta/recipes-devtools/qemu/qemu.inc +++ b/meta/recipes-devtools/qemu/qemu.inc @@ -3,7 +3,7 @@ HOMEPAGE = "http://qemu.org" LICENSE = "GPLv2 & LGPLv2.1" DEPENDS = "zlib" -EXTRA_OECONF = "--target-list=arm-linux-user,arm-softmmu,i386-linux-user,i386-softmmu,x86_64-linux-user,x86_64-softmmu,mips-linux-user,mips-softmmu,ppc-linux-user,ppc-softmmu,mipsel-linux-user --disable-werror --disable-vnc-tls" +EXTRA_OECONF = "--target-list=arm-linux-user,arm-softmmu,i386-linux-user,i386-softmmu,x86_64-linux-user,x86_64-softmmu,mips-linux-user,mips-softmmu,ppc-linux-user,ppc-softmmu,mipsel-linux-user --disable-werror --disable-vnc-tls --enable-kvm" #EXTRA_OECONF += "--disable-sdl" inherit autotools diff --git a/scripts/poky-qemu b/scripts/poky-qemu index 67af439ea9..bfeefc7085 100755 --- a/scripts/poky-qemu +++ b/scripts/poky-qemu @@ -84,6 +84,7 @@ process_filename() { # Parse command line args without requiring specific ordering. It's a # bit more complex, but offers a great user experience. +KVM_ENABLED="no" i=1 while [ $i -le $# ]; do arg=${!i} @@ -124,6 +125,10 @@ while [ $i -le $# ]; do SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -serial stdio" SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT console=ttyS0" ;; + "kvm") + KVM_ENABLED="yes" + KVM_CAPABLE=`grep 'vmx\|smx' /proc/cpuinfo` + ;; *) # A directory name is an nfs rootfs if [ -d "$arg" ]; then @@ -152,6 +157,13 @@ while [ $i -le $# ]; do i=$((i + 1)) done +# Detect KVM configuration +if [[ "x$KVM_ENABLED" == "xyes" && ! -z "$KVM_CAPABLE" ]]; then + if [[ "x$MACHINE" == "xqemux86" || "x$MACHINE" == "xqemux86-64" ]]; then + SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -enable-kvm" + fi +fi + # Report errors for missing combinations of options if [[ -z "$MACHINE" && -z "$KERNEL" ]]; then echo "Error: you must specify at least a MACHINE or KERNEL argument"