Hi,
After integrating mender on the Colibri IMX6ULL board, I’m facing some problems while updating.
My procedure is simple:
- I create a yocto build
- I flash the .ubimg file by means of copying it to a SD and asking uboot to flash it on the ubi partition.
- After booting I can see the board conecting to hosted.mender.io
- I accept the connection request from hosted.mender.io
- I edit /etc/mender/artifact_info and change artifact_name value to some random name so I can use the same build just for testing.
So far so good, I create a deployment, mender downloads and installs it, the system reboots and I can clearly see it booted from the rootfsb vol (ubi0_1), but now the problems start:
Problem 1: Once it boots on the recently updated partition (rootfsb) I need to manually reauthorize the device at hosted.mender.io, logs are like this:
Jan 17 20:37:05 colibri-imx6ull systemd[1]: Condition check resulted in Mender persistent data dir being skipped.
Jan 17 20:37:05 colibri-imx6ull systemd[1]: Started Mender OTA update service.
Jan 17 20:37:05 colibri-imx6ull mender[542]: time="2021-01-17T20:37:05Z" level=info msg="Loaded configuration file: /etc/mender/mender.conf"
Jan 17 20:37:05 colibri-imx6ull mender[542]: time="2021-01-17T20:37:05Z" level=info msg="No dual rootfs configuration present"
Jan 17 20:37:05 colibri-imx6ull mender[542]: time="2021-01-17T20:37:05Z" level=info msg="State transition: init [none] -> init [none]"
Jan 17 20:37:05 colibri-imx6ull mender[542]: time="2021-01-17T20:37:05Z" level=info msg="State transition: init [none] -> idle [Idle]"
Jan 17 20:37:05 colibri-imx6ull mender[542]: time="2021-01-17T20:37:05Z" level=info msg="State transition: idle [Idle] -> authorize-wait [Idle]"
Jan 17 20:37:05 colibri-imx6ull mender[542]: time="2021-01-17T20:37:05Z" level=info msg="State transition: authorize-wait [Idle] -> authorize [Sync]"
Jan 17 20:37:05 colibri-imx6ull mender[542]: time="2021-01-17T20:37:05Z" level=info msg="Device keys not present or bootstrap forced, generating"
Jan 17 20:37:19 colibri-imx6ull mender[542]: time="2021-01-17T20:37:19Z" level=error msg="Authorize failed: transient error: authorization request failed: (request_id: ): authentication request rejected server error message: dev auth: unauthorized"
Jan 17 20:37:19 colibri-imx6ull mender[542]: time="2021-01-17T20:37:19Z" level=info msg="State transition: authorize [Sync] -> authorize-wait [Idle]"
I checked the u-boot environment at this point and I can clearly see the following variables set:
upgrade_available=1
mender_boot_part=1
mender_boot_part_hex=1
Problem 2: If I manually reboot, it falls back to previous partition (rootfsA) even when nothing bad ® happened with the previous update
Bootloader logs after reboot:
U-Boot 2020.07-5.1.0-devel+git.51b7d2f591d3 (Nov 30 2020 - 20:20:40 +0000)
CPU: Freescale i.MX6ULL rev1.0 792 MHz (running at 396 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 47C
Reset cause: POR
DRAM: 512 MiB
NAND: 512 MiB
MMC: FSL_SDHC: 0
Loading Environment from UBI... Read 131072 bytes from volume u-boot-env-1 to 9deee9c0
Read 131072 bytes from volume u-boot-env-2 to 9df0ea00
OK
In: serial
Out: serial
Err: serial
Model: Toradex Colibri iMX6ULL 512MB Wi-Fi / BT IT V1.1A, Serial# 06399268
Setting usb power: ON [0]
Net: Could not get PHY for FEC1: addr 2
No ethernet found.
Saving Environment to UBI... Writing to redundant UBI... done
OK
Warning: Bootlimit (1) exceeded. Using altbootcmd.
Hit any key to stop autoboot: 0
Saving Environment to UBI... Writing to UBI... done
OK
Booting from NAND...
Loading file '/boot/zImage' to addr 0x81000000...
Done
Loading file '/boot/imx6ull-colibri-zymbiot-wifi.dtb' to addr 0x82100000...
Done
After this, it boots back on rootfsA (ubi0_0) and logs are like this:
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=info msg="Loaded configuration file: /var/lib/mender/mender.conf"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=info msg="Loaded configuration file: /etc/mender/mender.conf"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=warning msg="Could not resolve path link: ubi0_0 Attempting to continue"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=warning msg="Could not resolve path link: ubi0_1 Attempting to continue"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=info msg="Mender running on partition: ubi0_0"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=info msg="State transition: init [none] -> init [none]"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=info msg="Handling loaded state: reboot"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=info msg="Running Mender client version: 2.4.1"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=info msg="State transition: init [none] -> after-reboot [ArtifactReboot_Leave]"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=error msg="transient error: Reboot to the new update failed. Expected \"upgrade_available\" flag to be true but it was false. Either the switch to the new partition was unsuccessful, or the bootloader rolled back"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=info msg="State transition: after-reboot [ArtifactReboot_Leave] -> rollback [ArtifactRollback]"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=info msg="Performing rollback"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=info msg="No update available, so no rollback needed."
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=info msg="State transition: rollback [ArtifactRollback] -> rollback-reboot [ArtifactRollbackReboot_Enter]"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=info msg="Rebooting device(s) after rollback"
Jan 17 21:08:22 colibri-imx6ull mender[490]: time="2021-01-17T21:08:22Z" level=info msg="Mender rebooting from inactive partition: ubi0_0"
Any idea what could be going on? Im now checking step by step, but might be someone sees something obvivous