本章详细介绍了如何设置gem5开发环境和构建gem5。
对gem5的要求
在Ubuntu上,您可以使用以下命令安装所有必需的依赖项。要求详述如下。
sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev python-dev python
- gcc 要求10+
- SCons 3.0+
- python 3.6+
- protobuf 2.1+
获取代码
将目录更改为要下载gem5源代码的位置。然后,要克隆存储库,请使用git clone命令。
git clone https://github.com/gem5/gem5
gem5构建
让我们从构建一个基本的x86系统开始。
目前,您必须为要模拟的每个ISA单独编译gem5。
此外,如果使用ruby介绍章节,则必须对每个缓存一致性协议进行单独编译。
为了构建gem5,我们将使用SCons。SCons使用SConstruct文件(gem5/SConstruck)设置多个变量,然后使用每个子目录中的SConscript文件查找和编译所有gem5源代码。
SCons在首次执行时会自动创建一个gem5/build目录。在这个目录中,您将找到SCons、编译器等生成的文件。
用于编译gem5的每组选项(ISA和缓存一致性协议)都有一个单独的目录。
build_opts目录中有许多默认编译选项。这些文件指定了用于构建gem5的参数,这些参数具有非默认值。我们将使用X86默认值,并指定要编译所有CPU模型。您可以查看build_opts/X86文件,查看具有非默认值的(kconfig)设置。对于gem5<=23.0,您还可以在命令行上指定这些选项以覆盖任何默认值。对于gem5>=23.1,您可以使用kconfig工具(如setconfig、menuconfig或guiconfig)在现有构建目录中修改这些设置。
python3 `which scons` build/X86/gem5.opt -j9
输出应该如下(对于gem5>=23.1):
scons: Reading SConscript files ...
Mkdir("/local.chinook/gem5/gem5-tutorial/gem5/build/X86/gem5.build")
Checking for linker -Wl,--as-needed support... yes
Checking for compiler -gz support... yes
Checking for linker -gz support... yes
Info: Using Python config: python3-config
Checking for C header file Python.h... yes
Checking Python version... 3.11.5
Checking for accept(0,0,0