本指南使用Ubuntu 20.04 LTS Server作为系统
1.安装依赖
sudo apt install dialog python3-dev make git bc gcc flex bison ninja-build libssl-dev rsync pkg-config device-tree-compiler squashfs-tools parted dosfstools cpio unzip wget libncurses-dev
2.安装Cmake
- Apt自带的Cmake版本为3.16.3,SDK要求为3.16.5及以上所以需要自行下载一个预编译的Cmake
wget -c https://cmake.org/files/v3.19/cmake-3.19.3-Linux-x86_64.tar.gz
tar -zxvf cmake-3.19.3-Linux-x86_64.tar.gz
sudo mv cmake-3.19.3-Linux-x86_64 /usr/bin/
echo 'export PATH="/usr/bin/cmake-3.19.3-Linux-x86_64/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
3.获取SDK
mkdir duo && cd duo
curl https://storage.googleapis.com/git-repo-downloads/repo > repo
chmod a+rx repo
./repo init -u https://github.com/milk-v/duo-manifest.git -b main -m milk-v_duo_cv180xb_sdk.xml
./repo sync
- 你在中国大陆请使用下面命令进行下载
- 如果repo init报错,需要设置全局的用户邮箱与用户名然后再执行repo init即可
git config --global url."https://hub.fgit.ml/".insteadOf "https://github.com/"
mkdir duo && cd duo
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
./repo init -u https://hub.fgit.ml/milk-v/duo-manifest.git -b main -m milk-v_duo_cv180xb_sdk.xml
./repo sync
4.编译
source build/cvisetup.sh
defconfig cv1800b_sophpi_duo_sd
clean_all && build_all && pack_sd_image
#命令分别为清理编译打包
-
每次打包都会生成一个新的img,可用使用
rm -rf install/soc_cv1800b_sophpi_duo_sd/*.img*
来进行删除 -
使用buildroot 作为rootfs
cd buildroot-2021.05/
make cvitek_CV180X_musl_riscv64_defconfig
- 因为clean_all,你在buildroot目录下进行
make menuconfig
后生成的.config文件并不会应用在实际的编译中,可以使用如下命令覆盖默认配置文件
mv configs/cvitek_CV180X_musl_riscv64_defconfig configs/cvitek_CV180X_musl_riscv64_defconfig.bak
#先备份下原来的配置文件
mv .config configs/cvitek_CV180X_musl_riscv64_defconfig
#替换掉默认的defconfig
-
u-boot的默认配置文件:
build/boards/cv180x/cv1800b_sophpi_duo_sd/linux/cvitek_cv1800b_sophpi_duo_sd_defconfig
-
menuconfig_uboot后修改的配置文件:
u-boot-2021.10/build/cv1800b_sophpi_duo_sd/.config
-
u-boot的默认配置文件:
build/boards/cv180x/cv1800b_sophpi_duo_sd/u-boot/cvitek_cv1800b_sophpi_duo_sd_defconfig
-
menuconfig_kernel后修改的配置文件:
linux_5.10/build/cv1800b_sophpi_duo_sd/.config
-
可以参考上面在修改配置后覆盖默认配置文件
-
如果嫌Linux内存太少了,可以修改
build/boards/cv180x/cv1800b_sophpi_duo_sd/memmap.py
文件的第43行的ION_SIZE
-
默认大小
# =================
# Multimedia buffer. Used by u-boot/kernel/FreeRTOS
# =================
ION_SIZE = 26.80078125 * SIZE_1M
H26X_BITSTREAM_SIZE = 0 * SIZE_1M
H26X_ENC_BUFF_SIZE = 0
- 可以修改为4M,这样就会拥有更多的内存了,如下修改大约为35M总内存,使用Buildroot作为Rootfs可用约为17M
# =================
# Multimedia buffer. Used by u-boot/kernel/FreeRTOS
# =================
ION_SIZE = 4 * SIZE_1M
H26X_BITSTREAM_SIZE = 0 * SIZE_1M
H26X_ENC_BUFF_SIZE = 0
- 然后在重新编译一遍即可生效
5.插电开机
- 串口引脚需要以 🍐 Duo | Milk-V 页面上的为准
请勿相信板子上的丝印 - 默认使用串口0 115200波特率
6.其他
- 编译出来的镜像位于根目录的install文件夹下 如
install/soc_cv1800b_sophpi_duo_sd/
- 如使用Etcher刷写镜像需要将tar.gz内的img解压出来后选择img镜像,不能直接选择tar.gz
- 在根目录执行
menuconfig
可以进入SDK的配置页面 -
clean_all
会覆盖掉uboot与kernel的.config配置,要修改的话先clean在配置 - 在buildroot目录下
make menuconfig
可以进入build root的配置页面