在gem5的full system下运行 x86编译的测试程序 running gem5 on ubuntu in full system mode in x86
背景
上篇博客写了如何在gem5的full system模式运行alpha的指令编译的程序,这篇博客讲述如何在gem5的full system模式运行x86指令集编译的程序,这两种方式非常类似。
首先需要安装gem5-stable,可以参考我前面的一篇博客:
http://blog.csdn.net/wyj7260/article/details/8267345
这篇文章介绍full system in x86。
安装过程:
下载full system需要的两个包:
首先在安装好gem5-stable之后,再到官网下载full system需要的包:
Full System Files : http://www.m5sim.org/dist/current/x86/x86-system.tar.bz2
Config files : http://www.m5sim.org/dist/current/x86/config-x86.tar.bz2
安装:记我的gem5-stable安装目录为$GEM
a) ~/gem5-stable$ mkdir x86Dist
b) 将包x86-system.tar.bz2和config-x86.tar.bz2复制到x86Dist目录下
b) ~/gem5-stable$ cd x86Dist/
c) ~/gem5-stable/x86Dist$ tar -xvf x86-system.tar.bz2
把exceptKeyError:
path = [ '/dist/m5/system', '/n/poolfs/z/dist/m5/system
修改成
except KeyError:
path = [ '/dist/m5/system', ' /home/wyj2/gem5-stable/x86Dist' ]
运行(运行过程中遇到的error以及解决方法)
1、 首先编译gem5.opt
~/gem5-stable $ scons ./build/x86/gem5.opt
2、运行模拟的linux系统
~/gem5-stable$ ./build/X86/gem5.opt ./configs/example/fs.py
报错如下:
gem5 Simulator System. http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.
gem5 compiled Jul 12 2013 21:30:39
gem5 started Jul 12 2013 21:33:06
gem5 executing on arch-node3
command line: ./build/X86/gem5.opt ./configs/example/fs.py
warning: add_child('terminal'): child 'terminal' already has parent
Global frequency set at 1000000000000 ticks per second
info: No kernel set for full system simulation. Assuming you know whatyou're doing if not SPARC ISA
0: rtc: Real-time clock setto Sun Jan 1 00:00:00 2012
panic: Error opening /home/wyj/gem5-stable/x86Dist/disks/x86root.img
@ cycle 0
[open:build/X86/dev/disk_image.cc, line 79]
Memory Usage: 225092 KBytes
Program aborted at cycle 0
Aborted (core dumped)
解决方法:
提示不能打开x86root.img,于是我查找x86root.img
命令:~/gem5-stable$ grep -r"x86root.img" ./
得到如下:
./configs/common/Benchmarks.py: return env.get('LINUX_IMAGE',disk('x86root.img'))
如实修改Benchmarks.py, 把return env.get('LINUX_IMAGE',disk('x86root.img'))改成
return env.get('LINUX_IMAGE', disk('linux-x86.img'))
然后执行:
~/gem5-stable$ ./build/X86/gem5.opt ./configs/example/fs.py
gem5 Simulator System. http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.
gem5 compiled Jul 2 201310:06:26
gem5 started Jul 13 2013 18:13:18
gem5 executing on jsi-desktop
command line: ./build/X86/gem5.opt ./configs/example/fs.py
warn: add_child('terminal'): child 'terminal' already has parent
Global frequency set at 1000000000000 ticks per second
info: No kernel set for full system simulation. Assuming you know whatyou're doing
0: rtc: Real-time clock setto Sun Jan 1 00:00:00 2012
panic: Error opening/home/wyj2/gem5-stable/x86Dist/disks/linux-bigswap2.img
@ cycle 0
[open:build/X86/dev/disk_image.cc, line 79]
Memory Usage: 177860 KBytes
Program aborted at cycle 0
Aborted
缺少linux-bigswap2.img文件,秩序要将alpha的full system下载的包Full System Files解压后的linux-bigswap2.img拷贝到目录/home/wyj2/gem5-stable/x86Dist/disks/就行。
(full system Files下载地址http://www.m5sim.org/dist/current/m5_system_2.0b3.tar.bz2解压也可得)
运行
~/gem5-stable$ ./build/X86/gem5.opt ./configs/example/fs.py
仍然报错
gem5 Simulator System. http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.
gem5 compiled Jul 2 201310:06:26
gem5 started Jul 13 2013 18:18:48
gem5 executing on jsi-desktop
command line: ./build/X86/gem5.opt ./configs/example/fs.py
warn: add_child('terminal'): child 'terminal' already has parent
Global frequency set at 1000000000000 ticks per second
info: No kernel set for full system simulation. Assuming you know whatyou're doing
0: rtc: Real-time clock setto Sun Jan 1 00:00:00 2012
Listening for com_1 connection on port 3456
warn: Reading current count from inactive timer.
0: system.remote_gdb.listener: listening for remote gdb #0 on port 7000
fatal: No kernel to load.@ cycle 0
[initState:build/X86/arch/x86/system.cc, line 118]
Memory Usage: 177868 KBytes
这是因为运行时需要制定kernel:
运行命令为:
./build/X86/gem5.opt ./configs/example/fs.py --kernel=x86_64-vmlinux-2.6.22.9.smp
注意:此处不用制定.smp文件的路径,只用文件名就行
剩下的mount文件到模拟的系统同上一篇关于alpha的full system
。
参考链接:
http://www.m5sim.org/Running_M5_in_Full-System_Mode
http://novel.ict.ac.cn/qguo/pdf/gem5.pdf
http://gem5.org/dist/tutorials/hipeac2012/gem5_hipeac.pdf
以及参考师兄的ppt
在gem5的full system下运行 x86编译的测试程序 running gem5 on ubuntu in full system mode in x86的更多相关文章
- 在gem5的full system下运行 alpha编译的测试程序 running gem5 on ubuntu in full system mode in alpha
背景 先需要在full system下运行gem5,通过网上查找资料以及向别人请教,终于成功运行,网上大多是关于alpha指令集的,且都是英文的,为了方便大家学习,现在总结一下,希望对大家有所帮助. ...
- Gem5全系统模式下运行SPLASH-2 Benchmarks使用alpha ISA
Steps to run the SPLASH-2 Benchmarks on M5 in full system mode using the alpha ISA. This Guide is ai ...
- ASP.NET CORE下运行CMD命令
ASP.NET CORE下运行CMD命令,用以前的ASP.NET 的命令System.Diagnostics.Process.Start("notepad");这样是可以运行出记事 ...
- JAVA手记 JAVA入门(安装+Dos下运行)
JAVA入门特供= =,今天设置环境变量后用dos运行的时候发现出现“找不到或无法加载主类”,索性查了些资料重新看了看JAVA入门的部分. 声明:我的笔记本暂时用的是Win10系统,Windows其他 ...
- Windows 下使用 GNUstep 编译并运行 Objective-C 程序
今晚上开始看<Objective-C 程序设计(第4版)>这本书(OSChina 正在做此书的书评活动,详情请看这里),到现在为止看到第 7 章,于是想动手试试写两简单的程序编译跑跑看. ...
- JAVA设置环境变量和在DOS下运行java程序
在学校实训的这几天,老师带着我们开始深入的复习java.这是第一天的内容哦 对于“JAVA设置环境变量和在DOS下运行java程序”,许多初学者是陌生的,但了解这个却对后期的学习很重要. http:/ ...
- Unity怎样在Editor下运行协程(coroutine)
在处理Unity5新的AssetBundle的时候,我有一个需求,须要在Editor下(比方一个menuitem的处理函数中,游戏没有执行.也没有MonoBehaviour)载入AssetBundle ...
- Demo+在Linux下运行(CentOS7+dotnetcore sdk)
来份ASP.NET Core尝尝 0x01.前言 学习ASP.NET Core也有一段时间了,虽说很多内容知识点还是处于一知半解的状态,但是基本的,还是 略懂一二.如果有错误,还望见谅. 本文还是和之 ...
- OpenCV探索之路(二十一)如何生成能在无opencv环境下运行的exe
我们经常遇到这样的需求:我们在VS写好的程序,需要在一个没有装opencv甚至没有装vs的电脑下运行,跑出效果.比如,你在你的电脑用opencv+vs2015写出一个程序,然后老师叫你把程序发给他,他 ...
随机推荐
- addEventListener 与attachEvent
第一:简单的通用方法(IE && FF) window.onload = function(){ var oDiv = document.getElementById("J_ ...
- C++并发编程学习笔记<1> 入门
入门 多线程C++程序是什么样子的? 它看上去和其它全部C++程序一样,一般是变量.类以及函数的组合. 唯一真正的差别在于某些函数能够并发执行, 当然.为了并发地执行函数,必须使用特定的函数以及对象来 ...
- php利用SoapClient调用webservices
原文:php利用SoapClient调用webservices 1.开启soap支持,在php.ini中去除extension=php_soap.dll之前的':' 2.掉用页面 <?php h ...
- Android基础笔记(十)- 帧动画、补间动画具体解释、对话框
帧动画 补间动画Tween Animation 对话框以及面试中的注意点 帧动画 帧动画非常easy,我们首先看一下Google官方解释This is a traditional animation ...
- Premiere Pro CC问题集,不断更新
1.Premiere Pro CC不好用? 是的.原因如下: 1.1 Adobe公司不注重用户体验,不注重工作流程,导致这款软件的用户体验很差,设计也很烂.对比Adobe公司当年用户体验最好的软件 F ...
- PHP 6:PHP 基本数据类型
原文:PHP 6:PHP 基本数据类型 本章将介绍PHP基本类型.相信我们已经熟悉了C/C++,C#或者Java里的任意一种语言.本章会以C#为比较语言.OK,如果你想学PHP,你最先考虑的是什么呢? ...
- LINUX下FD_SET介绍
刚刚了解了linux下select系统调用,函数原型是 #include <sys/select.h> #include <sys/time.h> int select(int ...
- Redis源代码分析(二十四)--- tool工具类(2)
在上篇文章中初步的分析了一下,Redis工具类文件里的一些使用方法,包含2个随机算法和循环冗余校验算法,今天,继续学习Redis中的其它的一些辅助工具类的使用方法.包含里面的大小端转换算法,sha算法 ...
- SSMS2008插件开发(4)--自定义菜单
原文:SSMS2008插件开发(4)--自定义菜单 打开上次的项目MySSMSAddin中的Connect类,发现该类继于了两个接口:IDTExtensibility2和IDTCommandTarge ...
- ZA7783:MIPI转LVDS/MIPI转RGB888/RGB转LVDS
在消费类电子越来越白热化阶段.好多设计project师已经開始慢慢关注到成本控制,小金在这里就给大家带来一颗转接IC.希望能帮助贵公司控制成本.当然性能也是可靠的,已经好多产品设计了. 多多不吝赐教 ...