Having liaised with an engineer from Firefly, there’s no publicly available way of making a bootable microSD card for the AIBOX 3588S in Linux. This is because regular Linux tools for making bootable microSD cards require raw firmware yet the SDK for the AIBOX packages firmware in RK format. Firefly didn’t develop raw firmware for the machine.
The engineer has shared a .bin file with me in the past couple of days which can be written to a microSD card but I’ve not yet tried it, as it’ll either require emptying the eMMC or modify a system file. There’s always the risk of being left without a bootable machine. I had that when the bootloader corrupted previously and the only way to repair the system was to use MASKROM with its inherent risks.
My machine came with a 32GB eMMC disk. That size limits the amount of software I can install on the machine. For some types of software it’s possible to use alternative storage space. Flatpak is one example. While there’s no public available way of creating a bootable microSD card, I can still mount the card once the machine has booted, and then use that card to store Flatpak software. In my case, I can mount the microSD card with the command:
$ sudo mount -t ext4 /dev/mmcblk1p1 /mnt/microsd
I have previously created a microsd directory in /mnt/
with the appropriate permissions.
Once tested, I then added an appropriate entry in /etc/fstab
so the microSD card is mounted at boot.
Flatpak is a way of distributing software. It makes it easier for developers to target ARM-based hardware such as the Firefly AIBOX 3588S and significantly increases the availability of apps. The flatpaks run sandboxed to a degree.
To install Flatpak issue the command:
$ sudo apt install flatpak
I’m going to use the nano text editor which is installed with the command:
$ sudo apt install nano
Now create a config directory for Flatpak and add some lines.
$ sudo mkdir -p /etc/flatpak/installations.d
$ sudo nano /etc/flatpak/installations.d/extra.conf
Insert the text
[Installation "extra"] Path=/mnt/microsd/ DisplayName=Flatpak Installation StorageType=harddisk
Add a remote using a command:
$ flatpak --installation=extra remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
I can install Inkscape with the command:
$ flatpak --installation=extra install flathub org.inkscape.Inkscape
You’ll note that I actually omitted --installation=extra
. This is fine as my custom installation is the only one with the app I’m going to run.
I can now start the software from the menu Applications / Graphics
I’m undecided about Flatpaks in general. They make it very easy to install thousands of different applications under ARM without having to worry about dependency issues. But they are wasteful of disk space. Fortunately, with a large microSD card, the latter isn’t really a big concern.
All articles in the series:
Firefly AIBOX-3588S | |
---|---|
Introduction | Introduction to the series and interrogation of the AIBOX-3588S |
Benchmarks | Benchmarking the AIBOX-3588S Embedded Fanless PC |
Power | Comparing the AIBOX-3588S power consumption with other SBCs and Mini PCs |
SSHFS | Access Remote File Systems Over SSH with SSHFS |
Flatpak | Set up Flatpak to use external disk |
Strange that booting from microSD cards doesn’t work to start with?