mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
image_types: Fix reproducible builds for initramfs and UKI img
I've encountered issues reproducing initramfs and UKI image builds, which will be fixed with this patch. 1. initramfs There's a symbolic link to /sbin/init, which is appended to the cpio archive after creation. The links timestamp needs to be static and the cpio append command needs the '--reproducible' flag to produce deterministic outcomes. 2. Unified Kernel Image '--preserve-dates' is required for a static 'Time/Date' entry. I've added '--enable-deterministic-archives' although in my case this didn't change anything. (From OE-Core rev: fd027729bafb4e085ba0949e38e724f3a8cad102) Signed-off-by: Frieder Paape <frieder@konvera.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
06b5f249ce
commit
f7035ce464
|
@ -148,10 +148,11 @@ IMAGE_CMD:cpio () {
|
|||
if [ ! -L ${IMAGE_ROOTFS}/init ] && [ ! -e ${IMAGE_ROOTFS}/init ]; then
|
||||
if [ -L ${IMAGE_ROOTFS}/sbin/init ] || [ -e ${IMAGE_ROOTFS}/sbin/init ]; then
|
||||
ln -sf /sbin/init ${WORKDIR}/cpio_append/init
|
||||
touch -h -r ${IMAGE_ROOTFS}/sbin/init ${WORKDIR}/cpio_append/init
|
||||
else
|
||||
touch ${WORKDIR}/cpio_append/init
|
||||
touch -r ${IMAGE_ROOTFS} ${WORKDIR}/cpio_append/init
|
||||
fi
|
||||
(cd ${WORKDIR}/cpio_append && echo ./init | cpio -oA -H newc -F ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
|
||||
(cd ${WORKDIR}/cpio_append && echo ./init | cpio --reproducible -oA -H newc -F ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cpio)
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
|
|
@ -351,6 +351,8 @@ class BootimgEFIPlugin(SourcePlugin):
|
|||
|
||||
# https://www.freedesktop.org/software/systemd/man/systemd-stub.html
|
||||
objcopy_cmd = "%s-objcopy" % target_sys
|
||||
objcopy_cmd += " --enable-deterministic-archives"
|
||||
objcopy_cmd += " --preserve-dates"
|
||||
objcopy_cmd += " --add-section .osrel=%s/usr/lib/os-release" % staging_dir_host
|
||||
objcopy_cmd += " --change-section-vma .osrel=0x20000"
|
||||
objcopy_cmd += " --add-section .cmdline=%s" % cmdline.name
|
||||
|
|
Loading…
Reference in New Issue
Block a user