-
Notifications
You must be signed in to change notification settings - Fork 232
Support bin files for eMMC boot partition #1744
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Some devices(such as the Allwinner A64 chip) have a uboot that is just a .bin file. This .bin file gets written to the eMMC boot partition directly, not as a partition. Signed-off-by: Robert Middleton <robert.middleton@brivo.com>
While I don't disagree, it would be nice to have this(or something similar) available in the meantime. It's unclear to me as to if and when #1530 would be implemented, so this is a stopgap measure. |
Adding the The proper place is still in the build-system integration or explicit file types in the manifest (which would be a larger change). Why do you want to support casync for bootloader images? They are so small that you usually don't save much. You can use |
My assumption is that whatever the long-term change that happens in the future would effectively do what this patch is doing, turning this into a stopgap solutiojn. This may not be a valid assumption though.
The casync for the bootloader images doesn't work properly at the moment anyway(at least as far as I can tell), it always downloads it. For our purposes the devices that we are updating may be on a cell connection which is very limited in the amount of data per month that is allocated to each device, so if we can avoid downloading the new bootloader(which is the same as the old bootloader) that would definitely help. As to why I don't just do |
Some more information about the time span for backwards compatibility is in https://rauc.readthedocs.io/en/latest/basic.html#sec-compatibility.
What's the slot type your bootloader is on? Also note that a simpler approach for the bootloader might be to set
If that's a new project, did you consider using 'adaptive updates' with block-hash-index as an alternative? |
eMMC boot partition.
I can look into that.
Yes, in the testing that we did we found that casync performed much better(fewer bytes downloaded) than the adaptive updates. |
The corresponding type
👍
Thank you for the feedback! For the bootloader, the adaptive update method 'block-hash-index' should not really give a benefit. For file system images, it requires some caution when creating them, like properly aligning inodes, etc. Do you use the original casync implementation (The issue with that is that it is currently unmaintained) or an alternative implementation like desync or casync-nano? Also, note that we are open to extending the adaptive update approach with more flexible approaches. |
FWIW this PR does at least allow the casync upgrade to install.
We're using the original casync implementation with some patches to support mTLS authentication. The fact that casync is effectively unmaintained at the moment is not ideal, but as long as it continues to work we should be fine. |
Some devices(such as the Allwinner A64 chip) have a uboot that is just a .bin file. This .bin file gets written to the eMMC boot partition directly, not as a partition.
What do you use the feature for?
We use casync to deliver firmware updates to devices. Without this, the
.bin
file that is generated will not install when using casync. We use yocto to create the OS.How did you verify the feature works?
Without this, a cacync upgrade will not install correctly. In addition, the normal rauc upgrade would fail because the
.bin
file that is uboot is not extracted properly from the upgrade file.