Fedora CoreOS Raspberry Pi 4 image?

Did anyone succedd to install FCOS on Raspberry PI 4?
I have spare 8GB model I would use to run OKD4 cluster running FCOS to provide home lab for testing purposes.
I found this link:

Seems to be complicated and first I have to install fedora workstation/serwer on raspberry.
(found Rpi 4 was not supported in late 2019, but what is now?)
Maybe if anyone did it before will be kind to share image?

5 Likes

I don’t have any updates, but I’m getting a Pi in the mail soon and am going to be trying to get FCOS on it too :slight_smile:

2 Likes

Glad to hear it. If you succedd please let us know.

1 Like

I was thinking maybe I might try building a Raspberry Pi 4 cluster if FCOS can be made to run on it. I have no experience with running a cluster before and this could be an inexpensive way learn about running a cluster with Kubernetes. Keep us posted on your progress.

I have a gaggle of Pi 4s for testing, so happy to help when it becomes an option!

Just as an alternative: Fedora Iot also provides many advantages of CoreOS as far as I see, at least it also used ostree for updates, Ignition and „automated storage decryption with Clevis” according to that page.

And some thing called Zezere, whcih I don’t know, but which seems to be just some simple web configuration interface.

Ah, it does use Ignition under the hood for Zezere as it seems, so likely it is not intended to be deployed with your own Ignition config.

Edit: Asked to clarify this and how to use your own Ignition config:

Having tried Fedora IoT for some time, I however wonder what advantages Fedora IoT is supposed to have over Fedora CoreOS:

I guess using Fedora CoreOS for Raspberry Pi may be the better idea, actually…

Short comparison of the two projects: Fedora CoreOS or Fedora IoT - YouTube

Has anyone seen or tried this:
https://builds.coreos.fedoraproject.org/browser?stream=testing-devel&arch=aarch64
?

We’ve just started publishing aarch64 images. Not yet fully stable but an announcement should come soon and you can give it a try in the meantime :slight_smile:.

The difference is that CoreOS is designed to function as a node in a Kubernetes cluster, and IoT was targeted at single node applications. For example you build your own robot and use a RasPi as your controller for it. What you could do is install Fedora IoT on it, then deploy your code for your robot as a container to it. If an update this provides all the benefits of atomic updates to both the OS level as well as your code since you can always roll back your image.

This is very useful in edge deployment like a kiosk, remote station(weather?), or a drone. Canonical has their own image, Ubuntu Core, which essentially serves the same purpose. The difference being that Ubuntu uses Snaps and Fedora IoT uses OCI compliant images.

As for Zezere, Fedora IoT doesn’t use ignition files. Instead it contacts the Zezere server (you can deploy your own too), and once it contacts it you can them claim your device and push your ssh key to it. Once the key is pushed you can then log in to your IoT instance and configure it.

Personally I use IoT on a RasPi 3. I then have an Ansible Playbook that will configure the network interface, set the hostname, and then deploy Pi-Hole as a container to it. It’s great because I have the auto-update feature in podman keep the container updated, and it’s easy enough to isolate my volumes and back it up meanwhile the OS stays clean.

Clarification: While being useful as a node in a Kubernetes cluster is a target use case of Fedora CoreOS, so is running a single container on a standalone node (no cluster required). I use it like this today on my Rpi4.

We’ll soon have official aarch64 images and hopefully write a tutorial for getting FCOS installed on Rpi4.

2 Likes

So with CoreOS coming to ARM architecture, what will b the difference between them besides ignition and Zezere? Is there a plan to eventually make them into the same thing?

I haven’t used zezere but according to the docs it’s

  • Zezere is a provisioning server for Fedora IoT. It can be used for deploying Fedora IoT to devices without needing a physical console.*

Ignition isn’t a provisioning server, but it does run locally on the node and take care of first boot provisioning. You can host your ignition config on a remote location, but you don’t need to. It’s just a simple JSON file.

1 Like

See Fedora CoreOS or Fedora IoT - YouTube (slides). Both projects share a lot of technologies already (rpm-ostree, podman, etc.) but they have a different purpose.

The short answer is that Fedora IoT is more focused on IoT use cases (as expected) and thus includes WiFi support, Zezere, Ansible support, etc. to make it easier to work with those devices.

Fedora CoreOS is provisioned via Ignition and is optimized for automatically updating servers, either as single nodes or as part of a cluster.

1 Like

Tried to get this working on a rpi4.
Steps I did was:

sudo podman run --pull=always --privileged --rm     -v /dev:/dev -v /run/udev:/run/udev -v .:/data -w /data     quay.io/coreos/coreos-installer:release     install /dev/sdb -i fcos.ign -u https://builds.coreos.fedoraproject.org/prod/streams/testing-devel/builds/34.20210904.20.1/aarch64/fedora-coreos-34.20210904.20.1-metal.aarch64.raw.xz --architecture aarch64
sudo mount /dev/sdb2 efi/
sudo cp -rf RPi4_UEFI_Firmware_v1.27/* efi/ # I used UEFI 1.27 as I read 1.28-1.30 had issues
sudo umount /dev/sdb*

On first boot I disabled the 3GB mem limit.
I see the coreos grub menu, after that there is only a black screen with “-”.
After a while it starts booting but complaining about the “dev-by-label” service not starting.
Logs are filled with messages as in screenshot (I’ll try to get the log)
image

Any got this running on rpi4?

(Thanks for all your work btw, much appreciated)

All FYI: our aarch64 images are hitting the released streams this week. We don’t have the website updated to show them just yet, but you can find them in the unofficial builds browser

@perosb - i’m planning to do a writeup of running on the rpi4 but haven’t got to it yet (probably next week). Let me mention a few things I’m doing differently (right now) than you are:

  • i’m installing to a USB disk and the pfft UEFI firmware is on the local SD card (by itself)
    • this means my disk is more performant so maybe there are timing issues with slow media that need to be worked out

Will try to have more next week.

2 Likes

Yup, I installed everything, incl uefi on USB and everything boots just fine. So right now running with sdcard.
Previously these rpi4 booted and ran archlinux from the sdcard, so they should be working fine.

Hi! Have you made any progress on this? I will get my rpi4 soon and i plan to test a Kubernetes cluster with fedora coreos.

Does somebody know if it would also run on a rpi 3 model B? I tried it with my rpi3 and installed it the same way as perosb, only used the rpi3 uefi firmware instead. If i boot it with the USB stick i get the following message after selecting fedora coreos:

EFI stub: Booting Linux Kernel…
EFI stub: ERROR: FIRMWARE BUG: kernel image not aligned on 64k boundary
EFI stub: Using DTB from configuration table
EFI stub: Exiting boot services and installing virtual address map…

I enabled the 64bit mode via arm_64bit=1 in /boot/config.txt with the raspberry OS.

uname -a
Linux raspberrypi 5.10.60-v8+ #1449 SMP PREEMPT Wed Aug 25 15:01:33 BST 2021 aarch64 GNU/Linux

FYI, I managed to successfully netboot my Raspberry Pi 4Bs with the latest FCOS version using piPXE. You can find a short documentation on GitHub. GPIO is currently not working but it should be enough to install OKD.