Summary
The new-BP scripts/assemble/config/partition_ext.xml makes the rootfs single-slot system and EFI single-slot efi. The established Tachyon layout (20.04 flow) is full A/B, and OTA relies on it. Shipped in 1.2.0 as a known gap.
Evidence
tachyon-release-builder/build-24_04-release.sh writes the same rootfs image to both system_a and system_b, and EFI to boot_a/boot_b:
quiet_mod "$rp" "system_a" "filename" "$SYSTEM_IMAGE_NAME"
quiet_mod "$rp" "system_b" "filename" "$SYSTEM_IMAGE_NAME"
quiet_mod "$rp" "boot_a"/"boot_b" ...
- Four overlay scripts still hardcode
/dev/disk/by-partlabel/system_a (currently survive only via the cloudimg-rootfs fs-label fallback):
overlays/growfs/files/growfs.sh
overlays/particle-service/files/particle-service.sh
overlays/manufacturing/files/test-fs-resize.sh
overlays/growfs/test/test_resize.py
Impact
1.2.0 boots and flashes, but A/B OTA slot-switching cannot work (no system_b/EFI-B to update + switch to).
Fix direction
partition_ext.xml: system → system_a + add system_b; EFI → A/B (boot_a/boot_b or efi-A/B). Flash the same image to both slots at factory time.
- Reconcile with grow-to-fill: rootfs slots can't both grow. Likely fixed-size
system_a/system_b (≥~14 GiB; desktop rootfs is 11.66 GiB) + a grow data/userdata partition filling the rest of 64/128 GB. Repoint growfs at the data partition.
- Fix the 4 stale
system_a references.
Open questions (need platform/OTA owner)
- Does new-BP UEFI/ABL boot by A/B slot, and what triggers the switch (bootctl/update_engine vs Particle OTA agent)? No A/B/OTA tooling found in composer or overlays.
- Rootfs fixed (20.04 model) vs grow, and exact slot sizing for the 64 GB SKU.
Use the 20.04 rawprogram as the layout template.
🤖 Generated with Claude Code
Summary
The new-BP
scripts/assemble/config/partition_ext.xmlmakes the rootfs single-slotsystemand EFI single-slotefi. The established Tachyon layout (20.04 flow) is full A/B, and OTA relies on it. Shipped in 1.2.0 as a known gap.Evidence
tachyon-release-builder/build-24_04-release.shwrites the same rootfs image to bothsystem_aandsystem_b, and EFI toboot_a/boot_b:/dev/disk/by-partlabel/system_a(currently survive only via thecloudimg-rootfsfs-label fallback):overlays/growfs/files/growfs.shoverlays/particle-service/files/particle-service.shoverlays/manufacturing/files/test-fs-resize.shoverlays/growfs/test/test_resize.pyImpact
1.2.0 boots and flashes, but A/B OTA slot-switching cannot work (no
system_b/EFI-B to update + switch to).Fix direction
partition_ext.xml:system→system_a+ addsystem_b; EFI → A/B (boot_a/boot_borefi-A/B). Flash the same image to both slots at factory time.system_a/system_b(≥~14 GiB; desktop rootfs is 11.66 GiB) + a growdata/userdatapartition filling the rest of 64/128 GB. Repointgrowfsat the data partition.system_areferences.Open questions (need platform/OTA owner)
Use the 20.04
rawprogramas the layout template.🤖 Generated with Claude Code