如何在Qemu上跑Milk-duo开发板

前言

(1)PLCT实验室实习生长期招聘:招聘信息链接

(2)学习本文之前,要求先看一下Milk-V Duo快速上手环境搭建部分,创建好镜像文件。

正文

编译milk-duo qemu

(1)下面步骤基本上没有问题,我测试过了。在make过程中,可能会出现一些错误,大概率是一些环境没有安装,根据提示进行安装即可。一般不会有问题。编译过程时间很长,可能需要一个小时,等他进度条跑完之后即可(如下图)。

shell 复制代码
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成功,就无需执行下面三个指令。
注意,也许还有一些环境需要安装,但是我之前已经安装好了。导致你这边报错而我这边没有,所以说,如果有这种情况需要你自己排查一下。

shell 复制代码
sudo apt-get install libpixman-1-dev
pip install sphinx>=1.4.0
pip install sphinx-rtd-theme>=0.4.0

测试

(1)执行如下指令,测试一下。发现机器里面有Milk-duo开发板了。

shell 复制代码
./qemu-system-riscv64 -M help

(2)如果你执行如下指令,可能会发现找不到Milk-duo开发板。这是为什么呢?原因很简单,可能是你的环境中之前安装过qemu,当是执行qemu-system-riscv64 -M help的时候,系统是优先去环境变量中寻找qemu,找到之后,调用的是你原来的qemu,而不是最新编译出来的qemu。所以说一定要记得加上"./"。

shell 复制代码
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快速上手环境搭建部分。

shell 复制代码
# 示例
./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的实习生许东代韵涛两位大佬的帮助。

相关推荐
2CM_Embed2 小时前
Altium Designer 原理图与 PCB 快速相互定位:Cross Probe 交叉探针
嵌入式硬件·pcb·altium designer·c2000
恒锐丰-罗生3 小时前
宽压大电流同步降压优选|CN3906 DC-DC 电源芯片,车载 / 工控 / IoT 全能供电方案
嵌入式硬件·硬件工程
happygrilclh6 小时前
STM32,串口单字节中断接受,每次上电后,会收到一个0x00的解决办法。
单片机·嵌入式硬件
智闲电子设计7 小时前
STM32 独立看门狗 IWDG 实战:系统跑飞,它来兜底复位
stm32·单片机·嵌入式硬件
zcmodeltech9 小时前
智能制造教学实训沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的工业机器人-智慧工厂-数字孪生全场景联动方案
数据库·stm32·嵌入式硬件·机器人·制造·多分类
程序员与背包客_CoderZ9 小时前
Linux D-Bus通信协议详解:从入门到C/C++编码实战
linux·服务器·c语言·c++·嵌入式硬件·嵌入式软件·dbus
嵌入式阿蔡10 小时前
HAL库 vs LL库 vs 寄存器:到底用哪个?
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
天空'之城11 小时前
单片机基础核心知识点汇总(三)
单片机·嵌入式硬件
嵌入式阿蔡12 小时前
CAN总线入门:从协议帧到STM32实战
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
恒锐丰科技韩生12 小时前
率能 SS8847E|2.7~15V 双通道 H 桥电机驱动 ETSSOP16 散热封装 家电 / 打印 / 舞台灯光专用
嵌入式硬件·硬件工程