[OE-core] [PATCH 5/6] runqemu: try symlinks when kernel or rootfs can't be found
Robert Yang
liezhi.yang at windriver.com
Sun Sep 18 07:23:57 UTC 2016
On 09/16/2016 08:52 PM, Joshua Lock wrote:
> If the kernel or rootfs names written to the qemuboot.conf can't
> be found, try and find the symlinked variant of the filename.
>
> This will help usability of runqemu, for example where a user
> downloads an image and associated files as the symlinked names
> yet the qemuboot.conf variables point to the full, non-linked,
> file names.
>
> Signed-off-by: Joshua Lock <joshua.g.lock at intel.com>
> ---
> scripts/runqemu | 16 +++++++++++++---
> 1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/runqemu b/scripts/runqemu
> index 6aaae44..38f9b30 100755
> --- a/scripts/runqemu
> +++ b/scripts/runqemu
> @@ -451,7 +451,12 @@ class BaseConfig(object):
> if all_files:
> self.rootfs = all_files[0]
> else:
> - raise Exception("Failed to find rootfs: %s" % cmd)
> + cmd = '%s/%s*.%s' % (self.get('DEPLOY_DIR_IMAGE'), self.get('IMAGE_LINK_NAME'), self.fstype)
> + all_files = glob.glob(cmd)
> + if all_files:
> + self.rootfs = all_files[0]
> + else:
> + raise Exception("Failed to find rootfs: %s" % cmd)
>
> if not os.path.exists(self.rootfs):
> raise Exception("Can't find rootfs: %s" % self.rootfs)
> @@ -462,13 +467,18 @@ class BaseConfig(object):
> if self.fstype in self.vmtypes:
> return
> kernel = self.kernel
> + deploy_dir_image = self.get('DEPLOY_DIR_IMAGE')
> if not kernel:
> - kernel = "%s/%s" % (self.get('DEPLOY_DIR_IMAGE'), self.get('QB_DEFAULT_KERNEL'))
> + kernel = "%s/%s" % (deploy_dir_image, self.get('QB_DEFAULT_KERNEL'))
>
> if os.path.exists(kernel):
> self.kernel = kernel
> else:
> - raise Exception("KERNEL %s not found" % kernel)
> + kernel = "%s/%s" % (deploy_dir_image, self.get('KERNEL_IMAGETYPE'))
> + if kernel != deploy_dir_image and os.path.exists(kernel):
Thank you very much for fixing this, can we use KERNEL_IMAGETYPE* here, please ?
Please take a look at here:
http://autobuilder.yoctoproject.org/pub/releases/yocto-2.2_M3.rc1/machines/qemu/qemuppc/
Its kernel name might be vmlinux-qemuppc.bin, while KERNEL_IMAGETYPE is vmlinux.
I have local patches conflicted with this, they also fix dtb,
OECORE_NATIVE_SYSROOT and nfs. I will send a V2 including your patches,
and please feel free to comment.
// Robert
> + self.kernel = kernel
> + else:
> + raise Exception("KERNEL %s not found" % kernel)
>
> dtb = self.get('QB_DTB')
> if dtb:
>
More information about the Openembedded-core
mailing list