2.9 KiB
Flashing the image to RK1 eMMC
Flashing destroys the selected target. Boot the RK1 from another device first
(for example NVMe), or attach the eMMC through an appropriate loader/USB mode.
Never overwrite the device that currently contains /.
Identify every disk by path, size, model, and serial:
findmnt /
lsblk -o NAME,PATH,SIZE,MODEL,SERIAL,TRAN,TYPE,MOUNTPOINTS
The eMMC will usually be a whole /dev/mmcblkN device, but the number is not a
promise. The helper deliberately refuses partitions such as /dev/mmcblk0p1,
non-MMC disks, mounted descendants, and active swap. Repeat the resolved target
path in --confirm:
cd /home/ubuntu/rk1-media-image
sudo ./scripts/flash-emmc.sh \
--image dist/rk1-media-20260817-r4-trixie-vendor-6.1.115-turing-rk1-emmc.img.xz \
--target /dev/mmcblkN \
--confirm /dev/mmcblkN
The helper performs four checks around the destructive write:
- validates the XZ stream and adjacent SHA-256 file;
- checks target type, capacity, mounts, and swap;
- streams the 4 GiB raw image with a flushed direct write;
- decompresses it again while reading the target back byte-for-byte.
Only remove power after it reports that read-back verification passed. Then shut down, remove or reprioritize the temporary boot disk, attach Ethernet and HDMI, turn on the TV/input, and boot the eMMC.
If the carrier exposes RK1 eMMC through a different flashing workflow, the
.img.xz is a normal whole-disk image. A trusted imager can use it directly;
retain the same checksum and target-identification discipline.
Keep boot on eMMC and move root to NVMe
The RK1 still needs its boot payload and /boot on eMMC. Once the appliance has
finished first-boot provisioning, identify the NVMe by its exact model and
serial, then run the helper included in revision r4:
findmnt -no SOURCE,FSTYPE /
lsblk -e7 -o NAME,PATH,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODEL,SERIAL
sudo test -e /var/lib/rk1-media/provisioned && echo PROVISIONED
sudo rk1-media-migrate-root-to-nvme \
--target /dev/nvme0n1 \
--serial EXACT_SERIAL_FROM_LSBLK
This destroys every existing partition on only the confirmed target NVMe. It
does not repartition the eMMC or rewrite U-Boot. The helper stops Kodi and
package-update jobs, performs the Armbian sd-mode root copy, checks the new
filesystem and boot configuration independently, and prints
MIGRATION_VALIDATED only after the rollback-sensitive writes have synced.
Reboot immediately after that result:
sudo systemctl reboot
findmnt -no SOURCE,FSTYPE /
findmnt /boot
findmnt /media/boot-media
To return to the intact eMMC root while the NVMe-rooted system is still reachable:
sudo cp -a /boot/armbianEnv.txt.pre-nvme /boot/armbianEnv.txt
sudo cmp /boot/armbianEnv.txt.pre-nvme /boot/armbianEnv.txt
sudo sync
sudo systemctl reboot
Never use armbian-install --boot split-emmc for this rollback-preserving
migration; that mode repartitions both devices.