[OE-core] [PATCH 2/6] qemuboot: write the full kernel filename, not the link name
Joshua Lock
joshua.g.lock at intel.com
Fri Sep 16 12:52:29 UTC 2016
KERNEL_IMAGETYPE gives the filename of a symlink to the kernel,
which may not be available i.e. if the user downloads some build
artefacts to run on a local machine. It's also possible that the
link will point to a newer kernel than was intended for use with
the rootfs in the qemuboot.conf.
It's much more reliable to read the name of the file
KERNEL_IMAGETYPE is linking to and assign the full filename to
QB_DEFAULT_KERNEL.
[YOCTO #10285]
Signed-off-by: Joshua Lock <joshua.g.lock at intel.com>
---
meta/classes/qemuboot.bbclass | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass
index 8500c73..0892db3 100644
--- a/meta/classes/qemuboot.bbclass
+++ b/meta/classes/qemuboot.bbclass
@@ -63,6 +63,14 @@ python write_qemuboot_conf() {
cf.add_section('config_bsp')
for k in build_vars + qb_vars:
cf.set('config_bsp', k, '%s' % d.getVar(k, True))
+
+ # QB_DEFAULT_KERNEL's value of KERNEL_IMAGETYPE is the name of a symlink
+ # to the kernel file, which hinders relocatability of the qb conf.
+ # Read the link and replace it with the full filename of the target.
+ kernel_link = os.path.join(d.getVar('DEPLOY_DIR_IMAGE', True), d.getVar('QB_DEFAULT_KERNEL', True))
+ kernel = os.readlink(kernel_link)
+ cf.set('config_bsp', 'QB_DEFAULT_KERNEL', kernel)
+
with open(qemuboot, 'w') as f:
cf.write(f)
--
2.7.4
More information about the Openembedded-core
mailing list