Skip to content

EFI/BLS Boot Option V2 - #769

Merged
justradical merged 5 commits into
armada-os:mainfrom
justradical:feat-efi-minimal
Oct 29, 2026
Merged

justradical merged 5 commits into
armada-os:mainfrom
justradical:feat-efi-minimal

Conversation

@justradical

@justradical justradical commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Supersedes #624

This adds an experimental EFI/UEFI boot path alongside ABL in a single Armada image. Both boot payloads are generated and maintained together.

Differences from V1

  • Armada EFI is not used, this is no longer needed with OpenABL's support for BLS
  • adtbloader is replaced by upstream dtbloader, packaged under packages/dtbloader, for EFI platforms without OpenABL.
  • The device picker, per-device boot entries, and ARMADA_EFI_ROTATION are removed. OpenABL handles device selection on handhelds and dtbloader handles other platforms.
  • CI, PR artifact, and download publication changes are not needed and have been dropped.
  • Armada Control no longer detects the boot backend or shows an EFI version. That information is no longer very useful to have displayed since it's basically a stock systemd-boot+dtbloader setup now.

Changes

  • Preserves existing partition layouts, including FAT16 for internal installs and MBR for SD images.
  • Enables EFI on existing ABL installs through normal updates, without repartitioning or reinstalling.
  • Synchronizes /KERNEL and EFI boot files through one shared update service. EFI synchronization mirrors kernels, initrds, and BLS entries onto the ESP for systemd-boot and OpenABL, and installs systemd-boot and dtbloader with its DTBs, while leaving the original read-only /boot entries untouched.
  • Falls back to ABL when rolling back to older deployments that cannot maintain EFI files.
  • Reclaims abandoned EFI staging files before checking free space so interrupted copies do not block retries.
  • Updates the installer to write both boot paths.

Testing

  • EFI SD flash and update
  • EFI internal install and update
  • ABL internal install and update
  • Rollback to a release without EFI sync falls back to /KERNEL

AI Usage

Claude and @JPyke3's original Codex

@justradical justradical changed the title EFI Boot Option V2 EFI/BLS Boot Option V2 Oct 22, 2026
@justradical
justradical requested a review from JPyke3 October 22, 2026 13:21
@justradical

Copy link
Copy Markdown
Member Author

This is marked as a draft PR until I have done some testing to make sure this doesnt break stuff

@justradical
justradical force-pushed the feat-efi-minimal branch 2 times, most recently from bc03cfa to a7ecb8e Compare October 23, 2026 20:22
@justradical
justradical requested a review from virtudude October 23, 2026 21:59
@github-actions

github-actions Bot commented Oct 24, 2026 •

Copy link
Copy Markdown

Disk image

armada-disk-pr769, built from 0a87507

Downloads as a zip holding armada-*.img.gz and its .sha256.
GitHub requires you to be signed in to download run artifacts.

@justradical
justradical marked this pull request as ready for review October 24, 2026 21:08
@justradical
justradical force-pushed the feat-efi-minimal branch 2 times, most recently from 97c9b9c to 57f9ee0 Compare October 26, 2026 19:18

@JPyke3 JPyke3 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, I just don't think we need the README update and was curious about the older deployment step in the efi update script. Otherwise this one looks fine

Comment thread README.md Resolved
@justradical
justradical requested a review from JPyke3 October 27, 2026 11:56
@justradical
justradical force-pushed the feat-efi-minimal branch 2 times, most recently from b089c75 to d294d0d Compare October 28, 2026 10:01
justradical and others added 5 commits October 28, 2026 11:03
dtbloader supplies the devicetree on EFI platforms without OpenABL.

Co-authored-by: JPyke3 <github@pyk.ee>
Mirrors BLS entries, kernels and DTBs onto the ESP for systemd-boot and OpenABL.

Entries are written as armada-*.conf so other OSes' entries on the ESP survive syncs and rollbacks. They keep the image version in their version field and mark non-default entries as (Rollback). Like bootctl install, loader.conf is only created when missing, with a 3 second menu and default armada-* following the newest entry.

Co-authored-by: JPyke3 <github@pyk.ee>
Co-authored-by: JPyke3 <github@pyk.ee>
Co-authored-by: JPyke3 <github@pyk.ee>
@justradical
justradical merged commit 664da8c into armada-os:main Oct 29, 2026
5 checks passed
@justradical
justradical deleted the feat-efi-minimal branch October 29, 2026 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants