mirror of
https://git.yoctoproject.org/meta-arm
synced 2026-07-16 03:47:19 +00:00
7c1cb547b9
Added task "do_deploy_xenguestenv" to xenguest_image.bbclass which creates intermediary files for each recipe that inherits xenguest_image. These files are merged into the main xenguest.env file in DEPLOY_DIR_IMAGE by the task "do_merge_xenguestenv" in image_types_xenguest.bbclass, which has a dependency on all do_deploy_xenguestenv in recipes it depends on. Variables to write to the file are listed in XENGUEST_IMAGE_VARS, and any extra variables in child recipes should be added to XENGUEST_IMAGE_VARS_EXTRA xenguest-image had to be renamed xenguest_image to use EXPORT, since dash is illegal in bash function names. Issue-Id: SCM-2035 Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com> Change-Id: I6fe45b8a5db6eb7a757c6150515da0b4de8a7205 Signed-off-by: Jon Mason <jon.mason@arm.com>
38 lines
1.7 KiB
Plaintext
38 lines
1.7 KiB
Plaintext
# Create a xenguest image containing the kernel with initramfs when
|
|
# initramfs is activated
|
|
# This is done using kernel-fitimage as model
|
|
# To activate this, kernel-xenguest must be added to KERNEL_CLASSES
|
|
|
|
# Add a variable name to XENGUEST_IMAGE_VARS_EXTRA if you want it to
|
|
# appear in xenguest.env when the image is deployed
|
|
|
|
inherit xenguest_image
|
|
|
|
# use a local copy to pack all together
|
|
XENGUEST_IMAGE_DEPLOY_DIR = "${WORKDIR}/tmp-xenguest"
|
|
|
|
python __anonymous () {
|
|
# only if xenguest image type is present
|
|
if bb.utils.contains('IMAGE_FSTYPES', 'xenguest', '1', '0', d):
|
|
# only if initramfs bundle is activated
|
|
if d.getVar('INITRAMFS_IMAGE') and d.getVar('INITRAMFS_IMAGE_BUNDLE') == "1":
|
|
if not bb.utils.contains('KERNEL_IMAGETYPES', 'Image', '1', '0', d):
|
|
bb.fatal("xenguest image type with initramfs require Image kernel image type")
|
|
bb.build.addtask('do_assemble_xenguest_initramfs', 'do_deploy', 'do_bundle_initramfs', d)
|
|
}
|
|
|
|
do_assemble_xenguest_initramfs() {
|
|
xenguest_image_clone
|
|
call_xenguest_mkimage partial --xen-kernel=${B}/${KERNEL_OUTPUT_DIR}/Image.initramfs
|
|
rm -f ${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest
|
|
call_xenguest_mkimage pack ${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest
|
|
}
|
|
do_assemble_xenguest_initramfs[depends] += "${INITRAMFS_IMAGE}:do_merge_xenguestenv"
|
|
|
|
kernel_do_deploy_append() {
|
|
if [ -f "${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest" ]; then
|
|
install -m 0644 ${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest "$deployDir/Image-${INITRAMFS_NAME}.xenguest"
|
|
ln -snf Image-${INITRAMFS_NAME}.xenguest $deployDir/Image-${INITRAMFS_LINK_NAME}.xenguest
|
|
fi
|
|
}
|