-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[FEAT] Support tryboot
helpers without ramdisk
#1940
Comments
Now that I'm reading this again, I see that this wouldn't be a great option, since the Perhaps a third option would be to enable a way for the user to set part of the cmdline contents independently of the
@timg236 I notice that you had submitted the rpi-eeprom package to buildroot recently... What do you think the chances are of this use-case gaining support in the rpi firmware? |
This seems the better choice when combined with secure boot, as otherwise unauthenticated cmdline arguments could be injected via |
Hi. Are you suggesting that in the following case:
..you would have a config.txt on both p2 and p3, but rather than read cmdline.txt from p2 (or p3), have something like the following in each config.txt (example below for p2):
? What advantage would that give you over what's supported today? If the bootloader has been instructed to boot from p2 it loads config.txt from p2 and the cmdline.txt found on p2 can be generated at build time to be specific to the OS that's loaded from p2 (e.g. it can can specify a root device that's associated to OS boot from p2 via |
Hi @learmj, let me explain the option 2 in a bit more detail: First, the use-case I'm targeting is where the
(FYI, I noticed that I had the wrong These "slot" 0/1 partitions must be selected in tandem. The firmware configurations and kernel image for slot 1 are built to go together with the rootfs for slot 1, and it is the responsibility of the sw update integration to maintain them in tandem. The software update system needs to build and deliver "images" (of whatever variety) for the firmware partition that are capable of executing from either partition slot. As it is, the software update mechanism is required to modify the contents of the What I'm suggesting for option 2 is that the firmware partition images would contain a
And every firmware partition image will contain both a
and also a
And now that I've written all of the above explanation, I see that you're suggesting that the software update builds generate a unique UUID or label for each build of the rootfs partition image, and that the matching Is that what you meant, @learmj? I guess that does sound like it could just work at the current level of support. Our partition image generation might get a bit more complex, but that's not a big deal. |
I'm digesting the implications of the
tryboot_a_b
update flow, and it's becoming clear that it is more designed for boot systems that depend on a ramdisk. Since the ramdisk would be named the same on the A/B boot partitions, it doesn't need any differences incmdline.txt
, and init logic within it can then use the device tree'schosen/bootloader
properties to drive its dynamic logic.But for systems that would prefer not to have a separate ramdisk, they are currently required to modify their kernel cmdline appropriately for the A/B partition that is being booted, and set up for that during their update process along with modifying the
autoboot.txt
.I can think of two possible ways that the rpi firmware could support this use-case:
cmdline
setting in theautoboot.txt
in addition to theconfig.txt
. This way, the A/B boot partitions could be identical and contain bothcmdline_A.txt
andcmdline_B.txt
files with the appropriateroot=
values.[boot_partition=n]
filter inconfig.txt
that would be filled by the active configuration from theautoboot.txt
logic. This way, theconfig.txt
could conditionally point to an appropriatecmdline*.txt
next to it.The text was updated successfully, but these errors were encountered: