I recently purchased a CuBox-i4 Pro from Solid Run. Unfortunately, running through the installation instructions on the ALARM CuBox-i page resulted in an unbootable system: The CuBox complains about not being able to find /uEnv.txt, /zImage, and a few other (alternate) boot files, and finally falls back to trying to boot using TFTP over the network. Solid Run's Ignition Installer didn't work either, complaining that any microSD card I used was "unreadable". The make-sdcard script mentioned in Solid Run's Arch Linux wiki page got me a bit further - the CuBox at least found the kernel - but left me with a system that died with a kernel panic immediately upon boot.
If you've experienced any of the above though, don't panic! You can still use ALARM with your CuBox. Here's how I got a bootable, fully-functional system up on mine.
$this->bbcode_list('1')
$this->bbcode_second_pass_code('', '
dd if=/dev/zero of=/dev/sdX bs=1M count=4
')
$this->bbcode_second_pass_code('', '
fdisk /dev/sdX
')
Create two new partitions. The first should have an offset of 2048 and be of type c (WIN FAT32 LBA). It doesn't need to be that big - 32MB is more than enough. The second partition can cover the remainder of the microSD card, and should use the "normal" Linux filesystem type (83).
$this->bbcode_second_pass_code('', '
mkfs.vfat -n BOOT /dev/sdX1
mkfs.ext2 -L root /dev/sdX2
')
$this->bbcode_second_pass_code('', '
mkdir root
mount /dev/sdX2 root
mkdir root/boot
mount /dev/sdX1 root/boot
')
$this->bbcode_second_pass_code('', '
curl --location --remote-name http://os.archlinuxarm.org/os/ArchLinuxARM-imx6-cubox-latest.tar.gz
bsdtar -xpf ArchLinuxARM-imx6-cubox-latest.tar.gz -C root
')
$this->bbcode_second_pass_code('', '
vim root/boot/uEnv.txt
')
It's also a good idea to make sure that /dev/mmcblk0p1 is always mounted on /boot so that when you upgrade your kernel everything winds up in the right place (otherwise when you reboot you'll wind up using your old kernel, rather than the update pacman downloads for you). You can do this by editing root/etc/fstab and adding a line to mount /dev/mmcblk0p1 on /boot.
$this->bbcode_second_pass_code('', '
vim root/etc/fstab
')
If you're not familiar with what /etc/fstab should look like, I suggest taking a look at the Arch Linux wiki's `fstab` page so you know what to do here.
$this->bbcode_second_pass_code('', '
dd if=root/boot/SPL of=/dev/sdX bs=1K seek=1
dd if=root/boot/u-boot.img of=/dev/sdX bs=1K seek=42
sync
umount root/boot
umount root
rm -f root
')