Adding support for custom board

Hello,

I would like to use Mender with a custom board. It is based on the Beaglebone Black, but with customized hardware, so I had to patch their U-Boot and add a custom device tree to make it boot. And there’s a custom device tree and some configuration changes for the Linux kernel.

How do I convert the image for use with Mender while making sure my changes to U-Boot and kernel will stay intact?

Do I understand correctly that Mender overwrites the bootloader with its custom version to support partition switching? My work is based on BeagleBoard.org / u-boot · GitLab, but Mender has its own GitHub - mendersoftware/uboot-mender: U-boot fork containing Mender integration (used by https://github.com/mendersoftware/mender-convert), so how do I bring these two together? As far as I understand, Mender’s U-Boot is not based on Beagleboard U-Boot, rather they both are forks of the mainline.

That’s only if you use direct U-Boot integration, and Mender has not maintained that for Beaglebone for years.

If you use U-Boot/UEFI/Grub integration (MENDER_GRUB_EFI_INTEGRATION=y in mender-convert, the default), then Mender uses vanilla U-Boot (see this section in mender-convert). IIRC this has broken on the most recent U-Boot versions though, so maybe stay away from the very latest versions.