はじめに
Duoシリーズボードの標準SDKはBuildrootベースで構築されており、Duoのファームウェア生成に使用されます。現在、SDKにはV1とV2の2つのバージョンがあります。
ヒント
- SDK V1はRISC-Vコアのみ対応(Duo 64Mに推奨)
- SDK V2はRISC-VとARMコア両方に対応(Duo256MとDuoSに推奨)
Duo 64Mはメモリが少ないため、SDK V1の利用を推奨します。SDK V2のAI関連アプリは現状Duo 64Mでは正常動作しません。
Buildroot SDK V1
SDKの主な構成:
- u-boot: 2021.10
- linux kernel: 5.10.4
- buildroot: 2021.05
- opensbi: 89182b2
ソースコード:https://github.com/milkv-duo/duo-buildroot-sdk
SDKディレクトリ構成:
├── build ビルドスクリプトとボード設定
├── build.sh ワンクリックビルドスクリプト
├── buildroot-2021.05 buildrootソース
├── freertos freertosシステム
├── fsbl プリビルドfsblファームウェア
├── install 一時イメージ保存
├── isp_tuning カメラパラメータ
├── linux_5.10 Linuxカーネル
├── middleware 独自マルチメディアフレームワーク
├── device milkv設定ファイル
├── opensbi opensbiライブラリ
├── out Milk-V生成イメージ
├── ramdisk プリビルドramdisk
└── u-boot-2021.10 u-bootソース
Buildroot SDK V2
SDKの主な構成:
- u-boot: 2021.10
- linux kernel: 5.10.4
- buildroot: 2025.02
- opensbi: 89182b2
ソースコード:https://github.com/milkv-duo/duo-buildroot-sdk-v2
SDKディレクトリ構成:
├── build ビルドスクリプトとボード設定
├── build.sh ワンクリックビルドスクリプト
├── buildroot buildrootソース
├── cvi_mpi sophgoマルチメディアフレームワーク
├── device milkv設定ファイル
├── freertos freertosシステム
├── fsbl プリビルドfsblファームウェア
├── install 一時イメージ保存
├── isp_tuning カメラパラメータ
├── linux_5.10 Linuxカーネル
├── osdrv 周辺ドライバソース
├── opensbi opensbiライブラリ
├── out Milk-V生成イメージ
├── tdl_sdk sophgoディープラーニングSDK
└── u-boot-2021.10 u-bootソース
イメージのビルド
コンパイル環境の準備。公式サポートは Ubuntu Jammy 22.04.x amd64 のみです。
他のLinuxディストリビューションの場合はDocker環境でのコンパイルを推奨します。
以下、2つの環境でのコンパイル方法を説明します。SDK V1/V2の手順はほぼ同じです。以下はV2 SDKの例です。
1. 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 python-is-python3
duo-buildroot-sdk-v2では以下も必要です:
sudo pip install jinja2
SDKソースコード取得
git clone https://github.com/milkv-duo/duo-buildroot-sdk-v2.git --depth=1
SDK V2ではネットワーク問題回避のため、dl.tarを事前にダウンロードしbuildrootに展開します:
wget https://github.com/milkv-duo/duo-buildroot-sdk-v2/releases/download/dl/dl.tar
tar xvf ./dl.tar -C ./duo-buildroot-sdk-v2/buildroot/
展開後のdlディレクトリ例:
└── buildroot
└── dl
├── acl
├── alsa-lib
├── alsa-utils
├── attr
├── ...