最近需要做系统结构的模拟实验,今天在Ubuntu 12.04 上面成功安装 gem5 ,记录分享安装过程如下:
%——————————————————————————-%
必要文件:
gem5:到http://www.m5sim.org/Download下载stable版本源代码包。
g++: 使用g++ 4.5版本,不要使用4.6,否则会出现编译无法通过!!
可以通过命令:
[sudo apt-get install g++-4.5
sudo rm /usr/bin/g++
sudo ln -s /usr/bin/g++-4.5 /usr/bin/g++]
Python:版本2.4或更高[一般系统自带]
SCons:版本0.98.1或更高。 ***注:我使用的是scons-local包。***
http://sourceforge.net/projects/scons/files/
SWIG:版本1.3.34。***注意:不要太高的版本,否则需要Perl支持。***
http://www.swig.org/
zlib:最近的版本。
http://www.zlib.net/
m4:宏处理器。
http://www.gnu.org/software/m4/
官方说明,参见:http://www.m5sim.org/Compiling_M5
假设将这些下载的文件放在用户主目录 gem5 下面。
编译gem5之前必须先安装这些必要的文件包。每个包里都有一个install文件说明了安装了方法,基本就是三部曲。
%——————————————————————————-%
具体的安装过程如下:[具体情况,文件包名字略有不同]
%——————————————————————————-%
%——————————————————————————-%
解压gem5源文件:
bzip2 -d gem5-stable-1.tar.bz2
假设将gem5解压后的文件夹重命名为:gem5-stable
%——————————————————————————-%
安装zlib:
解压下载的压缩包:
tar -xzvf zlib-1.2.7.tar.gz
进入解压之后的文件夹 zlib-1.2.7
cd zlib-1.2.7
执行命令:
./configure
sudo make install
%——————————————————————————-%
安装SWIG:(注意版本!)
解压下载的压缩包:
tar -xzvf swig-1.3.34.tar.gz
进入解压后的文件夹:
cd swig-1.3.34
执行命令:
./configure
make
sudo make install
%——————————————————————————-%
安装M4:
解压下载的压缩包:
tar -xzvf m4-latest.tar.gz
进入解压之后的文件夹 m4-1.4.16
cd m4-1.4.16
执行命令:
./configure
make
sudo make install
%——————————————————————————-%
安装scons:
Scons的安装很简单,只需要将scons-local-2.2.0.tar.gz解压
tar -xzvf scons-local-2.2.0.tar.gz
将解压后的文件全部拷贝到gem5-stable中,得到结果如下图:
%——————————————————————————-%
编译:
进入gem5-stable文件夹:
cd gem5-stable
执行:
python scons.py build/<arch>/m5.<binary>
指定编译的选项,及目标文件,例如:
python scons.py build/ALPHA/m5.opt
如果出现如下错误:
错误:can’t find Python.h header in [‘/usr/include/python2.7’]
解决:sudo apt-get install python-dev
重新执行命令,没有错误则说明编译成功。
%——————————————————————————-%
%——————————————————————————-%
测试:
se模式下执行hello测试程序。
执行命令:
build/ARM/m5.opt configs/example/se.py -c tests/test-progs/hello/bin/arm/linux/hello
部分输出:
**** REAL SIMULATION ****
info: Entering event queue @ 0. Starting simulation…
Hello world!
%——————————————————————————-%
到此,安装测试成功!!