Milk-V Duo 256Mを使ってみる。

Milk-V Duo 256Mは、SG2002を搭載したLinuxが動作するRISC-V評価ボードです。
Milk-V Duoはメモリーですが64MBが256MBに増量されています。

秋月電子通商で購入できたので、試してみました。

Milk-V Duo 256M
https://akizukidenshi.com/catalog/g/g118375/

画像ではピンクの基盤になっていますが色は選択できないです。


## 公式サイト
Milk-V Duo 256Mの公式サイトは、milkv.io/ja/duo/overview　です。

## 特徴


Milk-V Duo 256Mの主な特徴は次のとおりです。

* USB TypeCコネクターやmicroSDカードコネクター、カメラモジュールが接続できる
* IPI-CSIコネクターを搭載
* 100Mbpsの有線イーサネットに対応
* ArmとRisc-VのCPUを搭載
* Risc-VとArmとの切り替えは1クリックで行える.
* SDKでイメージを作りやすい環境が提供されている﻿


### 形状
比較のためにMilk-V Duo 64M (左) Milk-V Duo 256M (中央) とRaspberry Pi Pico W(右)を並べています。


![original_9d7657e6-97ac-4776-80ae-3ffc0c86ee26_IMG_20240514_134815.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11566/3d144e78-018d-e5d1-f288-b4177b7352ae.jpeg)


## Ｍilk-Ｖ Duo を起動する。

### 必要なもの

* Ｍilk-Ｖ本体
* １ＧＢを超えるMicroSDカード
* Type-CのUSBケーブル
* 書き込みと接続を行うためのPCを用意(ここではWindows11を使用)


### 公式サイトからイメージファイルをダウンロードする。

OSのイメージファイルとMicroSDカードに書き込むツールをダウンロードします。

イメージファイルをダウンロードします。
https://milkv.io/docs/duo/resources/image-sdk

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



![screencapture-github-milkv-duo-duo-buildroot-sdk-releases-2024-04-29-02_38_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11566/0656ae8d-ad31-98e1-7553-55109de366c1.png)

ダウンロードできたら、展開します。

### イメージファイルを書き込む。

balenaEtcherを使ってイメージファイルをMicroSDカードに書き込みます。

balenaEtcherは
https://etcher.balena.io
から入手できます。
実行すると、インストールウィザードで簡単に導入できます。

![SDwrite.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11566/1312b1d8-5bc2-22d7-08fc-e385f47875d4.png)

左から、展開したイメージファイル、書き込みMicroSDカードを選択します。
確認できたら、右の｢Flash｣を実行すると書き込みが始まります。

書き込んだMicroSDカードをMILK-V Duoに装着します。
TyPe-CケーブルをPCとMILK-V Duoに接続して給電します。
成功していれば、しばらくするとMILK-V Duo上の青色LEDが点灯します。

### コンソールにloginする。

Type-C のUSBケーブルは給電とリモートNDIS(RNDIS)をサポートしているので通信を行うことができます。

#### ディバイスマネージャーからRNDISドライバをインストールする。

Ｍilk-Ｖ Duoを接続した状態でディバイスマネージャーを開きます。

![ディバイスなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11566/081435fd-d3cd-0346-efb0-e4bda828b72a.png)

RNDISがインストールされていないことを確認します。
右クリックでドライバーの更新を選択します。

「コンピュータをしてドライバーを検索(R)」を選択します。

「コンピュータ上の利用可能なドライバーの一覧から選択します(L )」を選択します。

![アダプタ選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11566/35a9fd43-1661-12f5-3af7-53fafa7d6994.png)


![アダプタ選択１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11566/74af8849-65f5-d3f0-23ae-76d23c5b7222.png)

「次へ」を選択して導入します。警告のダイアログがでるかもしれませんが無視します。
![完了.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11566/504a0083-53e5-2732-3946-68bdb60bcec7.png)

完了するとUSB RNDISアダプタが認識されています。

#### SSHでコンソールにloginする。

Ｍilk-Ｖのデフォルトの設定です。

IPアドレス:192.168.42.1
rootのパスワード:milkv


フリーソフトのTeraTermで接続します。

![teraterm.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11566/abb0059e-1e32-7e2c-ba47-89fb65c98c26.png)

SCPでファイル転送もできます。

フリーソフトのWinSCPで接続します。
![WinSCP.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/11566/9888f4d1-10b1-c533-d099-477b2a60255f.png)


### SWAP領域を設定する。
64MBのＭilk-ＶはSWAP領域を設定します。

次の 2 つのコマンドを実行してスワップを有効にします。

```
mkswap /dev/mmcblk0p3
swapon /dev/mmcblk0p3
```

次に、free -hコマンドを実行してスワップがアクティブかどうかを確認します (256M)

```
[root@milkv-duo]~# free -h
total        used        free      shared  buff/cache   available
Mem:         28.8M       13.6M        9.1M       76.0K        6.1M       12.4M
Swap:        256.0M           0      256.0M
```

動作確認として、イメージファイルを書き込み正常に動作して、Shellのログインできるまでを試してみました。


以上