ARM Install Great Start, then Boot Failure

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