[OE-core] [PATCH RFC] scripts/runqemu: Be more loose when guessing QB_SYSTEM_NAME variable

Cal Sullivan california.l.sullivan at intel.com
Tue Sep 27 19:51:04 UTC 2016



On 09/27/2016 11:59 AM, Joshua Lock wrote:
> On Tue, 2016-09-27 at 11:27 -0700, California Sullivan wrote:
>> Following the instructions to reproduce YOCTO #10026 I found that
>> runqemu would fail to start because QB_SYSTEM_NAME is null. This
>> patch
>> makes the guessing algorithm more loose allowing it to correctly
>> guess
>> the variable from the MACHINE name.
> Out of interest can you help me understand how/when the current code
> fails?
I ran into this following the instructions on the first post here: 
https://bugzilla.yoctoproject.org/show_bug.cgi?id=10026

We create a bsp layer called myqemux86-64 that gets a x86-64 
architecture and MACHINE named myqemux86-64. There is no qemuboot.conf 
file generated so it has to try and guess the variable. In the guessing 
function mach gets assigned myqemux86-64, which doesn't match to any of 
the machines directly, so it bails out.

Ultimately the failure probably isn't with runqemu, but the yocto-bsp 
scripts not supporting the new runqemu. Unfortunately I have no 
experience with either part of the system, so I took the path of least 
resistance to quickly get it working again (hence the RFC).

>
>> It is still a good assumption that if it contains "qemux86-64" for
>> example, that the system is x86-64, so this is unlikely to cause any
>> new issues while preserving some peoples' old workflows.
>>
>> Signed-off-by: California Sullivan <california.l.sullivan at intel.com>
>> ---
>>   scripts/runqemu | 20 ++++++++++----------
>>   1 file changed, 10 insertions(+), 10 deletions(-)
>>
>> diff --git a/scripts/runqemu b/scripts/runqemu
>> index 45bcad7..b06d09e 100755
>> --- a/scripts/runqemu
>> +++ b/scripts/runqemu
>> @@ -870,20 +870,20 @@ class BaseConfig(object):
>>           if not mach:
>>               return None
>>   
>> -        if mach == 'qemuarm':
>> -            qbsys = 'arm'
>> -        elif mach == 'qemuarm64':
>> +        elif 'qemuarm64' in mach:
> This elif should be below the "if 'qemuarm' in mach" below which begins
> the control flow statements for determining the value to assign to the
> qbsys variable.
Oops, you are correct. I very quickly reordered them to account for 
having to check the longer mach names first and missed that. I will fix 
it on a V2 if we decide to use this.

Thanks,
Cal

>
>>               qbsys = 'aarch64'
>> -        elif mach == 'qemux86':
>> -            qbsys = 'i386'
>> -        elif mach == 'qemux86-64':
>> +        if 'qemuarm' in mach:
>> +            qbsys = 'arm'
>> +        elif 'qemux86-64' in mach:
>>               qbsys = 'x86_64'
>> -        elif mach == 'qemuppc':
>> +        elif 'qemux86' in mach:
>> +            qbsys = 'i386'
>> +        elif 'qemuppc' in mach:
>>               qbsys = 'ppc'
>> -        elif mach == 'qemumips':
>> -            qbsys = 'mips'
>> -        elif mach == 'qemumips64':
>> +        elif 'qemumips64' in mach:
>>               qbsys = 'mips64'
>> +        elif 'qemumips' in mach:
>> +            qbsys = 'mips'
>>   
>>           return 'qemu-system-%s' % qbsys
>>   
>> -- 
>> 2.5.5
>>




More information about the Openembedded-core mailing list