Skip to content

main/postmarketos-mkinitfs: fix mkbootimg call for devices w/o dtb

On a samsung-kminilte, with this deviceinfo:

deviceinfo_flash_method="heimdall-bootimg"
deviceinfo_kernel_cmdline=""
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false"
deviceinfo_flash_offset_base="0x10000000"
deviceinfo_flash_offset_kernel="0x00008000"
deviceinfo_flash_offset_ramdisk="0x01000000"
deviceinfo_flash_offset_second="0x00f00000"
deviceinfo_flash_offset_tags="0x00000100"
deviceinfo_flash_pagesize="2048"
deviceinfo_flash_heimdall_partition_kernel="BOOT"
deviceinfo_flash_heimdall_partition_system="SYSTEM"
deviceinfo_bootimg_append_seandroidenforce="true"

installing a kernel would fail with this error:

==> initramfs: creating boot.img
usage: mkbootimg
       --kernel <filename>
       [ --ramdisk <filename> ]
       [ --second <2ndbootloader-filename> ]
       [ --dtb <dtb-filename> ]
       [ --recovery_dtbo <recoverydtbo-filename> ]
       [ --recovery_acpio <recoveryacpio-filename> ]
       [ --cmdline <kernel-commandline> ]
       [ --board <boardname> ]
       [ --base <address> ]
       [ --pagesize <pagesize> ]
       [ --dt <dt-filename> ]
       [ --kernel_offset <base offset> ]
       [ --ramdisk_offset <base offset> ]
       [ --second_offset <base offset> ]
       [ --tags_offset <base offset> ]
       [ --dtb_offset <base offset> ]
       [ --os_version <A.B.C version> ]
       [ --os_patch_level <YYYY-MM-DD date> ]
       [ --header_version <version number> ]
       [ --hash <sha1(default)|sha256> ]
       [ --id ]
       -o|--output <filename>
ERROR: postmarketos-mkinitfs-0.12.0-r0.trigger: script exited with error 1

It turns out that when $_second or $_dt isn't set in create_bootimg(), mkbootimg will receive empty strings as arguments.

With this patch, the build works fine for me, but I haven't tested it with any other device. It should work fine though, unless deviceinfo_dtb contains spaces.

Fixes pmbootstrap#1905 (closed)

Edited by Minecrell

Merge request reports