Milk-V Duo 256M を ARM モードで起動する
RISC-V と ARM の切り替えができる変態 SoC を ARM モードを使う
はじめに
Milk-V Duo 256M で使っている Sophpi SG2002 は、メインプロセッサが RV64 と Cortex-A53 の切り替え式になっています。 とりあえず ARM モードで起動させることができたのでメモします。
準備
おそらくメーカの SDK そのままだと思うのですが、一応公式にビルド手順が書かれていたので、それに従います。 Ubuntu 22.04 を使いました。
まずは必要なパッケージの準備
$ sudo apt install -y pkg-config build-essential ninja-build automake autoconf libtool wget curl git gcc libssl-dev bc slib squashfs-tools android-sdk-libsparse-utils jq python3-distutils scons parallel tree python3-dev python3-pip device-tree-compiler ssh cpio fakeroot libncurses5 flex bison libncurses5-dev genext2fs rsync unzip dosfstools mtools tcl openssh-client cmake expect
ビルドスクリプトとソースの取得。
github のアクセス権限がない場合は scripts/subtree.xml
の URL を書き換える必要があるかもしれません。
$ git clone https://github.com/milkv-duo/duo-build.git -b milkv
$ cd duo-build
$ ./scripts/repo_clone.sh --gitclone scripts/subtree.xml
環境の設定
$ source build/envsetup_soc.sh
$ defconfig sg2002_milkv_duo256m_arm_sd
ビルドの実行
なお、clear_all
を実行するように指示がありますが、私の環境ではこれを実行するとビルドが失敗するので、実行していません。
$ build_all
$ pack_burn_image
ビルドが完了すると、install
以下に sophpi-duo-2024xxxx-xxxx.img
のような名前のファイルができるので、SD カードに書き込みます。
実行
Milk-V Duo 256M の 35番ピン(BootSwitch) を GND に落とすと ARM モードで起動します。 一応起動はするのですけど、RNDIS ドライバなどが組み込まれていないようで、このイメージのまま使うのは厳しそうです。 きちんと Kernel や buildroot の設定を作りこんであげる必要がありそうです。