StarFiveのRISC-Vコア搭載SoCのJH7110のVision Five 2をKickstarter クラファンのSuper Early Bird – 4GB version が届いた。
しかし、こいつ、いろいろ面倒くさい状態でした。
2022年12月出荷の Vision Five 2は、起動に使われるSPLとU-Bootを更新しないと、Quick Start Guideで案内されているDebianの2022/12/26付けのImage-69版の起動に失敗しました。
更新するには若干面倒な手順が必要でした。
資料について
Vision Five 2に関する資料 は https://doc-en.rvspace.org/Doc_Center/visionfive_2.html を起点に探せる
Quick Start Guide 内にDebianイメージのダウンロードURLが書かれています。
また、githubにStarFiveTech VisionFive2 SDK があり、上記のDebianをソースからビルドする際に必要なモノが揃っています。
用意するもの
・TTLシリアル
シリアルコンソール接続じゃないとSPL/U-Bootの更新作業が行えませんでした。
・StarFiveTech VisionFive2 SDKのsdcard.img
Debianイメージだと更新に必要な/proc/mtdと/dev/mtd* が作られていませんでした。
SDKサイトにあるsdcard.img は Buildrootと呼ばれる最小構成のLinuxイメージですが、更新に必要なものが揃っていました。
なお、今回使用したのはv2.5.0のsdcard.imgです。
・VisionFive2用のDebianイメージ
最終的にはこのDebianで起動して使う感じです。
更新しないと何が起こるか
SPLとU-Bootを更新しないと何が起こるのか?というと、Debianイメージが2022/12/20付けのImage-55じゃないと起動できませんでした。
更新しない状態で2022/12/26付けImage-69を起動しようとすると、U-Bootの段階でファイルの選択に失敗して起動ができませんでした。
1)TTLシリアルで接続する
SPL/U-Bootを更新するにはUSB-TTLシリアルアダプタを使ってシリアル接続して操作しないとなりません。
繋ぐ場所はQuick Start Guideの Using a USB to Serial Converter for Windowsに書いてある様にGPIO端子です。
2)Buildrootで起動
まずはStarFiveTech VisionFive2 SDKのsdcard.imgをmicroSDに書き込んで起動します。
起動後、ログインして、/dev/mtd*と/proc/mtdがあることを確認します。
# ls -l /dev/mtd*
crw------- 1 root root 90, 0 Jan 1 00:00 /dev/mtd0
crw------- 1 root root 90, 1 Jan 1 00:00 /dev/mtd0ro
crw------- 1 root root 90, 2 Jan 1 00:00 /dev/mtd1
crw------- 1 root root 90, 3 Jan 1 00:00 /dev/mtd1ro
crw------- 1 root root 90, 4 Jan 1 00:00 /dev/mtd2
crw------- 1 root root `90, 5 Jan 1 00:00 /dev/mtd2ro
brw-rw---- 1 root disk 31, 0 Jan 1 00:00 /dev/mtdblock0
brw-rw---- 1 root disk 31, 1 Jan 1 00:00 /dev/mtdblock1
brw-rw---- 1 root disk 31, 2 Jan 1 00:00 /dev/mtdblock2
# ls -l /proc/mtd*
-r--r--r-- 1 root root ` 0 Jan 1 00:09 /proc/mtd
#
3)更新用ファイルの転送
StarFiveTech VisionFive2 SDKの「u-boot-spl.bin.normal.out」と「visionfive2_fw_payload.img」を別のPCでダウンロードしてからscpコマンドなどでBuildrootのLinux内に転送します。
BuildrootのLinuxはsshdが動いており、rootユーザのログインも許可されているので、TeraTermなどから接続して、scpでコピーすると良いでしょう。
4)SPLとU-bootを更新する
更新手順はQUick Start Guideの「Updating SPL and U-Boot」にあるよう書き込みます。
・boot-spl.bin.normal.outを /dev/mtd0
・visionfive2_fw_payload.img を /dev/mtd1
書き込みはflashcpコマンドを使います
# cat /proc/mtd
dev: size erasesize name
mtd0: 00020000 00001000 "spl"
mtd1: 00300000 00001000 "uboot"
mtd2: 00100000 00001000 "data"
# flashcp -v u-boot-spl.bin.normal.out /dev/mtd0
Erasing blocks: 32/32 (100%)
Writing data: 124k/124k (100%)
Verifying data: 124k/124k (100%)
# flashcp -v visionfive2_fw_payload.img /dev/mtd1
Erasing blocks: 682/682 (100%)
Writing data: 2727k/2727k (100%)
Verifying data: 2727k/2727k (100%)
#
5) 再起動して反映
再起動するとSPLとU-Bootが更新された状態で起動します。
起動が確認できたら、停止します。
6) Debianイメージで起動
Debianイメージを書き込んだmicroSDに差し替えて電源を入れると、Image-69版のDebianイメージが起動します。
ただ、電源をいれてからX画面が出るまではHDMIには何も出力されないことに注意が必要です。(シリアルコンソールに出力されています)
“StarFive Vision Five 2の2022年12月出荷分を使うには面倒くさい手順が必要” への1件の返信