From f487a01fc33277e4b5ec679a01c3837696453bf5 Mon Sep 17 00:00:00 2001 From: Matt Madison Date: Fri, 31 Dec 2021 09:18:06 -0800 Subject: [PATCH] classes: add image_types_esp.bbclass for creating an EFI system partition in the right format. Signed-off-by: Matt Madison --- classes/image_types_esp.bbclass | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 classes/image_types_esp.bbclass diff --git a/classes/image_types_esp.bbclass b/classes/image_types_esp.bbclass new file mode 100644 index 00000000..df389fa5 --- /dev/null +++ b/classes/image_types_esp.bbclass @@ -0,0 +1,26 @@ +require conf/image-uefi.conf + +oe_mkespfs() { + fstype="$1" + extra_imagecmd="" + + if [ $# -gt 1 ]; then + shift + extra_imagecmd=$@ + fi + + # Create a sparse image block. ESP partition must be 64K blocks. + bbdebug 1 Executing "dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype seek=65536 count=0 bs=1024" + dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype seek=65536 count=0 bs=1024 + bbdebug 1 "Actual Rootfs size: `du -s ${IMAGE_ROOTFS}`" + bbdebug 1 "Actual Partion size: `stat -c '%s' ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype`" + bbdebug 1 Executing "mkfs.vfat -F 32 -I $extra_imagecmd ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype " + mkfs.vfat -F 32 -I $extra_imagecmd ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype + mcopy -i ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype -s ${IMAGE_ROOTFS}/* ::/ + # Error codes 0-3 indicate successfull operation of fsck (no errors or errors corrected) + fsck.vfat -pvfV ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.$fstype +} +do_image_esp[depends] += "dosfstools-native:do_populate_sysroot mtools-native:do_populate_sysroot" +IMAGE_TYPES += "esp" +IMAGE_CMD:esp = "oe_mkespfs esp ${EXTRA_IMAGECMD}" +EXTRA_IMAGECMD:esp ?= ""