Skip to content

Latest commit

 

History

History
52 lines (43 loc) · 1.87 KB

README.md

File metadata and controls

52 lines (43 loc) · 1.87 KB

Fedora bootc image for Raspberry Pi

This is experimental at this moment. Horrible hacks are included.

This is a bootc-powered Fedora base image compatible with Raspberry Pi. See https://docs.fedoraproject.org/en-US/bootc/ for more information about bootc and Fedora.

The main difference between the base Fedora image and this repository is that this repository's Containerfile patches bootupd so it can handle Raspberry Pi-specific bootloader and firmware files under /boot/efi that are needed to successfully boot a Pi. See coreos/bootupd#651 for more information about what's needed in bootupd.

Use

Clone this repository on an aarch64 machine and run:

sudo podman build -t localhost/fedora-bootc-raspi:40 .
mkdir output
sudo podman run \
  --rm \
  -it \
  --privileged \
  --pull=newer \
   --security-opt label=type:unconfined_t \
   -v $(pwd)/output:/output \
   -v /var/lib/containers/storage:/var/lib/containers/storage \
   quay.io/centos-bootc/bootc-image-builder:latest \
   --type raw \
   --local \
   --rootfs ext4 \
   localhost/fedora-bootc-raspi:40
# arm-image-installer can deal only deal with xz archives, let's deal with that
xz -v -0 -T0 output/raw/disk.raw
# substitute $DISK with the location of Raspberry Pi disk
sudo arm-image-installer --target=rpi4 --media=$DISK --image output/raw/disk.raw.xz --resizefs

If you want a user inside the image, add -v $(pwd)/config.toml:/config.toml to podman-run and create the following blueprint in config.toml:

[[customizations.user]]
name = "alice"
password = "$6$..."
key = "ssh-ed25519 AAAA..."
groups = ["wheel"]

Alternatively, just add a layer with a user.

Known issues

The horrible bootupd hack currently cannot update the Raspberry Pi specific firmware and bootloader. This means that you are stuck with their versions from the initial disk image, unless you manually update them.