RISCV gem5 FS(Full System)
21年carrv上新发表的《Supporting RISC-V Full System Simulation in gem5》上为gem5新增加了Full System的配置,有助于帮助RISC-V在gem5上作相关研究。最近也是在学习gem5以及RISCV,在配置环境中遇到了一些问题,自己具体环境也和官方的不太一样,所以记录一下。本文主要描述了怎么在gem5上运行riscv的全系统模拟。
论文参考地址:https://carrv.github.io/2021/papers/CARRV2021_paper_7_Yuen.pdf
官方配置参考地址:https://gem5.googlesource.com/public/gem5-resources/+/refs/heads/develop/src/riscv-fs/
1、说明
提供了创建 riscv 磁盘映像、riscv 引导加载程序 ( berkeley bootloader (bbl)) 的配置说明
附带了 gem5 脚本以运行 riscv Linux 完整系统模拟。引导加载程序bbl也是用 Linux 内核和设备树编译的。
使用的磁盘映像基于busybox和UCanLinux。主要来自这里。
整体的目录结构:
riscv-fs/
|___ gem5/ # gem5 源代码(此处克隆)
|
|___ riscv-disk # 构建的磁盘镜像会放在这里
|
|___ riscv-gnu-toolchain # 交叉编译的riscv工具链
|
|___ riscv64-sample # UCanLinux 源码
| |__linux # linux 源码
| |__busybox # busybox 源码
| |__riscv-pk # riscv 代理内核源码(bbl)
| |__RootFS # 磁盘镜像的根文件系统
|
|
|
|___ README.md # 这个 README 文件
2、RISCV 工具链安装
安装所需的库
# 安装依赖
sudo apt-get install autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
克隆 riscv gnu 工具链源
# 先创建文件夹
mkdir riscv-fs
cd riscv-fs
git clone https://gitee.com/mirrors/riscv-gnu-toolchain.git
cd riscv-gnu-toolchain
qemu下载比较慢,所以将其去掉
参考了博客:https://blog.youkuaiyun.com/yushulx/article/details/108796831
git rm --cached qemu
git submodule update --init --recursive
去掉了qemu的话就不用下面这条命令了,会报错,但是没关系,不影响
git checkout 88b004d4c2a7d4e4f08b17ee32d2
将前缀更改为您的目录