DTBs on arm64 are stored as vendor/dtb rather than everything in one directory. flash-kernel doesn't handle this at the moment. I see two options:
1) Strip the vendor dir away and install the dtb as /boot/dtbs/$kvers/dtb 2) Keep the directory and install as /boot/dtbs/$kvers/vendor/dtb In both cases, I think we should accept local DTBs in /etc/flash-kernel/dtbs either as vendor/dtb or just dtb. The patch below implements options 1. Do people think this is the right path or would you prefer option 2? Actually, now that I look at the boot script, I think the real question is: does ${fdtfile} from u-boot contain the directory or not? I believe the answer is no, so option 1 is the right on. Any problems with the proposed patch? diff --git a/functions b/functions index 0f597b8..06a0c39 100644 --- a/functions +++ b/functions @@ -560,6 +560,8 @@ find_dtb_file() { *) if [ -e "/etc/flash-kernel/dtbs/$dtb_name" ] ; then echo "/etc/flash-kernel/dtbs/$dtb_name" + elif [ -e "/etc/flash-kernel/dtbs/$(basename $dtb_name)" ] ; then + echo "/etc/flash-kernel/dtbs/$(basename $dtb_name)" else echo "/usr/lib/linux-image-$kvers/$dtb_name" fi @@ -573,6 +575,11 @@ handle_dtb() { fi local dtb=$(find_dtb_file) + # DTBs on arm64 are stored in subdirs for each vendor; strip the + # dir away because we want to put the file in /boot/dtbs/$kvers/ + # without additional subdirs. + local dtb_name=$(basename $dtb_name) + if [ "x$FK_KERNEL_HOOK_SCRIPT" = "xpostrm.d" ] ; then rm -f "/boot/dtbs/$kvers/$dtb_name" -- Martin Michlmayr http://www.cyrius.com/