I've been using alarm on my Odroid C4 since early 2021... Initial setup used 5.10.x kernel and was working fine at that time. I had various issue from network no working to full system freeze while booting with newer kernels (including 5.19.8) .. for now my C4 is stuck using 5.10.16.
As it was already mentioned the board is not officially supported so you are on your own for the setup (and any further maintenance).
For my initial setup I used the generic aarch64 image ArchLinuxARM-aarch64-latest.tar.gz from
http://os.archlinuxarm.org/os/. The only thing that I needed to bring was uboot specific for Odroid C4. I did not have much success with the official old uboot from HardKernel (v2015.01) but the mainline version available on Manjaro worked fine.
Obviously, the uboot setup was 100% manual.
You can get the latest package with mainline uboot for Odroid C4 from any Manjaro mirror
https://mirrors.manjaro.org/repo/arm-stable/core/aarch64/uboot-odroid-c4-mainline-2021.07-1-aarch64.pkg.tar.zstI did not want to install the Manjaro package so I unpacked it and manually flashed the uboot to the SD card.
The old 5.10.16 kernel is still available on the archive server here:
http://tardis.tiny-vps.com/aarm/packages/l/linux-aarch64/linux-aarch64-5.10.16-1-aarch64.pkg.tar.xzIn a nutshell I did the following for the initial ALARM setup for Odroid C4:- I used a SD to USB adapter to access the SD card
- Create 2 partitions on the SD card. A small 256M /boot partition using fat32 using label SD_BOOT and second ext4 partition using rest of SD card for / and use label SD_ROOT.
- Make sure you reserve enough space for uboot before first partition on SD card! On my case I started first partition at sector 4096 (instead of default 2048 value) to reserve 2M for uboot!
- format and mount / and /boot on a temp location then unpack ArchLinuxARM-aarch64-latest.tar.gz to the temp location
- flash to the SD card /dev/sdX the
u-boot.bin from Manjaro package using dd:
$this->bbcode_second_pass_code('', 'dd if=u-boot.bin of=/dev/sdX conv=fsync,notrunc bs=512 seek=1')
- created /boot/extlinux/extlinux.conf file for uboot to load the alarm kernel+initramfs
$this->bbcode_second_pass_code('', 'LABEL ALARM
LINUX /Image
INITRD /initramfs-linux.img
FDT /dtbs/amlogic/meson-sm1-odroid-c4.dtb
APPEND root=LABEL=SD_ROOT rw rootwait console=tty1 console=ttyAML0,115200n8
')
Most likely you do not have the old ArchLinuxARM-aarch64-latest.tar.gz image from the beginning of 2021 which had kernel 5.10.x so for the current version you need to patch in the old 5.10.x kernel ... For that you can use any alarm aarch64 system where you mount both / and /boot from SD card then chroot to SD card / and use
pacman -U to install the old kernel from a local package downloaded from archive site.
You should be able to boot from the SD card on your Odroid C4.