intelligent-agent / Reflash

Flasher image for Refactor distro for use with Recore 3D printer board
GNU Affero General Public License v3.0
1 stars 0 forks source link

Reboot can happen before the flasher script is completely done #39

Closed eliasbakken closed 7 months ago

eliasbakken commented 7 months ago

When installing an image, there is no check on the return code from the script. On at least one occasion, the script was somehow cut off after flashing was finished, but before the rest of the script could complete. The last message in the log was Flashing complete. Since automatic reboot was enabled, the board started a reboot and as a result, the right dtb was not linked to.

It looks like the problem can be traced back to tune2fs. For some reason it gives an error of This operation requires a freshly checked filesystem.

eliasbakken commented 7 months ago

There is a commit that seems to address this. It might be dependent on the kernel installed, the 5.15.139 seems to have trouble with partprobe. Getting this message: Error: Partition(s) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128 on /dev/mmcblk2boot0 have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes. This can be circumvented by using Reflashes own kernel by booting via FEL.

eliasbakken commented 7 months ago

This seems to be a problem with kernel v5.15.137. By loading the kernel from USB instead of from eMMC we might circumvent this. Needs testing.