背景

上篇博客写了如何在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的更多相关文章

  1. 在gem5的full system下运行 alpha编译的测试程序 running gem5 on ubuntu in full system mode in alpha

    背景 先需要在full system下运行gem5,通过网上查找资料以及向别人请教,终于成功运行,网上大多是关于alpha指令集的,且都是英文的,为了方便大家学习,现在总结一下,希望对大家有所帮助. ...

  2. 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 ...

  3. ASP.NET CORE下运行CMD命令

    ASP.NET CORE下运行CMD命令,用以前的ASP.NET 的命令System.Diagnostics.Process.Start("notepad");这样是可以运行出记事 ...

  4. JAVA手记 JAVA入门(安装+Dos下运行)

    JAVA入门特供= =,今天设置环境变量后用dos运行的时候发现出现“找不到或无法加载主类”,索性查了些资料重新看了看JAVA入门的部分. 声明:我的笔记本暂时用的是Win10系统,Windows其他 ...

  5. Windows 下使用 GNUstep 编译并运行 Objective-C 程序

    今晚上开始看<Objective-C 程序设计(第4版)>这本书(OSChina 正在做此书的书评活动,详情请看这里),到现在为止看到第 7 章,于是想动手试试写两简单的程序编译跑跑看. ...

  6. JAVA设置环境变量和在DOS下运行java程序

    在学校实训的这几天,老师带着我们开始深入的复习java.这是第一天的内容哦 对于“JAVA设置环境变量和在DOS下运行java程序”,许多初学者是陌生的,但了解这个却对后期的学习很重要. http:/ ...

  7. Unity怎样在Editor下运行协程(coroutine)

    在处理Unity5新的AssetBundle的时候,我有一个需求,须要在Editor下(比方一个menuitem的处理函数中,游戏没有执行.也没有MonoBehaviour)载入AssetBundle ...

  8. Demo+在Linux下运行(CentOS7+dotnetcore sdk)

    来份ASP.NET Core尝尝 0x01.前言 学习ASP.NET Core也有一段时间了,虽说很多内容知识点还是处于一知半解的状态,但是基本的,还是 略懂一二.如果有错误,还望见谅. 本文还是和之 ...

  9. OpenCV探索之路(二十一)如何生成能在无opencv环境下运行的exe

    我们经常遇到这样的需求:我们在VS写好的程序,需要在一个没有装opencv甚至没有装vs的电脑下运行,跑出效果.比如,你在你的电脑用opencv+vs2015写出一个程序,然后老师叫你把程序发给他,他 ...

随机推荐

  1. mysql监控、性能调优及三范式理解

    原文:mysql监控.性能调优及三范式理解 1监控 工具:sp on mysql     sp系列可监控各种数据库 2调优 2.1 DB层操作与调优 2.1.1.开启慢查询 在My.cnf文件中添加如 ...

  2. linux 安装httpd(验证通过)

    一.安装apache(http服务) 1. 从apache.org下载源码安装包 2. 解压缩 # tar zxf httpd-2.2.4.tar.gz # cd httpd-2.2.4 3. 安装a ...

  3. POJ 2777 Count Color(线段树+位运算)

    题目链接:http://poj.org/problem?id=2777 Description Chosen Problem Solving and Program design as an opti ...

  4. .net4.5的弱事件

    .net4.5的弱事件 没有伟大的愿望,就没有伟大的天才--Aaronyang的博客(www.ayjs.net)-www.8mi.me 1. 事件-我的讲法 老师常告诉我,事件是特殊的委托,为委托提供 ...

  5. ASP.NET4.0新特性

    原文:ASP.NET4.0新特性 在以前试用VS2010的时候已经关注到它在Web开发支持上的一些变化了,为此我还专门做了一个ppt,当初是计划在4月12日那天讲的,结果因为莫名其妙的原因导致没有语音 ...

  6. 【POJ3037】Skiing 最短路

    题意: 有个n*m的滑雪场,bessie要从(1,1)滑到(n,m),问最小时间. 起始有一个速度v,然后每从一个点A到一个点B(仅仅能上下左右走,每次一格),速度就会乘上2^(权值A-权值B). 然 ...

  7. Hbuilder jQuery 自定义代码块

    =begin 本文档是jquery代码块的编辑文件.修改其他的代码块,请在对应的激活代码助手点右下角的修改图标. HBuilder可使用ruby脚本来编辑代码块和增强操作命令. 1.编辑代码块 如果要 ...

  8. MySQL之 ALTER vs CHANGE vs MODIFY COLUMN

    1.ALTER COLUMN 用于设置或者移除某一列的默认(缺省)值, 1.1用法 ALTER TABLE MyTable ALTER COLUMN foo SET DEFAULT 'bar'; AL ...

  9. ubuntu14.04无法播放更新后完善的解决方案

    -------------------------------------- 前几天的ubuntu升级14.04该,(Kubuntu版本)时间去更新一下系统..结果没有声音了,网络视频也看不了了.百度 ...

  10. 强大的jquery-制作选项卡

    最近在学习jquery,特地把今天写的一个选项卡源码贴出来.只是做只是梳理,大神们请不要吐槽,如果有更好的方法,欢迎指点.谢谢. css <style> #tab div{ width:2 ...