Install Debian on SolidRun Clearfog board
For a project, I need to run java on an ARMv7 core. I could have used my Cubox server, but I don't have enough memory to run web services & java in parallel. Fortunately, I could find a SolidRun ClearFog Base board. This board is mainly network focused and only have an old dual Cortex A9 with 1GB of memory which is quick reached by today web applications, but it should be okay with a single one (I hope).
SolidRun provides documentation & ready to use OS (Debian FreeBSD, Yocto, OpenWRT), so board start should take less than one half hour. Nevertheless, documentation is split in multiple files, and there is no step by step guide. Moreover, Debian images seems crafted (we can't read main ext4 partition). After 2 hours of fails I started to turn crazy ! Here is my step by step tutorial.
The goal is to install Debian on an 8GB SDCard
1) Get an 8GB SDCard and delete all partitions thanks to gparted (or fdisk).
2) Within gparted create an ext4 partition that starts at 4MB with 8GB length
3) Download target Debian images from SolidRun resources. You should take .tar.xz file which is a compressed tar file of root filesystem.
4) Go to SDCard main partition and extract data from Debian image (using sudo)
cd /media/soutade/UUID/
sudo tar -Jxvf ~/clearfog/sr-a38x-debian-buster-20200218.tar.xz
sync
5) Update fstab with your new SDCard UUID
sudo emacs etc/fstab
6) Download U-Boot for base-sdhc variant
7) Burn it to SDCard at address 512 (first sector). We assume SDCard is /dev/sdb (check it before applying this command)
sudo dd if=u-boot-clearfog-base-sdhc.kwb of=/dev/sdb1 seek=1 bs=512
sync
8) Configure ClearFog switches to start using SDcard (Off Off On On On)
9) Insert SDCard into the board, connect serial line USB to your computer
10) Power up the board and start serial line screen
sudo screen -L /dev/ttyUSB0 115200
11) Stop U-Boot process by hit a key
12) Setup kernel bootargs. Here we setup root filesystem read/write at startup, but it should be re mounted rw by fstab. Only root argument is mandatory
setenv bootargs root=/dev/mmcblk0p1 rw
env save
boot
The board should now start with a fresh Debian ! I suggest to connect within SSH which is more comfortable to use than serial line console. Login/password is debian:debian.
Have fun !