diff --git a/gen_initramfs.sh b/gen_initramfs.sh index 745e15a..7ff6ea0 100755 --- a/gen_initramfs.sh +++ b/gen_initramfs.sh @@ -796,6 +796,37 @@ create_initramfs() { append_data 'overlay' fi + # Finalize cpio by removing duplicate files and generating modules.dep.bb + print_info 1 " >> Finalizing cpio" + local TDIR="${TEMP}/initramfs-final" + mkdir -p "${TDIR}" + cd "${TDIR}" + + cpio --quiet -i -F "${CPIO}" 2> /dev/null \ + || gen_die "extracting cpio for finalization" + + # Remove unused modules.* files + rm "${TDIR}/lib/modules/${KV}/modules."* + + # Hack to workaround broken `busybox depmod -b` + touch "${TDIR}/proc/modules" + if [ ${UID} -eq 0 ] + then + chroot "${TDIR}" /bin/busybox depmod "${KV}" \ + || gen_die "generating busybox modules.dep" + + else + fakechroot fakeroot chroot "${TDIR}" /bin/busybox depmod "${KV}" \ + || gen_die "generating busybox modules.dep" + fi + rm "${TDIR}/proc/modules" + + find . -print | cpio ${CPIO_ARGS} -F "${CPIO}" 2>/dev/null \ + || gen_die "recompressing cpio" + + cd "${TEMP}" + rm -r "${TDIR}" + if isTrue "${INTEGRATED_INITRAMFS}" then # Explicitly do not compress if we are integrating into the kernel.