背景

上篇博客写了如何在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. TRS_WCM(拓尔思信息技术有限公司)内容协作平台平台置标经验攻略

    TRS_WCM置标过程中经验积累 版本V4.0-2014.6.24-穿越者7号 目录 1.嵌套模板置标 1 2.栏目名称超链接置标 1 3.列表循环输出文档标题包含超链接 1 4.取既定栏目下第一篇文 ...

  2. 探讨javascript面向对象编程

    (个人blog迁移文章.) 前言: 下面将探讨javascript面向对象编程的知识. 请不要刻意把javascript想成面向对象编程是理所当然的. javascript里面,对象思想不可少,但是不 ...

  3. 基于科大讯飞语音云windows平台开发

    前记: 前段时间公司没事干,突发奇想想做一个语音识别系统,看起来应该非常easy的,但做起来却是各种问题,这个对电气毕业的我,却是挺为难的.谷姐已经离我们而去,感谢度娘,感谢CSDN各位大神,好歹也做 ...

  4. 快速构建Windows 8风格应用26-本地应用数据

    原文:快速构建Windows 8风格应用26-本地应用数据 本篇博文主要介绍如何获取应用的设置和文件容器.如何将数据写入设置.如何从设置中获取数据.如何删除设置中数据.如何将数据写入文件.如何从文件中 ...

  5. jQuery EasyUI API - Layout - Layout[原创汉化官方API]

    最近在学习jQuery EasyUI,发现中文的文档好少,部分文档不错但它是鸟语的,为了大家也为了自己学习吧,汉化做一下笔记. 有没有说清楚的,或者翻译不正确的地方还请大家谅解指出.. 由于工作时间原 ...

  6. 笔试题&amp;面试题:CW输出矩阵

    称号:CW输出矩阵(N*N). 如果一个矩阵: 1   2   3   4 5   6   7   8 9  10 11 12 13 14 15 16 那么程序应该给出的输出为:1 2 3 4 8 1 ...

  7. leetcode第36题--Sudoku Solver

    题目: Write a program to solve a Sudoku puzzle by filling the empty cells. Empty cells are indicated b ...

  8. Python 3语法小记(九) 异常 Exception

    常见异常: Exception                        所有异常的基类 AttributeError                 特性应用或赋值失败时引发 IOError  ...

  9. Forget Java to learn Javascript from 0.--Day 1

    The first day,when I read 'we need practice so we need a Javascript Interpreter.','Every browser has ...

  10. Matlab中如何用命令方式保存图像?

    命令很简单,例如下面这个代码将当前图像保存到F1.emf文件中,保存格式为emf saveas(gcf,'F.emf','emf'); 当然了,也可以保存为jpg格式,修改为: saveas(gcf, ...