gem5跑linux或安卓bench
2017-11-19 15:47
591 查看
1搭建gem5环境
1.1 安装
安装所需工具
sudo apt-get install git scons g++ python-dev swig m4 protobuf
1.2gem5下载
note:我安装的是gem5-stable版,据说此版可以查看cache层次结构的pdf
链接:http://pan.baidu.com/s/1eRHYFj8 密码:jl3w
1.3编译
解压gem5,进入gem5文件夹:
scons build/ARM/gem5.opt
(note:第一次较慢(大概20分钟),如果以前跑过gem5可以备份一下build文件夹之后再编译)
2 跑linuxbench
2.1 启动linux镜像前的准备
————镜像,bench的放置和创建仿真输出目录
1 下载linux镜像
http://www.gem5.org/dist/current/arm/aarch-system-2014-10.tar.xz
或链接:http://pan.baidu.com/s/1eRHYFj8 密码:jl3w (只需linux-aarch32-ael.img)
2 将linux镜像放入正确目录
将aarch-system-2014-10.tar.xz解压到my-gem5文件夹下的img文件夹中(如果没有则自己创建)
目录结构如下:
gem5/
|----img/
|----|----binaries/*
|----|----disks/*
note:最终查看disks下存放着要跑的linux镜像linux-aarch32-ael.img
3下载benchmark,放进文件系统镜像
进入到gem5/img/disks目录下,上传mediaBench Mibench,并解压。
下载地址:链接:http://pan.baidu.com/s/1eRHYFj8 密码:jl3w
向镜像添加文件指令,将linux镜像挂载到mnt,把benchmark放到文件系统镜像
sudo mount -o loop,offset=32256 img/disks/linux-aarch32-ael.img /mnt
cp -a Mibench /mnt
cp -a mediaBench /mnt
cd /mnt
chmod +x -R /mediaBench/*
chmod +x -R /Mibench/*
umount /mnt
4 构建仿真输出目录
将gem5/build/ARM/gem5.opt和gem5/configs/链接到任一文件夹下(这里采用gem5/parsec-1/),开始仿真,注意为不同的benchmark创建不同的目录:
链接指令如下:
进入parsec-1目录
ln -s ../build/ARM/gem5.opt ./
ln -s ../configs
目录结构如下:
parsec-1/
|----boot_for_both.sh
|----gem5.opt
|----configs
2.2 启动linux系统(gem5目录下)
仿真的过程首先启动系统,然后在系统中跑bench,为节省时间可以分两步:
1 用AtomicSimpleCpu模式启动linux,设置一个观察点:
进入parsec-1,修改boot_for_both:
1.首先将M5_PATH修改为你自己的img路径
2.可能需要根据不同的模式进行相应的修改,且注意每种模式后面参数文件是否存在
1)运行./boot_for_both.sh,启动结果如下图,主要看三个地方:
1 command line: 输出内容与启动脚本boot_for_both.sh内容一致,如果是安卓,则必须指定kernel, disk-image ,os-type.不指定这者则默认是linux系统
2 port 3458,端口号是3458.这个信息用于m5term连接到监听端口.
3 @XXX 设置的断点,虚拟机下次不再从@0处启动(时间长,会输出非常多启动信息)
2)编译m5term,连接到上面的监听端口:
打开另一个终端,编译m5term,连接到上面的监听端口。m5term的源码在gem5源代码的util/term目录下,进入该目录,输入熟悉命令进行编译:(用lnet连接也可以不过据说连接效果不如下面这个好)
% cd m5/util/term
% make
sudo gcc -o m5term term.c
% make install
sudo install -o root -m 555 m5term /usr/local/bin
然后打开新控制台使用如下命令连接虚拟机:(注意一定要在util/term下运行,此命令才会有效,因为没有加入系统环境变量)
./m5term 127.0.0.1 3456 (note:此次可直接写m5term 3456)
./util/term/m5term 127.0.0.1 3456就可以看到所跑linux系统的命令行#,即已经进入m5终端
(note:root是我们输入的)
出现#号时,说明linux系统已经启动好
设置断点,保存此刻虚拟机状态
此时之前运行./boot_for_both.sh,启动结果图出现对应的变化,@XXX为断点
此时parserc-1/m5out/文件夹里会生成cpt.xxxxx文件夹,即为checkpoint,这个文件夹可以重复使用,跑另一个bench的时候复制其链接到m5out文件夹中
注意:不同的boot_for_both.sh后加入-r 1代表从观察点启动,没有则表示直接启动,可以设置观察点,可以添加进入,以后再次运行即从断点处进入m5终端。
2 用arm_detailed模式从设置的观察点继续执行
下次运行./util/term/m5term 127.0.0.1 3456就可以看到所跑linux系统的命令行#,即已经进入m5终端
3 跑安卓bench
基本一样,不同点是:
1 android镜像和bench在同一个文件:可以直接放入img/disks,不用挂载mount到 /mnt。
2 启动脚本有不同。
3 m5终端略不同,如下。
4 总结
1 gem5 编译
2 创建img,disks下放linux或者andriod的.img。如果是linux系统先挂载,bench再挂载到系统。
3 创建输出文件,存放不同bench的结果。
目录结构如下:
parsec-1/
|----boot_for_both.sh
|----gem5.opt
|----configs
4 修改boot_for_both.sh
5./boot_for_both.sh
6 m5term 编译并连接端口号。
7 进入虚拟的m5终端,设置断点m5 checkpoint
退出虚拟机 m5 exit.
参考
https://labrick.cc/2015/07/15/gem5-run-bench-step/
http://blog.csdn.net/clarkchenhot/article/details/53618003?locationNum=10&fps=1
1.1 安装
安装所需工具
sudo apt-get install git scons g++ python-dev swig m4 protobuf
1.2gem5下载
note:我安装的是gem5-stable版,据说此版可以查看cache层次结构的pdf
链接:http://pan.baidu.com/s/1eRHYFj8 密码:jl3w
1.3编译
解压gem5,进入gem5文件夹:
scons build/ARM/gem5.opt
(note:第一次较慢(大概20分钟),如果以前跑过gem5可以备份一下build文件夹之后再编译)
2 跑linuxbench
2.1 启动linux镜像前的准备
————镜像,bench的放置和创建仿真输出目录
1 下载linux镜像
http://www.gem5.org/dist/current/arm/aarch-system-2014-10.tar.xz
或链接:http://pan.baidu.com/s/1eRHYFj8 密码:jl3w (只需linux-aarch32-ael.img)
2 将linux镜像放入正确目录
将aarch-system-2014-10.tar.xz解压到my-gem5文件夹下的img文件夹中(如果没有则自己创建)
目录结构如下:
gem5/
|----img/
|----|----binaries/*
|----|----disks/*
note:最终查看disks下存放着要跑的linux镜像linux-aarch32-ael.img
3下载benchmark,放进文件系统镜像
进入到gem5/img/disks目录下,上传mediaBench Mibench,并解压。
下载地址:链接:http://pan.baidu.com/s/1eRHYFj8 密码:jl3w
向镜像添加文件指令,将linux镜像挂载到mnt,把benchmark放到文件系统镜像
sudo mount -o loop,offset=32256 img/disks/linux-aarch32-ael.img /mnt
cp -a Mibench /mnt
cp -a mediaBench /mnt
cd /mnt
chmod +x -R /mediaBench/*
chmod +x -R /Mibench/*
umount /mnt
4 构建仿真输出目录
将gem5/build/ARM/gem5.opt和gem5/configs/链接到任一文件夹下(这里采用gem5/parsec-1/),开始仿真,注意为不同的benchmark创建不同的目录:
链接指令如下:
进入parsec-1目录
ln -s ../build/ARM/gem5.opt ./
ln -s ../configs
目录结构如下:
parsec-1/
|----boot_for_both.sh
|----gem5.opt
|----configs
2.2 启动linux系统(gem5目录下)
仿真的过程首先启动系统,然后在系统中跑bench,为节省时间可以分两步:
1 用AtomicSimpleCpu模式启动linux,设置一个观察点:
进入parsec-1,修改boot_for_both:
1.首先将M5_PATH修改为你自己的img路径
2.可能需要根据不同的模式进行相应的修改,且注意每种模式后面参数文件是否存在
1)运行./boot_for_both.sh,启动结果如下图,主要看三个地方:
1 command line: 输出内容与启动脚本boot_for_both.sh内容一致,如果是安卓,则必须指定kernel, disk-image ,os-type.不指定这者则默认是linux系统
2 port 3458,端口号是3458.这个信息用于m5term连接到监听端口.
3 @XXX 设置的断点,虚拟机下次不再从@0处启动(时间长,会输出非常多启动信息)
2)编译m5term,连接到上面的监听端口:
打开另一个终端,编译m5term,连接到上面的监听端口。m5term的源码在gem5源代码的util/term目录下,进入该目录,输入熟悉命令进行编译:(用lnet连接也可以不过据说连接效果不如下面这个好)
% cd m5/util/term
% make
sudo gcc -o m5term term.c
% make install
sudo install -o root -m 555 m5term /usr/local/bin
然后打开新控制台使用如下命令连接虚拟机:(注意一定要在util/term下运行,此命令才会有效,因为没有加入系统环境变量)
./m5term 127.0.0.1 3456 (note:此次可直接写m5term 3456)
./util/term/m5term 127.0.0.1 3456就可以看到所跑linux系统的命令行#,即已经进入m5终端
(note:root是我们输入的)
出现#号时,说明linux系统已经启动好
设置断点,保存此刻虚拟机状态
此时之前运行./boot_for_both.sh,启动结果图出现对应的变化,@XXX为断点
此时parserc-1/m5out/文件夹里会生成cpt.xxxxx文件夹,即为checkpoint,这个文件夹可以重复使用,跑另一个bench的时候复制其链接到m5out文件夹中
注意:不同的boot_for_both.sh后加入-r 1代表从观察点启动,没有则表示直接启动,可以设置观察点,可以添加进入,以后再次运行即从断点处进入m5终端。
2 用arm_detailed模式从设置的观察点继续执行
下次运行./util/term/m5term 127.0.0.1 3456就可以看到所跑linux系统的命令行#,即已经进入m5终端
3 跑安卓bench
基本一样,不同点是:
1 android镜像和bench在同一个文件:可以直接放入img/disks,不用挂载mount到 /mnt。
2 启动脚本有不同。
3 m5终端略不同,如下。
4 总结
1 gem5 编译
2 创建img,disks下放linux或者andriod的.img。如果是linux系统先挂载,bench再挂载到系统。
3 创建输出文件,存放不同bench的结果。
目录结构如下:
parsec-1/
|----boot_for_both.sh
|----gem5.opt
|----configs
4 修改boot_for_both.sh
5./boot_for_both.sh
6 m5term 编译并连接端口号。
7 进入虚拟的m5终端,设置断点m5 checkpoint
退出虚拟机 m5 exit.
参考
https://labrick.cc/2015/07/15/gem5-run-bench-step/
http://blog.csdn.net/clarkchenhot/article/details/53618003?locationNum=10&fps=1
相关文章推荐
- 移植Iperf到android 用来学习linux移植到安卓的例子
- Linux下安卓ndk混合编译调用so方法——QuickStart学习
- Linux UnixBench跑分的使用
- linux下使用apktool破解修改安卓apk
- linux(debian/ubuntu)下连接安卓手机--小米4为例
- linux设备如何通过USB网络共享与手机通信(包含安卓手机以及iphone)
- 在安卓设备上运行可视化GUN/linux
- 搭建Linux(Ubuntu)下安卓开发环境
- 让电脑linux系统,安卓手机开机启动变成文本显示,字符串
- (OK) Android —— gem5跑bench (Android) 过程记录
- 安卓程序中调用 linux 命令
- 如何在 Linux 下安装安卓文件传输助手
- Linux下命令行安装配置android-sdk 下安装安卓插件
- Linux Deploy在安卓手机安装LINUX系统
- 安卓linux真机调试
- 2-安卓底层-java实现调用linux系统调用
- 解决linux头文件在安卓上没有的情况
- 教你用安卓手机以及在Linux下连接校园联通无线宽带
- 菜鸟的安卓内核开发之旅1--安装Ubuntu及熟悉常用linux命令
- 2.25学习内容,小米平板开发选项,linux cpu信息,安卓图片简单缩放移动