Repository navigation
An armv7 root and release for orchard's 32-bit platforms - #8
Merged
Merged
Conversation
input_event, the key capability words and fb_fix_screeninfo hold C longs: 8 bytes on arm64, 4 on armv7. The helpers size them natively, so the same scripts work in a 32-bit root.
The install finish step grows the root from inside it; Alpine keeps resize2fs in e2fsprogs-extra.
orchard build --platform apple-armv7 (or tools/build.py --arch armv7) builds the same system as an armv7 root, released on its own from orchard's 32-bit index: the root as a block image, its logo, and the boards, loaders and layer the index names. One release has one root of one architecture. The pinned arm64 Alpine image builds it: its apk unpacks the signed ARMv7 packages without their scripts, and the recipe does as files what those scripts would (BusyBox applet links, accounts, /etc/shells), then merges /usr with the arm64 merge-usr. No ARMv7 code runs, so no emulation. Alpine's dropbear and udhcpd take the place of orchard's arm64 static tools; the audit checks every ELF file is of the root's architecture.
A 32-bit release names each board's Cascadia loader ([cascadia.BOARD], from the index's loaders.cascadia), boots with recovery-autogo and has no Pongo, m1n1 or logo (orchard docs/distribution-contract.md, "32-bit roots"). From a published orchard build it takes platforms-armv7.toml with --architecture arm.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Apple's 32-bit boards (apple-armv7) get the same Minimal Alpine system as an armv7 root, released on its own: the root as a block image plus what orchard's 32-bit index (platforms-armv7.toml) lists: the ARMv7 layer, install tools and each board's Cascadia loader. No recovery, no loader or device code here.
orchard build --platform apple-armv7(ortools/build.py --arch armv7) builds it.Verified: unit tests; the armv7 root passes the audit's root checks; the 64-bit build is unchanged end to end. Not verified: a full armv7 release (needs orchard's 32-bit index from the armv7-direct-boot work) and hardware.
armv7/(the recovery base, #5) becomes obsolete once 32-bit is recovery-less everywhere; removal proposed separately. Replaces #6.