Details
Description
mender-binary-delta still uses the old syntax, e.g:
fw_setenv variable 1
while libubootenv only supports the following:
fw_setenv variable=1
This essentially means that "mender-binary-delta" does not work on Yocto Project Dunfell release, since libubootenv is the default there.
Here is the deployment log when trying to deploy delta updates on dunfell:
2020-12-11 14:41:44 +0000 UTC info: Running Mender client version: 2.4.1 2020-12-11 14:41:45 +0000 UTC info: State transition: update-fetch [Download_Enter] -> update-store [Download_Enter] 2020-12-11 14:41:45 +0000 UTC info: No public key was provided for authenticating the artifact 2020-12-11 14:41:56 +0000 UTC info: State transition: update-store [Download_Enter] -> update-after-store [Download_Leave] 2020-12-11 14:41:56 +0000 UTC info: State transition: update-after-store [Download_Leave] -> update-install [ArtifactInstall] 2020-12-11 14:41:56 +0000 UTC info: State transition: update-install [ArtifactInstall] -> reboot [ArtifactReboot_Enter] 2020-12-11 14:41:56 +0000 UTC info: Rebooting device(s) 2020-12-11 14:44:08 +0000 UTC info: Running Mender client version: 2.4.1 2020-12-11 14:44:08 +0000 UTC info: State transition: init [none] -> after-reboot [ArtifactReboot_Leave] 2020-12-11 14:44:08 +0000 UTC info: Update module output: Not running the new update as expected 2020-12-11 14:44:08 +0000 UTC error: Update module terminated abnormally: exit status 1 2020-12-11 14:44:08 +0000 UTC error: transient error: Update module terminated abnormally: exit status 1 2020-12-11 14:44:08 +0000 UTC info: State transition: after-reboot [ArtifactReboot_Leave] -> rollback [ArtifactRollback] 2020-12-11 14:44:08 +0000 UTC info: Performing rollback 2020-12-11 14:44:08 +0000 UTC info: Update module output: Error: The boot environment does not have an update available 2020-12-11 14:44:08 +0000 UTC error: Update module terminated abnormally: exit status 1 2020-12-11 14:44:08 +0000 UTC error: Rollback failed: Update module terminated abnormally: exit status 1 2020-12-11 14:44:08 +0000 UTC error: fatal error: Update module terminated abnormally: exit status 1 2020-12-11 14:44:08 +0000 UTC info: State transition: rollback [ArtifactRollback] -> update-error [ArtifactFailure] 2020-12-11 14:44:08 +0000 UTC info: Update module output: Warning: Unhandled/Unknown state received: ArtifactFailure 2020-12-11 14:44:08 +0000 UTC info: State transition: update-error [ArtifactFailure] -> cleanup [Error] 2020-12-11 14:44:08 +0000 UTC info: State transition: cleanup [Error] -> update-status-report [none]
It is similar to MEN-3970, but it does not brick devices, it just does not update variables, and hence the deployment always fails.
The fix probably needs to be similar to MEN-3970, meaning that we need to check which syntax is supported first and use what ever works to support both libubootenv and U-boot pre 2018
Attachments
Issue Links
- relates to
-
MEN-3970 uboot: When Mender client writes U-Boot environment with fw_setenv, it results in an empty value instead of the real value, bricking devices.
-
- Done
-