Flashing Zarhus OS
There are many ways an OS can be flashed and booted on embedded platform, but the most common one is using an SD card. This guide will describe SD card flashing only, because all other ways to flash the image are highly target-specific and are described per-target.
Flashing SD card
This section demonstrates how to flash a Zarhus OS image on the SD card.
Prerequisites
- Linux PC (tested on
Fedora 40
); -
bmaptool installed:
sudo apt install bmap-tools
-
Zarhus OS image built according to build guide.
Note
You can also use bmaptool
from
GitHub if it is not available in
your distro.
Flashing
Find out your device name:
$ lsblk
(...)
sdx 8:16 1 14.8G 0 disk
├─sdx1 8:17 1 3.5M 0 part
├─sdx2 8:18 1 256K 0 part
├─sdx3 8:19 1 192K 0 part
(...)
Warning
In this case the device name is /dev/sdx
but be aware, in next steps
replace /dev/sdx
with the right device name on your platform or else you
can damage your system!
From the directory you ran your image build, run command:
$ cd build/tmp/deploy/images/MACHINE_NAME
$ sudo umount /dev/sdx*
$ sudo bmaptool copy IMAGE_NAME-IMAGE_TYPE-MACHINE_NAME.rootfs.wic.gz /dev/sdx
Note
Replace MACHINE_NAME
with the name of the machine you have built the image
for, IMAGE_TYPE
with debug
or prod
and IMAGE_NAME
with the name of
the image you have built.
You should see output similar to this:
bmaptool: info: block map format version 2.0
bmaptool: info: 85971 blocks of size 4096 (335.8 MiB), mapped 42910 blocks (167.6 MiB or 49.9%)
bmaptool: info: copying image 'zarhus-base-image-debug-radxa-cm3.rootfs.wic.gz' to block device '/dev/sdx' using bmap file 'zarhus-base-image-debug-radxa-cm3.rootfs.wic.bmap'
bmaptool: info: 100% copied
bmaptool: info: synchronizing '/dev/sdx'
bmaptool: info: copying time: 11.1s, copying speed 15.1 MiB/sec
Verification
After the SD card has been flashed with your image, the partitions (at least
rootfs
partition) should be mountable. So, you can mount a partition and
explore the Zarhus OS without even booting it! Here is example block storage
layout after flashing Zarhus Rockchip OS
image:
$ lsblk
(...)
sdx 8:16 1 14.8G 0 disk
├─sdx1 8:17 1 3.5M 0 part
├─sdx2 8:18 1 256K 0 part
├─sdx3 8:19 1 192K 0 part
├─sdx4 8:20 1 32K 0 part
├─sdx5 8:21 1 32K 0 part
├─sdx6 8:22 1 4M 0 part
├─sdx7 8:23 1 4M 0 part
├─sdx8 8:24 1 4M 0 part
└─sdx9 8:25 1 320.7M 0 part
(...)
Note
Your SD card may get another file name in your system, here sdx
is shown
as an example.
Mounting rootfs
:
$ sudo mount /dev/sdx9 /mnt
$ ls /mnt
bin boot dev etc home lib lost+found media mnt proc root run sbin srv sys tmp usr var
$ lsblk
(...)
sdx 8:16 1 14.8G 0 disk
├─sdx1 8:17 1 3.5M 0 part
├─sdx2 8:18 1 256K 0 part
├─sdx3 8:19 1 192K 0 part
├─sdx4 8:20 1 32K 0 part
├─sdx5 8:21 1 32K 0 part
├─sdx6 8:22 1 4M 0 part
├─sdx7 8:23 1 4M 0 part
├─sdx8 8:24 1 4M 0 part
└─sdx9 8:25 1 320.7M 0 part /mnt
(...)
For further image verification checkout verification guide.