@@ -12,19 +12,27 @@ FIT_KERNEL_COMP_ALG_EXTENSION ?= ".gz"
UBOOT_MKIMAGE_KERNEL_TYPE ?= "kernel"
uboot_prep_kimage() {
- if [ -e arch/${ARCH}/boot/compressed/vmlinux ]; then
+ output_dir=$1
+ # For backward compatibility with kernel-fitimage.bbclass and kernel-uboot.bbclass
+ # support calling without parameter as well
+ if [ -z "$output_dir" ]; then
+ output_dir='.'
+ fi
+
+ linux_bin=$output_dir/linux.bin
+ if [ -e "arch/${ARCH}/boot/compressed/vmlinux" ]; then
vmlinux_path="arch/${ARCH}/boot/compressed/vmlinux"
linux_suffix=""
linux_comp="none"
- elif [ -e arch/${ARCH}/boot/vmlinuz.bin ]; then
- rm -f linux.bin
- cp -l arch/${ARCH}/boot/vmlinuz.bin linux.bin
+ elif [ -e "arch/${ARCH}/boot/vmlinuz.bin" ]; then
+ rm -f "$linux_bin"
+ cp -l "arch/${ARCH}/boot/vmlinuz.bin" "$linux_bin"
vmlinux_path=""
linux_suffix=""
linux_comp="none"
else
vmlinux_path="vmlinux"
- # Use vmlinux.initramfs for linux.bin when INITRAMFS_IMAGE_BUNDLE set
+ # Use vmlinux.initramfs for $linux_bin when INITRAMFS_IMAGE_BUNDLE set
# As per the implementation in kernel.bbclass.
# See do_bundle_initramfs function
if [ "${INITRAMFS_IMAGE_BUNDLE}" = "1" ] && [ -e vmlinux.initramfs ]; then
@@ -34,18 +42,18 @@ uboot_prep_kimage() {
linux_comp="${FIT_KERNEL_COMP_ALG}"
fi
- [ -n "${vmlinux_path}" ] && ${KERNEL_OBJCOPY} -O binary -R .note -R .comment -S "${vmlinux_path}" linux.bin
+ [ -n "$vmlinux_path" ] && ${KERNEL_OBJCOPY} -O binary -R .note -R .comment -S "$vmlinux_path" "$linux_bin"
- if [ "${linux_comp}" != "none" ] ; then
- if [ "${linux_comp}" = "gzip" ] ; then
- gzip -9 linux.bin
- elif [ "${linux_comp}" = "lzo" ] ; then
- lzop -9 linux.bin
- elif [ "${linux_comp}" = "lzma" ] ; then
- xz --format=lzma -f -6 linux.bin
+ if [ "$linux_comp" != "none" ] ; then
+ if [ "$linux_comp" = "gzip" ] ; then
+ gzip -9 "$linux_bin"
+ elif [ "$linux_comp" = "lzo" ] ; then
+ lzop -9 "$linux_bin"
+ elif [ "$linux_comp" = "lzma" ] ; then
+ xz --format=lzma -f -6 "$linux_bin"
fi
- mv -f "linux.bin${linux_suffix}" linux.bin
+ mv -f "$linux_bin$linux_suffix" "$linux_bin"
fi
- echo "${linux_comp}"
-}
+ printf "$linux_comp" > "$output_dir/linux_comp"
+}
\ No newline at end of file
@@ -29,6 +29,7 @@ python __anonymous () {
do_uboot_mkimage[dirs] += "${B}"
do_uboot_mkimage() {
uboot_prep_kimage
+ linux_comp="$(cat linux_comp)"
ENTRYPOINT=${UBOOT_ENTRYPOINT}
if [ -n "${UBOOT_ENTRYSYMBOL}" ]; then
@@ -36,6 +37,6 @@ do_uboot_mkimage() {
awk '$3=="${UBOOT_ENTRYSYMBOL}" {print "0x"$1;exit}'`
fi
- uboot-mkimage -A ${UBOOT_ARCH} -O linux -T ${UBOOT_MKIMAGE_KERNEL_TYPE} -C "${linux_comp}" -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${B}/arch/${ARCH}/boot/uImage
+ uboot-mkimage -A ${UBOOT_ARCH} -O linux -T ${UBOOT_MKIMAGE_KERNEL_TYPE} -C "$linux_comp" -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${B}/arch/${ARCH}/boot/uImage
rm -f linux.bin
}