Can't switch from slot B to A #2081
|
Hi, Thanks again for this meta. Long story short, I had an update system that worked a while ago (based on Rauc) but the work on the Jetson was put on hold. Since then we have updated from Kirkstone to Scarthgap, I don't know if that's related to my issue. Basically I have a standard dual slot system from the following XML: In my machine configuration I also have: And all the fluff for the SSD size, overlay fs configuration etc. It boots fine on slot A. Then I do the opposite and try to switch back to the slot A with It randomly works after a while. I have tried mounting/unmounting Note: I did not overwrite the inactive slot before trying to switch to it. At first I did but I stopped to isolate the issue and confirm it was not due to my update image. I'm using a Jetson Orin NX 16GB from Seeedstudio (J4012). I'm attaching the logs from the serial adapter. Any help would be greatly appreciated. |
Replies: 4 comments 6 replies
|
It looks like attaching the raw log file doesn't work for some reason, so am dumping the logs here. |
|
Someone from nvidia advised me to test this with their SDK, and it appears to be working. So it looks like the issue is tied to my Yocto setup. |
|
Thanks @madisongh I have added the rauc support myself in our meta. It appears to be working fine but just to be sure I am not doing any updates right now; I am simply trying to switch between both slots. In the xml you can see that both slots have their rootfs, kernel etc flashed with the initial image. One thing that is interesting is that when I boot Until I manually mount But the directory Thanks for pointing to the demo distro; I've had a look and didn't see many differences:
Any help would be greatly appreciated as I am out of ideas. |
It turns out that systemd's EFI support is only configured in if
efiis in DISTRO_FEATURES, and that's not set by default.The
tegra-minimal-initinit script we have in the layer, which gets incorporated by default into the initrd, has a mount for the EFI variables in it, so theBootChainOsCurrent-781e084c-a330-417c-b678-38e696380cb9variable can be read, and that, is used to determine which rootfs partition to mount. That mount is probably getting retained across theswitch_rootwhen the initrd transfers control to the main rootfs, and that's why I'm seeing it on my device.If you have customized your initrd, you might want to check that it includes similar logic to the minimal-int scrip…