gem5使用记录,gem5入门学习和环境配置。

        工作需要,对gem5有点兴趣,准备自己研究一下,gem5新手刚开始入门学习,主要参考了网上其他前人的文章和官方说明。

        目前网上的前人文章有部分有点太早了,稍显过时,我结合自己的经历来整理一下流程。

         gem5 介绍我就不多说了,官方网站如下:

https://www.gem5.org/

        我用的环境是深度的deepin,属于可以用apt命令来安装的那一类,比如乌班图。

 

        一上来需要安装gem5需要的各种包和依赖。

sudo apt install build-essential git m4 scons zlib1g zlib1g-dev libprotobuf-dev protobuf-compiler libprotoc-dev libgoogle-perftools-dev python-dev python

        上面这个命令是官网上的,里面有python pyhton-dev 这两个是python2的,但现在的gem5不支持python2了,必须要3。所以还需要安装python3。

sudo apt install  python3  python3-dev

        尽量联网后用apt或者yum命令搞定上面这些东西,不然自己去找还是挺麻烦。我试了下deepin 都可以搞定,其他大概率会用ubuntu之类的更没问题,我开始用deepin还安不上,结果是没有更新库,先用sudo apt update,之后就可以了。

        版本问题目前没有那么恼火了,我直接更新下来都可以用,不用特别在意某个软件的版本问题。

        接下来就是下载gem5了,官方推荐用git来下,但国内应该不行,还是用这个地址下载吧:

https://github.com/gem5/gem5

        点code 下面就有下载的按钮。

        上面这个还是国外的,国内的也有镜像。会用git的就用git。。不会用的就直接点下载吧,不过他要注册后才能下载。

https://gitee.com/mirrors/gem5

 

        接下来就是把这个包解压,解压后进去,进去之后就可以编译了,可以来编一下X86。

sudo python3 `which scons` build/X86/gem5.opt -j8

        自己的环境的话最好加个sudo,不然可能会有问题,后面的-j8是8个核跑的意思大概是吧我觉得。如果报错就不要这个参数也行,反正我看了下编的时候我的每个cpu都是100%,说明是都用上了的。如果不想加sudo就把这里面的目录全部改成自己的权限和拥有者。

        which scons其实就是scons命令,把它路径加上,build是编的结果放在build文件夹里面,我试了下其他的名字好像不行,不知为啥。gem5.opt就是结果,最后编成功的话会生成gem5.opt文件。我的电脑有点慢,编了快一个小时才搞定。

        我看了下中间过程,有些warning,然后就开始来消除警告,一般来说只要成功了,警告可以不管,但我还是想把能去的去掉。

        我这里出现了三个warning,一个是 valgrind啥之类的记不清了,二个是找不到png.h,三个是找不到hdf5 c++库。下面一个一个搞定,我花了很久时间去查这些东西,有时去下载了手动安装,有时可以直接apt,搞定之后又试了下尽量全部apt,这样简单点,结果如下:

        valgrind这个好像是GDB里面的组件还是功能哦,直接安装GDB就可以搞定:

sudo apt install gdb

        png.h这个我试了几次结果可用的apt如下:

sudo apt install libpng-dev

        hdf5这个也是找了很久,还安了hdf5这个包都不行,结果是另一个相关的lib就行,现在一个命令搞定:

sudo apt install libhdf5-dev

        这三个安好了之后再编就不会出现找不到库的警告,成功编译后就可以测试一个hello world的例子

sudo ./build/X86/gem5.opt ./configs/example/se.py -c  ./tests/test-progs/hello/bin/x86/linux/hello

        运行后成功结果如下:

Global frequency set at 1000000000000 ticks per second
warn: No dot file generated. Please install pydot to generate the dot file and pdf.
build/X86/mem/mem_interface.cc:793: 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/X86/sim/simulate.cc:107: info: Entering event queue @ 0.  Starting simulation...
Hello world!
Exiting @ tick 5985500 because exiting with last active thread context

        成功输出hello world。到此基本环境测试跑通。

        另外如编的过程中出错要重新编,可以把build这个文件夹删掉就行。

        目前我搞到这一步,最后发一个官方的学习指导链接,可以看看,那里有些东西要细一点,可以结合着看。

https://www.gem5.org/documentation/learning_gem5/part1/building/

 

 

 

 

 

posted @ 2021-11-16 19:39  远方之水  阅读(1869)  评论(1编辑  收藏  举报