In the cboot case we don’t need any support for bootloader environment configuration from the mender utility, since NVIDIA boot redundancy handles this for us, and nvidia utilities are being invoked from mender update hooks.
I wondered if the fake fw_printenv/fw_setenv approach is the approach we should use for zeus support, or if we should instead propose changes to the mender utility to support externally configured boot environment variables. The main reason to officially support externally configured boot environments would be to avoid issues going forward if anything changes regarding u-boot environment support in the mender utility.
Just FYI, I used this approach based on how Mender currently handles x86 platforms that use grub with the grub-mender-grubenv scripts. It would be great if the mender utility had a bit more abstraction for interfacing with the bootloader, though.
I wondered if the fake fw_printenv/fw_setenv approach is the approach we should use for zeus support, or if we should instead propose changes to the mender utility to support externally configured boot environment variables.
There are several improvements I’ve been wanting to make in this area:
Switch the GRUB/UEFI (grub-mender-grubenv) tools to different names, and have the client use them instead, to prevent clashing with U-Boot tools, in case both are installed
Add optional configuration options to mender.conf which configure alternative tools to use for changing and querying variables (the command line API must be the same though)
The latter is something you could consider, if you want to propose a change to the client. If not, then the fake fw_printenv route would also be relatively safe, as long as you make sure that you don’t install the U-Boot tools.