Success!
FriendlyELEC NanoPi R1 is now Mender-capable. I am able to update rootfs with Mender Artifact, and also verified automatic rollback with faulty Artifact upload.
https://tracker.mender.io/browse/MEN-3970 was the cause of the failure, but was fixed in 2.3.1 (and 2.4.1). As mentioned in previous post, I need to use 2.3.1 because of Ubuntu 16.04. and libssl1.0
Final fixes that made everything work:
- Specified mender-client version in
mender-convert
:MENDER_CLIENT_VERSION="2.3.1"
- Some fixes to
MENDER_LOAD_KERNEL_AND_FDT
to ensure reboot (mender_try_to_recover) on dtb/kernal load failure.
The tinal MENDER_LOAD_KERNEL_AND_FDT
looks like this:
# define MENDER_LOAD_KERNEL_AND_FDT \
"if test \"${fdt_addr_r}\" != \"\"; then \n" \
" if load ${mender_uboot_root} ${fdt_addr_r} /boot/${mender_dtb_name}; then \n" \
" fdt addr ${fdt_addr_r}; \n" \
" fdt set mmc${boot_mmc} boot_device <1>; \n" \
" else \n" \
" echo \"Unable to load /boot/${mender_dtb_name} from ${mender_uboot_root}\" \n" \
" run mender_try_to_recover; \n" \
" fi; \n" \
"else \n" \
" run mender_try_to_recover; \n" \
"fi; \n" \
"if load ${mender_uboot_root} ${kernel_addr_r} /boot/${mender_kernel_name}; then; \n" \
"else \n" \
" echo \"Unable to load /boot/${mender_kernel_name} from ${mender_uboot_root}\" \n" \
" run mender_try_to_recover; \n" \
" reset; \n" \
"fi; \n"
#endif