StarFive Vision Five 2の2022年12月出荷分を使うには面倒くさい手順が必要


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 SDKsdcard.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件の返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください