feat(rpi3): add Raspberry Pi 3 (aarch64) target #2

Open
behrens wants to merge 1 commit from behrens/lightwhalerpi3:feat/rpi3-aarch64 into master
First-time contributor

New lightwhale_aarch64_rpi3_defconfig alongside the existing x86 target,
purely additive -- board/pc/* is untouched throughout.

Validated on real Pi 3 B+ hardware: boots end to end, persists onto a
USB stick (Btrfs data fs + state overlay), runs Docker containers,
onboard wifi associates and gets a DHCP lease. Three real kernel/rootfs
bugs were found and fixed by SSHing into the running device, not
guessed at: missing CONFIG_SQUASHFS, module compression breaking
depmod, and wrong BCM43XXX wifi firmware variant selected initially.

Also includes a hand-port of upstream's CVE-2026-31431 algif_aead fix
against this target's actual raspberrypi/linux fork kernel source (the
upstream patch doesn't apply as-is; verified to apply with --fuzz=0
against the exact pinned kernel and to compile in a real build).

Kernel/Docker/squashfs-boot requirements that used to live only inline
in board/pc/linux.config now also exist as board/common/*.fragment,
shared by reference rather than duplicated. board/common/busybox.config
and board/common/ramdisk-size.sh are copies of their board/pc
equivalents rather than pc pointing at them -- pointing pc at these
same shared files, and deleting its now-redundant local copies, needs
someone who can build+verify the x86 side to confirm the ISO output is
unaffected.

See custom/board/rpi/readme.txt and the comment block at the top of
the new defconfig for the full rationale, toolchain note (Bootlin
aarch64, not lightwhale-sdk), and what's still open.

New lightwhale_aarch64_rpi3_defconfig alongside the existing x86 target, purely additive -- board/pc/* is untouched throughout. Validated on real Pi 3 B+ hardware: boots end to end, persists onto a USB stick (Btrfs data fs + state overlay), runs Docker containers, onboard wifi associates and gets a DHCP lease. Three real kernel/rootfs bugs were found and fixed by SSHing into the running device, not guessed at: missing CONFIG_SQUASHFS, module compression breaking depmod, and wrong BCM43XXX wifi firmware variant selected initially. Also includes a hand-port of upstream's CVE-2026-31431 algif_aead fix against this target's actual raspberrypi/linux fork kernel source (the upstream patch doesn't apply as-is; verified to apply with --fuzz=0 against the exact pinned kernel and to compile in a real build). Kernel/Docker/squashfs-boot requirements that used to live only inline in board/pc/linux.config now also exist as board/common/*.fragment, shared by reference rather than duplicated. board/common/busybox.config and board/common/ramdisk-size.sh are copies of their board/pc equivalents rather than pc pointing at them -- pointing pc at these same shared files, and deleting its now-redundant local copies, needs someone who can build+verify the x86 side to confirm the ISO output is unaffected. See custom/board/rpi/readme.txt and the comment block at the top of the new defconfig for the full rationale, toolchain note (Bootlin aarch64, not lightwhale-sdk), and what's still open.
New lightwhale_aarch64_rpi3_defconfig alongside the existing x86 target,
purely additive -- board/pc/* is untouched throughout.

Validated on real Pi 3 B+ hardware: boots end to end, persists onto a
USB stick (Btrfs data fs + state overlay), runs Docker containers,
onboard wifi associates and gets a DHCP lease. Three real kernel/rootfs
bugs were found and fixed by SSHing into the running device, not
guessed at: missing CONFIG_SQUASHFS, module compression breaking
depmod, and wrong BCM43XXX wifi firmware variant selected initially.

Also includes a hand-port of upstream's CVE-2026-31431 algif_aead fix
against this target's actual raspberrypi/linux fork kernel source (the
upstream patch doesn't apply as-is; verified to apply with --fuzz=0
against the exact pinned kernel and to compile in a real build).

Kernel/Docker/squashfs-boot requirements that used to live only inline
in board/pc/linux.config now also exist as board/common/*.fragment,
shared by reference rather than duplicated. board/common/busybox.config
and board/common/ramdisk-size.sh are copies of their board/pc
equivalents rather than pc pointing at them -- pointing pc at these
same shared files, and deleting its now-redundant local copies, needs
someone who can build+verify the x86 side to confirm the ISO output is
unaffected.

See custom/board/rpi/readme.txt and the comment block at the top of
the new defconfig for the full rationale, toolchain note (Bootlin
aarch64, not lightwhale-sdk), and what's still open.
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u feat/rpi3-aarch64:behrens-feat/rpi3-aarch64
git switch behrens-feat/rpi3-aarch64

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff behrens-feat/rpi3-aarch64
git switch behrens-feat/rpi3-aarch64
git rebase master
git switch master
git merge --ff-only behrens-feat/rpi3-aarch64
git switch behrens-feat/rpi3-aarch64
git rebase master
git switch master
git merge --no-ff behrens-feat/rpi3-aarch64
git switch master
git merge --squash behrens-feat/rpi3-aarch64
git switch master
git merge --ff-only behrens-feat/rpi3-aarch64
git switch master
git merge behrens-feat/rpi3-aarch64
git push origin master
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Lightwhale/lightwhale!2
No description provided.