ARM Install Great Start, then Boot Failure

I’m really enjoying Endeavour Budgie on my x86_64 machine, a nine year old Dell Optiplex. As former Arch user, the install of eos was a pleasure.

The ability to have the same experience on my Raspberry Pi 4b is my new goal, but i seem to have run into a problem.

I have several other SSDs that boot just fine on the Pi4. I used the Pi Imager app with them. The eeprom update to enable the SSD boot occurred last summer before I ever installed the other distros. This SSD previously booted Manjaro with no problem.

Stage 1 (the Arch download) seemed to work well. According to the Disks (gnome-disks) app, my SSD seems to show a full Arch install.

But, Stage 2 can’t get off the ground because of this boot failure, “Unable to read partition as FAT.” (Pic2). So, the part where I log in as root to begin the next scripted stage is stopped cold (There is no card in the Pi because I want it to boot from the attached SSD).

I am probably missing something basic. Your observations and advice are more than welcome!

If you are using the armv7h 32 Bit OS, you can install step1 direct to a USB SSD, the script will ask if the target device is a micro SD or SSD. Should be able to boot directly from the SSD for Step 2.

If you are using the aarch64 64 Bit OS, you cannot install step 1 to a USB SSD because the Arch Linux Arm image uses the linux-aarch64 kernel. To employ a USB SSD one has to do step 1 to a micro SD.

After step 1 to a uSD, connect the micro SD card to the RPi 4, and run the step 2 script named “config-update”. That script will ask if you want to switch kernels from the linux-aarch64 kernel (default in the 64 bit image) to the linux-rpi kernel which is the Raspberry Pi Foundation kernel with patch to run on arch linux. To use a USB SSD, choose to switch the kernels.

If you switch to the linux-rpi kernel the config-update script will then ask if you want to copy the OS to a USB SSD. It works best if the USB SSD is connected at boot up. The script will create a new partition table, partition, and format the USB SSD. It then copies the OS to the SSD. After step 2, the RPi powers down. Remove the micro SD card and leave the USB SSD connected.

After a reboot from step 2, the script that installs EndeavourOS and a Desktop Environment should be installed and ready to run.

In a nut shell, the 64 Bit image uses the
linux-aarch64 kernel
which I believe is the mainline kernel compiled for aarch64. This kernel will not run off a USB SSD that I know of.

The other 64 bit kernel
linux-rpi kernel
is the Raspberry Pi Foundation kernel patched to boot on Arch Linux Arm. This kernel will run from a USB SSD.

By the way, EndeavourOS 64 Bit on USB SSD runs Budgie very nicely.

EDIT:
Notice when running step 3, you can install a “Desktop” Environment or a “Headless Server” Environment.

Pudge

2 Likes

@rappel12

By the way, thanks for giving EndeavourOS and EndeavourOS ARM a try, and welcome to the forums. I hope you enjoy your time here.

If you have any questions, I will try my best to answer them.

EDIT:
After installing, feel free to comment about the 3 scripts and the documentation for the scripts. Are they clear enough. Obviously not for the 64 bit install to SSD. ETC.

Pudge

Here is info about the linux-aarch64 kernel and the linux-rpi kernel from the Arch Linux Arm site.

https://archlinuxarm.org/packages/aarch64/linux-aarch64

https://archlinuxarm.org/packages/aarch64/linux-rpi

The main thing of interest is the following

Description: The Linux Kernel and modules - AArch64 multi-platform
Description: RPi Foundation patched Linux kernel and modules

The linux-aarch64 kernel is called a “Multi-platform” kernel
the linux-rpi is called a “RPI Foundation kernel” specifically for the RPi 4

Pudge