From 7c1a8a624cad8d967635c6cb5f99cf655bde3d44 Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Fri, 4 Jan 2019 15:15:43 +0800 Subject: 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. Signed-off-by: Robert Yang Signed-off-by: Richard Purdie --- meta/lib/oe/types.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'meta/lib/oe/types.py') diff --git a/meta/lib/oe/types.py b/meta/lib/oe/types.py index f4017130df..1eebba5a38 100644 --- a/meta/lib/oe/types.py +++ b/meta/lib/oe/types.py @@ -156,3 +156,27 @@ def path(value, relativeto='', normalize='true', mustexist='false'): raise ValueError("{0}: {1}".format(value, os.strerror(errno.ENOENT))) 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 + -- cgit 1.2.3-korg