本記事はMilk-V Duo公式ドキュメントを参考に、構築過程で遭遇する問題の解決策も含めて解説します。
開発環境
開発環境:Ubuntu 20.04 LTS 開発ボード:Milk-V Duo
開発環境のセットアップ
0. イメージの書き込み:
開始前に、SDカードを開発ボードに挿入し、公式ドキュメントに従ってDuoイメージを書き込みます。 コンピュータに接続後、数秒で青色のLEDが点滅するのが確認できます。
ターミナルを開き、以下のコマンドを実行します:
ssh root@192.168.42.1
- 初回接続時には
Are you sure you want to continue connecting (yes/no/[fingerprint])?と表示されます ターミナルでyesと入力してください - プロンプトが表示されたらパスワード
milkvを入力します - ターミナルが
[rook@milkv]~#に変わればログイン成功です
1. コンパイルに必要なツールのインストール:wget、git、make
sudo apt-get install wget git make
2. Milk-V公式サンプルプログラムの取得
git clone https://github.com/milkv-duo/duo-examples.git
ダウンロードが遅い場合は、プロキシ接続またはミラーサイトを使用してください:
git clone https://kgithub.com/milkv-duo/duo-examples.git
3. SDKのダウンロードと開発環境の初期化
- プロジェクトディレクトリに移動します
cd duo-examples
- 初期化スクリプトを実行します
source envsetup.sh
正常に完了すれば、プログラムが自動的にSDKパッケージをgitで取得し、解凍します。サイズは約180MBです。
ダウンロード速度が遅い場合、SDKを手動でダウンロード(こちらをクリック)し、duo-examplesフォルダに解凍してから、初期化スクリプトを再実行してください:
source envsetup.sh
開発環境の初期化が成功すると、SDK environment is readyと表示されます。
これで開発環境の構築は完了です。
コンパイルテスト
0. 概要
上記の手順が正しく実行されていれば、duo-examplesフォルダは以下のようになっているはずです:
(若干の差異がある場合があります。筆者はSDKを手動でダウンロードしたため、envsetup.shで自動ダウンロードした場合は圧縮ファイルが削除されている可能性があります)
フォルダ内のREADME.mdは公式ドキュメントで、詳細が記載されています。本記事はその内容を基に作成しています。
ここでは3つのサンプルプロジェクトが提供されています:
blink:Milk-V Duoのボード上LEDを点滅させる例 hello-world:Duoの周辺機器を操作せず、「Hello, World!」のみを出力し、開発環境を検証する i2c:I2Cインターフェース経由で温度気圧センサBMP280に接続し、現在の温度と気圧値を読み取る
1. hello-worldプロジェクトのコンパイル
開発環境を検証するため、hello-worldを例に取ってmakeを実行します:
cd hello-world
make
以下の問題が発生する可能性があります:
- 問題原因: 前述の
source envsetup.sh実行後に、別のターミナルでmakeを実行したため- 解決方法1(推奨): 現在のターミナルで再びsourceを実行してからmakeを実行する
source ~/<自分のディレクトリ(山括弧を含めない)>/duo-examples/envsetup.sh make
- 解決方法2:
hello-worldフォルダ内のMakefileを開き、該当部分をコメントアウトする(先頭に#を追加)。このプロジェクトはこれらの設定を必要としないため、コメントアウトしても問題ありませんが、方法1が推奨されます。
(Vim基本操作:insertキーを押して編集モードに入る→ファイルを編集→escキーで編集モードを終了→ctrl + :を押し、wqと入力してEnter)
再度コンパイルすると、成功します!
2. コンパイル済みプロジェクトをDuoに転送する
scp helloworld root@192.168.42.1:/root/
送信が成功したら、sshまたはシリアル接続のターミナルで./helloworldを実行すると、「Hello, World!」が出力されます:
[root@milkv]~# ./helloworld
Hello, World!
これで、コンパイル開発環境が正常に使用できるようになりました。