💻

Milk-V Duo 256M入手

2024/05/02に公開

Milk-V Duo 256M入手したので、環境構築をしてみました。

Milk-V Duo 256M

CVITEK社のSG2002を搭載したLinuxが動作するRISC-V評価ボードで、サイズとVDD、GNDなどのピンレイアウトはRaspberry Pi Pico互換になっている。

DuoとDuo 256Mの2種類があり、違いはSoCとメモリサイズでDuo 256Mがアップグレード版という位置づけ。これから買うなら256M版を買ったほうが良い

製品 RAM[MB] SoC TPU
Milk-V Duo 64 CV1800B 0.5TOPS@INT8
Milk-V Duo 256M 256 SG2002 1.0TOPS@INT8

https://milkv.io/docs/duo/overview

このボードの最大の特徴は、RISC-Vコアで動作して、TPUが搭載されているところかと思います。

TPUがあるおかげで、機械学習モデルの実行が高速化されるので、こんな小さなボードでも画像検知とか現実的なレベルで実行できるのはず。。という期待もあって購入。

小型なだけならラズパイPicoがあるし、RISC-Vコアのマイコンであれば、ESP32-C3のほうが情報量も多く使いやすいと思います。でもこのボードはこれらが全部乗っていて低価格なところが面白いです。

SG2002チップ

チップのダイアグラムが下図になる。RISC-V C906が1GHzと700MHzで動作するコアが2個あって、700MHzのほうはRTOSとか同時に動作させることができるらしい。

Arm Cortex-A53も切り替えて利用できる?みたいだけど不明。

下記の公式サイトにもYOLOとかのモデル作成&実行方法なども記載されている。

https://milkv.io/docs/duo/application-development/tpu/tpu-introduction

このボードの位置づけとしてはAIカメラ用の開発ボードなんだと思う。

公式イメージのインストールと起動

まずは、Win11をホストPCとして、公式のOSイメージを焼いて起動&ログインするところまでをやってみる。

https://github.com/milkv-duo/duo-buildroot-sdk/releases

256M版を使う場合は、対象のイメージをEthcerとかでSDに焼く。
このあたりはラズパイなどと同じような手順になる。

Milk-V DuoはRNDIS(リモートNDIS)に対応しているらしく、PCとはUSBケーブルで接続すると、標準のUSBドライバでネットワーク接続できる。とあったが、Win11の場合、ドライバのインストールが必要になる。

デバイスドライバのツリーでRNDISでエラーになっている箇所を選択して、ドライバの更新を選択する。

  • ネットワークアダプター
  • Microsoft
  • USB RNDIS Adapter

を選択してインストールする。


ドライバのインストールが終わったら、SDカードを指してUSBケーブルをPCから給電して起動する。

SSHログインできるターミナル等を起動して、以下のIPアドレス(固定)で接続する。

> ssh root@192.168.42.1

The authenticity of host '192.168.42.1 (192.168.42.1)' can't be established.
ED25519 key fingerprint is SHA256:29Sgc0/6OAlDaRU9Nv+JEHdsorGQrncg+yJxB3hLy9I.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added '192.168.42.1' (ED25519) to the list of known hosts.
root@192.168.42.1's password:

ユーザはroot, パスワードはmilkvでログインできる。

メモリはこんな感じ

[root@milkv-duo]~$ free -h
              total        used        free      shared  buff/cache   available
Mem:         166.2M       15.4M      140.2M       76.0K       10.6M      145.0M
Swap:             0           0           0

アーキテクチャは、riscv64

[root@milkv-duo]~$ uname -a
Linux milkv-duo 5.10.4-tag- #1 PREEMPT Wed Apr 10 21:37:02 CST 2024 riscv64 GNU/Linux

Pythonも入っているが、最低限なモジュールしかない。

> python --version
Python 3.9.5

> pip list
Package     Version
----------- -------
cffi        1.14.2
evdev       1.6.1
freetype-py 0.0.0
lxml        4.6.3
modbus-tk   1.1.2
Pillow      8.2.0
pip         20.0.2
psutil      5.7.2
pycparser   2.20
pyserial    3.5
setuptools  44.0.0
smbus-cffi  0.5.1
spidev      3.5

aptはインストールされてなかった。

ストレージについて

ストレージについては、32GBのSDを使っているが、焼いただけだと750MBほどしか認識してない。

[root@milkv-duo]~$ df -h

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       752M  177M  533M  25% /
devtmpfs         84M     0   84M   0% /dev
tmpfs            84M     0   84M   0% /dev/shm
tmpfs            84M   48K   84M   1% /tmp
tmpfs            84M   28K   84M   1% /run

ラズパイの場合、専用コマンドで拡張できるが、コイツにはそれ相当のものがなかった。ネットを探してみたが、自分でOSをビルドせよ。とのことだった。

さわってみて

ざっと公式サイトを覗いてみたけど、基本的にはPC上(Ubuntu22.04)でクロスプラットフォーム開発をして、ビルドしたモジュールをscpでマイコンにコピー、そして実行みたいな流れになっている。このあたりのワークフローは、カメラも入手しているので、後日試してみることにする。

ラズパイPicoみたいに注目度はイマイチだけど、いろいろ野心的な構成になっているし、この手の低価格マイコンボードでは個人的には一押しです。

Discussion