FCOS Raspberry Pi 4 crash during startup

I have been trying to get Fedora CoreOS 35 running on my Raspberry Pi 4 B (4 GB) rev. 1.1.

Therefore I followed the official documentation with a minimal Ignition file taken from

variant: fcos
version: 1.4.0
passwd:
  users:
    - name: core
      ssh_authorized_keys:
        - ssh-rsa AAAA...
variant: fcos
version: 1.4.0
systemd:
  units:
    - name: serial-getty@ttyS0.service
      dropins:
      - name: autologin-core.conf
        contents: |
          [Service]
          # Override Execstart in main unit
          ExecStart=
          # Add new Execstart with `-` prefix to ignore failure`
          ExecStart=-/usr/sbin/agetty --autologin core --noclear %I $TERM
storage:
  files:
    - path: /etc/hostname
      mode: 0644
      contents:
        inline: |
          tutorial
    - path: /etc/profile.d/systemd-pager.sh
      mode: 0644
      contents:
        inline: |
          # Tell systemd to not use a pager when printing information
          export SYSTEMD_PAGER=cat
    - path: /etc/sysctl.d/20-silence-audit.conf
      mode: 0644
      contents:
        inline: |
          # Raise console message logging level from DEBUG (7) to WARNING (4)
          # to hide audit messages from the interactive console
          kernel.printk=4

The provisioning process did work without problems (as far as I can tell).

Unfortunately I am not prompted with a shell and the display signal is lost after this last log:

The root partition is expanded and in the “Autologin & Custom Hostname Tutorial” case, the hostname was updated according to the logs earlier.


What could cause this?
Some kind of misconfiguration on my part? (I’m totally new to Fedora CoreOS…)

I assume it is possible to target a specific build version to install in coreos-installer, so I could try this with older versions. How would I do this?

Thank you all in advance :grin:

1 Like

Hey @theswampire - Thanks for posting and trying FCOS. Which specific version of FCOS did you try? Was it 35.20220131.3.0?

Also which instructions did you use for install from the docs? Unfortunately (and fortunately) there are a few different paths you could take in the documentation itself.

For the Autologin & Custom Hostname Tutorial snippet from above that you used the autologin won’t apply here because that’s targetting a serial console (serial-getty@ttyS0.service) and not a VGA console.

Sorry for the late response, got a little busy…

Back then I tried fedora-coreos-35.20220116.3.0-metal.aarch64.raw.xz and just now fedora-coreos-35.20220131.3.0-metal.aarch64.raw.xz, but still the same result.

I followed the u-boot part and copy-pasted this:

RELEASE=35
mkdir -p /tmp/RPi4boot/boot/efi/
sudo dnf install -y --downloadonly --release=$RELEASE --forcearch=aarch64 --destdir=/tmp/RPi4boot/  uboot-images-armv8 bcm283x-firmware bcm283x-overlays

for rpm in /tmp/RPi4boot/*rpm; do rpm2cpio $rpm | sudo cpio -idv -D /tmp/RPi4boot/; done
sudo mv /tmp/RPi4boot/usr/share/uboot/rpi_4/u-boot.bin /tmp/RPi4boot/boot/efi/rpi4-u-boot.bin

FCOSDISK=/dev/mmcblk0
### Not copied from docs
sudo coreos-installer download --architecture=aarch64
sudo coreos-installer install -a aarch64 -i example.ign -f fedora-coreos-35.20220131.3.0-metal.aarch64.raw.xz $FCOSDISK
###

FCOSEFIPARTITION=$(lsblk $FCOSDISK -J -oLABEL,PATH  | jq -r '.blockdevices[] | select(.label == "EFI-SYSTEM")'.path)
mkdir /tmp/FCOSEFIpart
sudo mount $FCOSEFIPARTITION /tmp/FCOSEFIpart
sudo rsync -avh --ignore-existing /tmp/RPi4boot/boot/efi/ /tmp/FCOSEFIpart/
sudo umount $FCOSEFIPARTITION

I didn’t encounter any errors besides a rsync error, which I think is not of interest: rsync: [generator] chown "/tmp/FCOSEFIpart/." failed: Operation not permitted (1)


Well, then let’s not use the Autologin example :sweat_smile:
I still lose the display signal using the Simple Example on both versions of FCOS.
Is it possible to write the boot-logs to a file?

Hey @theswampire - I just ran the install using the uboot instructions. I prepared the disk on another system and then moved it into the Raspberry Pi 4. All went well and I was greeted with a login prompt and was able to SSH into the machine.

NOTE: I don’t know if this makes a difference, but my RPi4 is the 8G model.

Screenshot 2022-02-21 at 10-02-28 PiKVM Session localhost localdomain

Maybe you should start simple with an Butane/Ignition config that only has an SSH key in it and see if that works.

You could also try to use the EDK2 instructions and see if that works better for you.

Hi @dustymabe, the EDK2 instructions indeed worked. Thank you very much! :grin:
At first I was intimidated to go this way (u-boot being the way Raspberries boot) but it turned out to be even easier to do.

Only the “Combined Disk Mode” worked for me. It said something about not being able to mount the device containing the live image. However I think that I most likely just messed up flashing the iso.
Nonetheless it’s running Fedora CoreOS so thank you for your help!