runqemu: try and guess qemu-system binary when MACHINE isn't set
Emulate some logic from the prior, shell based, version of runqemu to try and infer the correct setting for MACHINE from the kernel and rootfs filenames. (From OE-Core rev: a5adabe1414061d6864c5913dd5e66a4527838f1) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
cd47b648af
commit
c97912a17d
|
@ -846,8 +846,44 @@ class BaseConfig(object):
|
|||
|
||||
self.set('ROOTFS_OPTIONS', self.rootfs_options)
|
||||
|
||||
def guess_qb_system(self):
|
||||
"""attempt to determine the appropriate qemu-system binary"""
|
||||
mach = self.get('MACHINE')
|
||||
if not mach:
|
||||
search = '.*(qemux86-64|qemux86|qemuarm64|qemuarm|qemumips64|qemumips|qemuppc).*'
|
||||
if self.rootfs:
|
||||
match = re.match(search, self.rootfs)
|
||||
if match:
|
||||
mach = match.group(1)
|
||||
elif self.kernel:
|
||||
match = re.match(search, self.kernel)
|
||||
if match:
|
||||
mach = match.group(1)
|
||||
|
||||
if not mach:
|
||||
return None
|
||||
|
||||
if mach == 'qemuarm':
|
||||
qbsys = 'arm'
|
||||
elif mach == 'qemuarm64':
|
||||
qbsys = 'aarch64'
|
||||
elif mach == 'qemux86':
|
||||
qbsys = 'i386'
|
||||
elif mach == 'qemux86-64':
|
||||
qbsys = 'x86_64'
|
||||
elif mach == 'qemuppc':
|
||||
qbsys = 'ppc'
|
||||
elif mach == 'qemumips':
|
||||
qbsys = 'mips'
|
||||
elif mach == 'qemumips64':
|
||||
qbsys = 'mips64'
|
||||
|
||||
return 'qemu-system-%s' % qbsys
|
||||
|
||||
def setup_final(self):
|
||||
qemu_system = self.get('QB_SYSTEM_NAME')
|
||||
if not qemu_system:
|
||||
qemu_system = self.guess_qb_system()
|
||||
if not qemu_system:
|
||||
raise Exception("Failed to boot, QB_SYSTEM_NAME is NULL!")
|
||||
|
||||
|
|
Loading…
Reference in New Issue