一、环境
Windows 11
VMware workstation Pro 17
Ubuntu 20.04.06
AMD R7 5800H(X86)
二、前期准备
虚拟机安装指导:VMware
阿里云镜像:Ubuntu 20.04.06
注意:虚拟机内存应该大于8GB,硬盘大于50GB,swap交换区应大于4GB, CPU核心数最好大于8(越多编译越快)
三、具体步骤
以下参考gem5官方指导文档:https://www.gem5.org/documentation/learning_gem5/part1/building/
Git
gem5项目使用Git进行版本控制。Git是一个分布式版本控制系统
sudo apt install git
gcc 7+
需要使用环境变量来指向非默认版本的gcc,支持版本为7~11
sudo apt install build-essential
SCons 3.0+
gem5使用SCons作为其构建环境,在构建过程的各个方面会使用Python脚本
sudo apt install scons
Python 3.6+
gem5依赖于Python开发库
sudo apt install python3-dev
protobuf 2.1+(Optional)
“协议缓冲区是一种与语言无关、与平台无关的可扩展机制,用于序列化结构化数据。”在gem5中,protobuf库用于跟踪生成和回放。protobuf不是必需的包,除非您计划将其用于跟踪生成和播放
sudo apt install libprotobuf-dev protobuf-compiler libgoogle-perftools-dev
Boost(Optional)
Boost库是一组通用的C++库。如果您希望使用SystemC实现,它是一个必要的依赖项
sudo apt install libboost-all-dev
克隆gem5代码
git clone https://github.com/gem5/gem5
编译gem5
克隆完成后,当前目录会多一个gem5文件,进入gem5目录,编译X86内核
scons build/X86/gem5.opt -j9
注意,上面这行代码里的 -j9 也可以写作 -j2、-j4 等等,数字大小取决于你为Ubuntu设置的CPU核心数,这个数字一般是CPU核心数+1
如果内存和swap空间足够,那么编译应该会成功,整个过程持续时间1~2小时,甚至更长
如果编译通过,会显示如下:
(可能会出现较多警告,不用担心!)
以上就是整个构建过程,之后让我们进入gem5的学习之旅