本文首先对Milk-V Duo开发板进行简单介绍,然后介绍该开发板的开发环境初始化操作流程,具体涉及Linux环境准备、开发板镜像制作、TF卡烧录、连接开发板四部分。开发者可参考此教程上手展开对Milk-V Duo开发板的开发、扩展。
前置准备:
- TF卡
- TF卡读卡器
- Type-C数据线
Milk-V Duo开发板简介
Milk-V Duo开发板(图1)是一款基于CV1800B芯片(RISC-V架构,C906@1Ghz + C906@700MHz)的超紧凑型嵌入式开发平台。它支持64MB RAM,可通过扩展实现10/100Mbps以太网,可以运行Linux和RTOS系统,为专业人士、工业ODM、AIoT爱好者、DIY爱好者和创作者提供可靠、低成本、高性能的平台。硬件参数信息如下:
- CVITEK CV1800B (C906@1Ghz + C906@700MHz)
- 双RV64核心,最高1GHz
- 64MB内存
- 通过可选的附加板提供10/100Mbps以太网
- 技术支持同时运行Linux和RTOS
Milk-V开发板管脚如下图所示,用户可以进行丰富的DIY扩展。
.
开发环境初始化
此小节涉及如下四个步骤:
- Linux环境准备:镜像编译需要在Linux开发环境下进行,本文介绍了win环境下用docker拉取Ubuntu镜像(20.04版本)的方式;如果小伙伴们已经有VMware Workstation并安装了Ubuntu系统可以跳过此步;
- 开发板镜像制作:在Linux环境下安装依赖、获取sdk并编译制作镜像
- TF卡烧录:拷贝制作好的开发板镜像,使用rufus工具将镜像文件写入TF卡;
- 连接开发板:取下烧录好的TF卡,插入开发板;更新驱动,ssh连接开发板。
下面对四个步骤展开详细介绍。
Linux环境准备
-
在windows环境下,可以安装Docker Desktop for Windows,通过docker拉取ubuntu镜像并创建容器得到linux环境;
在Windows下运行docker需要相关依赖,即如图中所示,需要使用WSL2后端或者Hyper-V后端作为运行依赖。其中Hyper-V后端的启用方式如下:
a. 控制面板 —— 程序 —— 启用或关闭Windows功能
b. 找到Hyper-V,勾选Hyper-V管理工具和Hyper-V平台,等待系统文件配置完成后重启电脑
然后即可安装下载好Docker Desktop for Windows,在安装指引中根据选择的后端进行相应的勾选;安装完成后,需要重启电脑,然后即可使用docker
-
拉取Ubuntu镜像命令行中输入
docker pull ubuntu:20.04
,即可拉取ubuntu20.04
的镜像,然后可以使用docker images
查看拉取到的镜像;
在命令行中输入docker run -it ubuntu:20.04 /bin/bash
,即可创建并运行一个容器,当终端中出现root@<string>:/#
时,则表示容器创建完成且已经进入容器,其中,string
是容器的id,即containerId
;
若需要退出在容器内退出容器,输入exit
即可,若需要在容器外再次进入容器,则在终端中依次输入docker start <containerId>
,docker attach <containerId>
即可。(更多指令可参考docker官方教程)
-
配置容器,安装必要依赖。
sudo apt-get update sudo apt-get install sudo sudo apt-get install vim sudo apt install pkg-config build-essential ninja-build automake autoconf libtool wget curl git gcc libssl-dev bc slib squashfs-tools android-sdk-libsparse-utils android-sdk-ext4-utils jq python3-distutils tclsh scons parallel ssh-client tree python3-dev python3-pip device-tree-compiler ssh cpio fakeroot libncurses5 flex bison libncurses5-dev genext2fs rsync unzip dosfstools mtools # 安装cmake wget https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4-linux-x86_64.sh chmod +x cmake-3.26.4-linux-x86_64.sh sudo ./cmake-3.26.4-linux-x86_64.sh --skip-license --prefix=/usr/local/ # 输入以下命令进行验证,若能输出对应版本号,则表示安装成功 cmake --version
开发板镜像制作
-
下载SDK
git clone https://github.com/milkv-duo/duo-buildroot-sdk.git
-
运行
build_milkv.sh
脚本进行编译cd duo-buildroot-sdk ./build_milkv.sh
编译成功后可以在
/duo-buildroot-sdk/out
目录下找到milkv-duo-xxxxxxxx-xxxx.img
文件,即为制作成功的镜像文件.
至此,可以用基础镜像文件进行下一步TF卡烧录及后续操作。3.配置制作预装Python3的镜像
将配置脚本,制作带有Python3的镜像 -
配置制作预装Python3的镜像(可选)
cd duo-buildroot-sdk # 导入环境变量 export MILKV_BOARD=milkv-duo source milkv/boardconfig-milkv-duo.sh source build/milkvsetup.sh defconfig cv1800b_milkv_duo_sd
修改配置文件,配置Python3
cd ./buildroot-2021.05/configs vim milkv_duo_musl_riscv64_defconfig
在文件中添加如下两行代码
BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON3_PYC_ONLY=y
保存退出后,重新对文件进行编译打包
cd duo-buildroot-sdk
build_all
pack_sd_image
执行上述命令后,会在duo-buildroot-sdk/install/soc_cv1800b_milkv_duo_sd目录下生成milkv-duo.img镜像文件
TF卡烧录
文件拷贝:新开启一个终端,在终端中输入docker cp <containerNAMES>:/duo-buildroot-sdk/out/milkv-duo-xxxxxxxx-xxxx.img <path>/<file_name>.img
将文件容器拷贝到本地Windows系统下,其中即为容器的NAMES,可用docker ps的相关命令查看,
将TF卡装到TF读卡器中,插入电脑接口,注意:将镜像写入TF卡会清除卡中原有数据,务必在此之前保存好原有数据。下载rufus烧录工具将镜像写入TF卡中
点击开始
,待进度条走完即烧录完成。
连接开发板
取下烧录好的TF卡,插入Milk-V Duo开发板上的TF卡槽内,使用Type-C数据线连接开发板和电脑;当开发板蓝色LED灯闪烁,即表示连接成功。
更新驱动,设备管理器中,从其他设备的一栏中找到RNDIS,选中并更新驱动,更新时选择网络适配器这一设备类型,并使用Microsoft的USB RNDIS Adapter进行更新,更新完成后,新建终端并在终端中输入ping 192.168.42.1
测试网络,具体操作参考链接。
网络测试通过后,即可以用IP192.168.42.1
连接上开发板进行开发。例如使用mobaxterm,ssh连接开发板;登录名输入root
,密码项输入milkv
,即可进入Milkv Duo开发板的可视化编程环境中:
若制作的镜像是预装Python3的,则可以在板子上直接使用Python3进行测试:
写在最后
此教程介绍了Duo开发板的开发环境初始化流程,欢迎广大开源开发者、硬件DIY爱好者参与到我们的开源硬件开发探索中,用更美妙的开源程序、更精巧的硬件扩展、更有趣的奇思妙想打造处更精彩的应用,一起丰富RISC-V开源生态!
更多Milk-V Duo开发板开发资料如下所示: