💻Rock 5B の 準備
ゴール
作業基準
- microSD で Desktop OS を動かす。
- 単体でブラウザを使った調査を手掛かりにして、メンテしやすいように。
- 出来るだけハードをいじらない。
- NVMe で起動、UART デバッグはしたいので、それぞれ取り付けたら蓋はしめる。
出来上がりのすがた
- Ubunru Server が動いていること。
段取り
- 物資
- ファイルの準備
- microSD で起動したあと
物資
- microSD
- microSD に書くための OS
- 今回は Windows 使った(balena Etcher)。手順は割愛。
- ROCK 5B
- NVMe SSD
- GPIO に差す UART USB アダプタ
- 参考: Radxa Rock5 Model Bの開封から使い始めるまで - YOMON8.NET https://yomon.hatenablog.com/entry/2023/02/rock5_first_impression
- DSD TECH SH-U07B USB TTL アダプタ CH340C チップ内蔵(2PCS) https://www.amazon.co.jp/dp/B09CK79B4C
- Dupont ケーブル 1 に対してアダプタが 2 。何に使うのかわからんけど。
- Baudrate 1500000, DATA 8bit, STOP 1bit, PARITY none, FLOW none
ファイルの準備
- Ubuntu Rockchip
- https://joshua-riek.github.io/ubuntu-rockchip-download/boards/rock-5b.html
- Desktop OS を Windows で microSD に書き込む
- Server OS を Desktop OS 起動後、そのなかでダウンロードして、そこから NVMe SSD に書き込む
- SPI クリーニング用イメージ
- SPI イメージ
- rock-5b-spi-image-gd1cf491-20240523-debug.img https://dl.radxa.com/rock5/sw/images/loader/rock-5b/debug/rock-5b-spi-image-gd1cf491-20240523-debug.img
- ブートローダーを UART シリアルデバッグ対応のものに置き換えるため。
- UEFI のがいい気がするが UART シリアルデバッグが使えるかわからないし検証もしたくないので。
microSD で起動したあと
アップデート
Desktop OS は一応アップデート。する意味はあんまりない。ただ、 SNAP store がないとか色々気づきはあった。
Server OS イメージを SSD に書き込む
// prepare OS image file.
$ wget https://github.com/Joshua-Riek/ubuntu-rockchip/releases/download/v2.3.0/ubuntu-24.04-preinstalled-server-arm64-rock-5b.img.xz
// remember your NVMe SSD device path as below.
# fdisk -l
(omit)
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: CT1000P3PSSD8
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
// Write OS Image to NVMe SSD
# xzcat ubuntu-24.04-preinstalled-server-arm64-rock-5b.img.xz | \
dd of=/dev/nvme0n1 bs=1M status=progress
SPI イメージをフラッシュ ROM に書き込む
// Take checksum: Image file for clean-up.
$ md5sum zero.img.gz
ac581b250fda7a10d07ad11884a16834 zero.img.gz
$ gzip -d zero.img.gz
$ md5sum zero.img
2c7ab85a893283e98c931e9511add182 zero.img
// Take checksum: Image file for SPI.
$ md5sum rock-5b-spi-image-gd1cf491-20240523-debug.img
fa14c99718f55b66e82aa1661e43c1ec rock-5b-spi-image-gd1cf491-20240523-debug.img
// Clean up SPI.
$ ls /dev/mtdblock*
/dev/mtdblock0
// This action need few minutes...
# dd if=zero.img of=/dev/mtdblock0
// Verify.
# md5sum /dev/mtdblock0 zero.img
2c7ab85a893283e98c931e9511add182 /dev/mtdblock0
2c7ab85a893283e98c931e9511add182 zero.img
// Write SPI image.
# dd if=spi-rock-5b-spi-image-gd1cf491-20240523-debug.img \
of=/dev/mtdblock0 status=progress
# md5sum /dev/mtdblock0 rock-5b-spi-image-gd1cf491-20240523-debug.img
fa14c99718f55b66e82aa1661e43c1ec /dev/mtdblock0
fa14c99718f55b66e82aa1661e43c1ec rock-5b-spi-image-gd1cf491-20240523-debug.img
# systemctl reboot