跳转至

qemu介绍

环境搭建

约 319 个字 29 行代码 预计阅读时间 1 分钟

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

下载仓库:

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

1.1. 编译QEMU

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

# 下载的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

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

# 生成环境变量
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

./qemu.sh

参考资料