[OE-core] [PATCH v2 2/2] runqemu: Allow the user to specity no kernel or rootFS

Alistair Francis alistair.francis at xilinx.com
Tue Nov 8 17:23:04 UTC 2016


On Tue, Nov 8, 2016 at 3:15 AM, Nathan Rossi <nathan at nathanrossi.com> wrote:
> On 3 November 2016 at 10:17, Alistair Francis
> <alistair.francis at xilinx.com> wrote:
>> In some cirsumstances the user doesn't want to supply a kernel, rootFS
>> or DTB to QEMU. This will occur more now that QEMU supports loading
>> images using a '-device loader' method.
>>
>> Allow users to specify 'none' for QB_DEFAULT_FSTYPE or QB_DEFAULT_KERNEL
>> to avoid supplying these options to QEMU.
>
> Just wondering if it would be worth adding a "QB_KERNEL_OPT" similar
> to how QB_ROOTFS_OPT works. This way the "none" would not be needed
> and it would allow for using the "-device loader" arg for machines
> that boot that way.
>
> e.g.
>
> QB_KERNEL_OPT = "-kernel @KERNEL@"
> or
> QB_KERNEL_OPT = "-device loader,addr=0xdeadbeef,file=@KERNEL@"
> or (if not able to load kernel, aka 'none')
> QB_KERNEL_OPT = ""

That way is fine with me, but that would then break compatibility with
other layers using this (they would all need to set the KERNEL_OPT so
I tried to avoid that.

I guess you could set the default to "-kernel @KERNEL@" which probably
wouldn't break anything though.

I'm happy to update the patch if that is the preference. Do people
think that's a better option?

Thanks,

Alistair

>
> Regards,
> Nathan
>
>>
>> Signed-off-by: Alistair Francis <alistair.francis at xilinx.com>
>> ---
>>  scripts/runqemu | 9 ++++++++-
>>  1 file changed, 8 insertions(+), 1 deletion(-)
>>
>> diff --git a/scripts/runqemu b/scripts/runqemu
>> index 922ebaf..5f60312 100755
>> --- a/scripts/runqemu
>> +++ b/scripts/runqemu
>> @@ -453,7 +453,7 @@ class BaseConfig(object):
>>      def check_rootfs(self):
>>          """Check and set rootfs"""
>>
>> -        if self.fstype == 'nfs':
>> +        if self.fstype == 'nfs' or self.fstype == "none":
>>              return
>>
>>          if self.rootfs and not os.path.exists(self.rootfs):
>> @@ -481,6 +481,10 @@ class BaseConfig(object):
>>          # QB_DEFAULT_KERNEL is always a full file path
>>          kernel_name = os.path.basename(self.get('QB_DEFAULT_KERNEL'))
>>
>> +        # The user didn't want a kernel to be loaded
>> +        if kernel_name == "none":
>> +            return
>> +
>>          deploy_dir_image = self.get('DEPLOY_DIR_IMAGE')
>>          if not self.kernel:
>>              kernel_match_name = "%s/%s" % (deploy_dir_image, kernel_name)
>> @@ -857,6 +861,9 @@ class BaseConfig(object):
>>              k_root = '/dev/nfs nfsroot=%s:%s,%s' % (self.nfs_server, self.nfs_dir, self.unfs_opts)
>>              self.kernel_cmdline = 'root=%s rw highres=off' % k_root
>>
>> +        if self.fstype == 'none':
>> +            self.rootfs_options = ''
>> +
>>          self.set('ROOTFS_OPTIONS', self.rootfs_options)
>>
>>      def guess_qb_system(self):
>> --
>> 2.7.4
>>



More information about the Openembedded-core mailing list