classes: add image_types_esp.bbclass

for creating an EFI system partition in the right format.

Signed-off-by: Matt Madison <matt@madison.systems>
This commit is contained in:
Matt Madison
2021-12-31 09:18:06 -08:00
committed by Matt Madison
parent fb089f6012
commit f487a01fc3

View File

@@ -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 ?= ""