前言
(1)PLCT实验室实习生长期招聘:招聘信息链接
(2)学习本文之前,要求先看一下Milk-V Duo快速上手的环境搭建部分,创建好镜像文件。
正文
编译milk-duo qemu
(1)下面步骤基本上没有问题,我测试过了。在
make
过程中,可能会出现一些错误,大概率是一些环境没有安装,根据提示进行安装即可。一般不会有问题。编译过程时间很长,可能需要一个小时,等他进度条跑完之后即可(如下图)。
git clone -b duo-qemu https://github.com/plctlab/plct-qemu.git
cd plct-qemu/
mkdir build
cd build/
../configure --disable-werror
make -j10
(2)如下是我测试过程中,没有安装需要的环境导致的报错。如果上面能够
make
成功,就无需执行下面三个指令。
注意,也许还有一些环境需要安装,但是我之前已经安装好了。导致你这边报错而我这边没有,所以说,如果有这种情况需要你自己排查一下。
sudo apt-get install libpixman-1-dev
pip install sphinx>=1.4.0
pip install sphinx-rtd-theme>=0.4.0
测试
(1)执行如下指令,测试一下。发现机器里面有
Milk-duo
开发板了。
./qemu-system-riscv64 -M help
(2)如果你执行如下指令,可能会发现找不到
Milk-duo
开发板。这是为什么呢?原因很简单,可能是你的环境中之前安装过qemu
,当是执行qemu-system-riscv64 -M help
的时候,系统是优先去环境变量中寻找qemu
,找到之后,调用的是你原来的qemu
,而不是最新编译出来的qemu
。所以说一定要记得加上“./
”。
qemu-system-riscv64 -M help
执行qemu
(1)首先,我们需要找到
duo-buildroot-sdk
的路径,然后在duo-buildroot-sdk/freertos/cvitek/install/bin/cvirtos.elf
找到这个elf文件。
(2)找到我们编译的镜像文件路径,然后讲你的镜像文件加在drive file=
后面。
注意:镜像文件如果不会怎么获取,请看:Milk-V Duo快速上手的环境搭建部分。
# 示例
./qemu-system-riscv64 -M milkv_duo -kernel %duo-buildroot-sdk_PATH%/duo-buildroot-sdk/freertos/cvitek/install/bin/cvirtos.elf -bios none -drive file=%img_PATH%/%img_name%.img,format=raw -monitor none -nographic
# 本人执行的操作
./qemu-system-riscv64 -M milkv_duo -kernel /home/zyx/Desktop/duo/duo-buildroot-sdk/freertos/cvitek/install/bin/cvirtos.elf -bios none -drive file=/home/zyx/Desktop/samba/linux_sdk/milkv-duo-20231105-2335.img,format=raw -monitor none -nographic
(3)最终就可以看到qemu在跑了。注意,你的现象可能和我的不一样,因为镜像文件我做了简单的修改!
参考文章
(1)Milk-V Duo快速上手;
(2)GitHub仓库:plct-qemu的readme;
感谢人员
(1)感谢PLCT的王俊强老师和李威威老师的帮助。
(2)感谢PLCT的实习生许东和代韵涛两位大佬的帮助。