mirror of
https://git.yoctoproject.org/poky
synced 2026-06-02 01:19:52 +00:00
oeqa: Fix for QEMU_USE_KVM
Fixed:
MACHINE = "qemux86"
QEMU_USE_KVM = "qemux86"
IMAGE_CLASSES += "testimage"
$ oe-selftest -r runqemu.RunqemuTests.test_boot_rootfs
[snip]
File "/buildarea1/lyang1/poky/meta/lib/oe/types.py", line 122, in boolean
raise ValueError("Invalid boolean value '%s'" % value)
ValueError: Invalid boolean value 'qemux86'
Now QEMU_USE_KVM can only be boolean, can not contain MACHINE any more, kvm
will be enabled if target_arch == build_arch or both of them are x86 archs.
(From OE-Core rev: 7c1a8a624cad8d967635c6cb5f99cf655bde3d44)
(From OE-Core rev: 2c12e1d9c262fb7e5fe02ae2d092789d6536413f)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
e82e4d2cb0
commit
6b6b442f3e
@@ -248,13 +248,7 @@ def testimage_main(d):
|
|||||||
boottime = int(d.getVar("TEST_QEMUBOOT_TIMEOUT"))
|
boottime = int(d.getVar("TEST_QEMUBOOT_TIMEOUT"))
|
||||||
|
|
||||||
# Get use_kvm
|
# Get use_kvm
|
||||||
qemu_use_kvm = d.getVar("QEMU_USE_KVM")
|
kvm = oe.types.qemu_use_kvm(d.getVar('QEMU_USE_KVM'), d.getVar('TARGET_ARCH'))
|
||||||
if qemu_use_kvm and \
|
|
||||||
(d.getVar('MACHINE') in qemu_use_kvm.split() or \
|
|
||||||
oe.types.boolean(qemu_use_kvm) and 'x86' in machine):
|
|
||||||
kvm = True
|
|
||||||
else:
|
|
||||||
kvm = False
|
|
||||||
|
|
||||||
# TODO: We use the current implementatin of qemu runner because of
|
# TODO: We use the current implementatin of qemu runner because of
|
||||||
# time constrains, qemu runner really needs a refactor too.
|
# time constrains, qemu runner really needs a refactor too.
|
||||||
|
|||||||
@@ -156,3 +156,27 @@ def path(value, relativeto='', normalize='true', mustexist='false'):
|
|||||||
raise ValueError("{0}: {1}".format(value, os.strerror(errno.ENOENT)))
|
raise ValueError("{0}: {1}".format(value, os.strerror(errno.ENOENT)))
|
||||||
|
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
def is_x86(arch):
|
||||||
|
"""
|
||||||
|
Check whether arch is x86 or x86_64
|
||||||
|
"""
|
||||||
|
if arch.startswith('x86_') or re.match('i.*86', arch):
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def qemu_use_kvm(kvm, target_arch):
|
||||||
|
"""
|
||||||
|
Enable kvm if target_arch == build_arch or both of them are x86 archs.
|
||||||
|
"""
|
||||||
|
|
||||||
|
use_kvm = False
|
||||||
|
if kvm and boolean(kvm):
|
||||||
|
build_arch = os.uname()[4]
|
||||||
|
if is_x86(build_arch) and is_x86(target_arch):
|
||||||
|
use_kvm = True
|
||||||
|
elif build_arch == target_arch:
|
||||||
|
use_kvm = True
|
||||||
|
return use_kvm
|
||||||
|
|
||||||
|
|||||||
@@ -107,13 +107,7 @@ class QemuTarget(BaseTarget):
|
|||||||
dump_target_cmds = d.getVar("testimage_dump_target")
|
dump_target_cmds = d.getVar("testimage_dump_target")
|
||||||
dump_host_cmds = d.getVar("testimage_dump_host")
|
dump_host_cmds = d.getVar("testimage_dump_host")
|
||||||
dump_dir = d.getVar("TESTIMAGE_DUMP_DIR")
|
dump_dir = d.getVar("TESTIMAGE_DUMP_DIR")
|
||||||
qemu_use_kvm = d.getVar("QEMU_USE_KVM")
|
use_kvm = oe.types.qemu_use_kvm(d.getVar('QEMU_USE_KVM'), d.getVar('TARGET_ARCH'))
|
||||||
if qemu_use_kvm and \
|
|
||||||
(oe.types.boolean(qemu_use_kvm) and "x86" in d.getVar("MACHINE") or \
|
|
||||||
d.getVar("MACHINE") in qemu_use_kvm.split()):
|
|
||||||
use_kvm = True
|
|
||||||
else:
|
|
||||||
use_kvm = False
|
|
||||||
|
|
||||||
# Log QemuRunner log output to a file
|
# Log QemuRunner log output to a file
|
||||||
import oe.path
|
import oe.path
|
||||||
|
|||||||
Reference in New Issue
Block a user