跳转至

qemu介绍

103_qemu

环境搭建

MAC M1上搭建QEMU+RT-Thread环境

下载仓库:

Bash
git clone https://gitee.com/rtthread/rt-thread.git
git clone https://git.qemu.org/git/qemu.git

1.1. 编译QEMU

Bash
1
2
3
4
git clone https://git.qemu.org/git/qemu.git
mkdir build
cd build
../configure --enable-virtfs --enable-slirp --target-list=aarch64-softmmu
备注说明 - ../qemu/configure :qemu 源码路径下的 configure - --prefix=/home/zhangsz/tools/qemu8 指定安装 install 目录,不指定会安装到 系统目录下,配置完可以查看 prefix - --enable-virtfs : 开启 virtfs 选项, - --enable-slirp :使能 网卡 user 选项 - --target-list=aarch64-softmmu : 这里指定只编译 qemu-system-aarch64,没有这个选项,则全部编译各个平台 编译: make 或者 ninja,建议 多线程编译,速度快一些

1.2. 更新scons

编译rtthread.bin需要scons

方案1:brew install scons 方案2:官网下载最新的版本:SCons Downloads

Bash
1
2
3
4
5
# 下载的scons源码目录下:
python3 setup.py install

# 创建软件链接
ln -s /usr/local/bin/scons /usr/bin/scons

1.3. 编译RT-Thread

由于手头的ubuntu是x86_64 host,编译rtthread.bin是arm架构的,所以需要交叉编译

一、下载ARM官网提供的交叉编译工具链 ARM工具链官网:Arm GNU Toolchain Downloads – Arm Developer 具体的下载界面:Fetching Title#n2za

二、在bps/qemu-virt64-aarch64目录下创建setup_env.sh

Bash
1
2
3
4
5
6
7
8
9
export RTT_CC=gcc
export RTT_EXEC_PATH=/Users/zengyuan/Documents/software/arm-gnu-toolchain-13.2.Rel1-darwin-arm64-aarch64-none-elf/bin
export RTT_CC_PREFIX=aarch64-none-elf-

export PATH=$PATH:$RTT_EXEC_PATH

echo "CC        => ${RTT_CC}"
echo "PREFIX    => ${RTT_CC_PREFIX}"
echo "EXEC_PATH => ${RTT_EXEC_PATH}"

三、生效工具链并编译rtthread

Bash
1
2
3
4
5
6
7
8
# 生成环境变量
source setup_env.sh

# 构建qemu-system-aarch64的软连接,mac系统软链接到/usr/bin会提示权限不够
sudo ln -s /Users/zengyuan/Documents/coding/qemu/build/qemu-system-aarch64 /usr/local/bin/qemu-system-aarch64

# 编译rrthread.bin
scons

1.4. 运行qemu

在bsp/qemu-virt64-aarch64路径下运行qemu.sh

Bash
./qemu.sh

参考资料


最后更新: 2024-04-14