u-boot's uImage kernel format is not supported by Qemu. Extract the kernel from the uImage to a temporary directory.
Signed-off-by: Adrian Freihofer <[email protected]> --- scripts/runqemu | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index ba0b701aff..fa630fc7a4 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -163,6 +163,7 @@ class BaseConfig(object): self.bios = '' self.kernel_cmdline = '' self.kernel_cmdline_script = '' + self.temp_kernel_dir = None self.bootparams = '' self.dtb = '' self.fstype = '' @@ -1422,10 +1423,26 @@ class BaseConfig(object): self.setup_serial() self.setup_vga() + def dump_uimage(self): + if self.kernel and self.get('KERNEL_IMAGETYPE') == 'uImage': + import tempfile + self.temp_kernel_dir = tempfile.mkdtemp() + kernel = os.path.join(self.temp_kernel_dir, 'image') + dumpimage_bin = os.path.join(self.bindir_native, 'dumpimage') + image_link_name = self.get('IMAGE_LINK_NAME') + logger.info('Running: %s' % str([dumpimage_bin, "-o ", kernel, self.kernel])) + staging_bindir_native = '%s/usr/bin' % self.get('STAGING_DIR_NATIVE') + dumpimage_bin = os.path.join(staging_bindir_native, 'dumpimage') + subprocess.run([dumpimage_bin, "-p", "0", "-o", kernel, self.kernel]) + return kernel + return self.kernel + def start_qemu(self): import shlex - if self.kernel: - kernel_opts = "-kernel %s -append '%s %s %s %s'" % (self.kernel, self.kernel_cmdline, + + kernel = self.dump_uimage() + if kernel: + kernel_opts = "-kernel %s -append '%s %s %s %s'" % (kernel, self.kernel_cmdline, self.kernel_cmdline_script, self.get('QB_KERNEL_CMDLINE_APPEND'), self.bootparams) if self.bios: @@ -1481,6 +1498,9 @@ class BaseConfig(object): shutil.rmtree(self.rootfs) shutil.rmtree('%s.pseudo_state' % self.rootfs) + if self.temp_kernel_dir: + shutil.rmtree(self.temp_kernel_dir) + self.cleaned = True def run_bitbake_env(self, mach=None): -- 2.26.3
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#150605): https://lists.openembedded.org/g/openembedded-core/message/150605 Mute This Topic: https://lists.openembedded.org/mt/82147203/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
