在gem5的full system下运行 x86编译的测试程序 running gem5 on ubuntu in full system mode in x86...
背景
上篇博客寫了如何在gem5的full system模式運(yùn)行alpha的指令編譯的程序,這篇博客講述如何在gem5的full system模式運(yùn)行x86指令集編譯的程序,這兩種方式非常類似。
?
首先需要安裝gem5-stable,可以參考我前面的一篇博客:
http://blog.csdn.net/wyj7260/article/details/8267345
?
這篇文章介紹full system ?in ?x86。
安裝過程:
下載full system需要的兩個(gè)包:
首先在安裝好gem5-stable之后,再到官網(wǎng)下載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復(fù)制到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' ]
運(yùn)行(運(yùn)行過程中遇到的error以及解決方法)
1、? 首先編譯gem5.opt
~/gem5-stable $ scons ./build/x86/gem5.opt
2、運(yùn)行模擬的linux系統(tǒng)
~/gem5-stable$ ./build/X86/gem5.opt ./configs/example/fs.py
報(bào)錯(cuò)如下:
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'))
如實(shí)修改Benchmarks.py, 把return env.get('LINUX_IMAGE',disk('x86root.img'))改成
return env.get('LINUX_IMAGE', disk('linux-x86.img'))
?
然后執(zhí)行:
~/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解壓也可得)
?
運(yùn)行
~/gem5-stable$ ./build/X86/gem5.opt ./configs/example/fs.py
仍然報(bào)錯(cuò)
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
?
?
這是因?yàn)檫\(yùn)行時(shí)需要制定kernel:
運(yùn)行命令為:
./build/X86/gem5.opt ./configs/example/fs.py --kernel=x86_64-vmlinux-2.6.22.9.smp
注意:此處不用制定.smp文件的路徑,只用文件名就行
?
?
剩下的mount文件到模擬的系統(tǒng)同上一篇關(guān)于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
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的在gem5的full system下运行 x86编译的测试程序 running gem5 on ubuntu in full system mode in x86...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CCNA 02 OSI七层
- 下一篇: 从神经质症的发生发展过程找到走出焦虑的途