Ubuntu 20.04 LTS 安装gem5

1、安装依赖包

sudo apt-get install build-essential 
sudo apt-get install git 
sudo apt-get install m4 
sudo apt-get install scons 
sudo apt-get install zlib1g 
sudo apt-get install zlib1g-dev 
sudo apt-get install libprotobuf-dev 
sudo apt-get install protobuf-compiler 
sudo apt-get install libprotoc-dev 
sudo apt-get install libgoogle-perftools-dev 
sudo apt-get install python3-dev 
sudo apt-get install python3
sudo apt-get install python3-pip
sudo apt-get install libhdf5-dev
sudo apt-get install libpng-dev
pip install pydot -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pypng -i https://pypi.tuna.tsinghua.edu.cn/simple

2、下载源代码

git clone https://gem5.googlesource.com/public/gem5

或者

git clone https://github.com/gem5/gem5.git

3、进入gem5文件夹

cd gem5

4、编译

gem5的编译需要大量的内存,小于8GB内存可能会报错。如果在虚拟机上运行,建议编译前设置交换区。

scons build/{arch}/gem5.opt -j N

其中{arch}为指令集架构。目前gem5支持的架构有:

  • x86
  • arm (arm-linux-gnueabihf-gcc)
  • thumb (arm-linux-gnueabihf-gcc)
  • sparc (sparc64-linux-gnu-gcc)
  • arm64 (aarch64-linux-gnu-gcc)
  • riscv (riscv64-linux-gnu-gcc)
    -j表示开启多线程加速,N为线程数。
    该编译过程用时较长,需耐心等待。
    出现如下信息表示编译正常结束:
scons: done building targets.

5、测试

./build/RISCV/gem5.opt ./configs/example/se.py -c ./tests/test-progs/hello/bin/riscv/linux/hello

屏幕上出现如下信息则表示安装成功。

gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 version 21.2.1.1
gem5 compiled Jun  6 2022 13:56:34
gem5 started Jun  6 2022 14:01:31
gem5 executing on NUDT, pid 24895
command line: ./build/RISCV/gem5.opt ./configs/example/se.py -c ./tests/test-progs/hello/bin/riscv/linux/hello

Global frequency set at 1000000000000 ticks per second
warn: failed to generate dot output from m5out/config.dot
build/RISCV/mem/mem_interface.cc:791: warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (512 Mbytes)
0: system.remote_gdb: listening for remote gdb on port 7000
**** REAL SIMULATION ****
build/RISCV/sim/simulate.cc:194: info: Entering event queue @ 0.  Starting simulation...
build/RISCV/sim/mem_state.cc:443: info: Increasing stack size by one page.
Hello world!
Exiting @ tick 3339000 because exiting with last active thread context

6、问题及解决方法

编译gem5时遇到的问题大多是由内存不足造成的,如:

Error: open CFI at the end of file;

物理机加内存;虚拟机设置更大的交换区空间,或者重启以清空交换区。

你可能感兴趣的:(ubuntu,linux,运维,系统架构)