Full System 运行 parsec x86 编译
1. 在 gem5 文件夹下建立新的文件夹 full_system_images,命令如下:
cd gem5
mkdir full_system_images
2. 在 full_system_images 文件夹中,下载 x86 full system les: x86-system.tar.bz2,地址在
h"p://www.m5sim.org/Download,命令如下
cd full_system_images
tar -xvf x86-system.tar.bz2
现在 full_system_images 文件夹中文件目录结构如下:
binaries/
86_64-vmlinux-2.6.22.9.smp
x86_64-vmlinux-2.6.22.9
disks/
linux-x86.img
3. 下载 parsec x86 的相应文件,替换 system 文件夹中的相应文件
(1) 下载 parsec-2.1 disk image (x86) :x86root-parsec.img.bz2,解压后放在 disks 文件夹
中,命令如下:
cd disks/
wget h"p://www.cs.utexas.edu/~parsec_m5/x86root-parsec.img.bz2
bzip2 -d x86root-parsec.img.bz2
(2) 下载 Alpha full system les : m5_system_2.0b3.tar.bz2,解压后将这个文件夹中的
linux-bigswap2.img 取出放在 disks 文件夹中。
4. 进入 gem5/congs/common 文件夹,修改两个文件(SysPaths.py 和 Benckmarks.py),
在 SysPaths.py 配置 parsec 的路径,在 Benckmarks.py 中配置 disk image 文件名
(1) 修改 SysPaths.py 前第 60 行
path = [ ’/dist/m5/system’, ’/n/poolfs/z/dist/m5/system’ ]
将其修改为
path = [ ’/dist/m5/system’, ’ /home/cy/gem5/full_system_images’ ]
’ /home/cy/gem5/full_system_images/system’这个是自己建的 system 文件夹路径
(2) 修改 Benchmarks.py 前第 60 行
elif buildEnv['TARGET_ISA'] == 'alpha':
return env.get('LINUX_IMAGE', disk('linux-latest.img'))
将其修改为
elif buildEnv['TARGET_ISA'] == 'x86':
return env.get('LINUX_IMAGE', disk('x86root-parsec.img'))
5. 运行,输入命令:
./build/X86/gem5.opt ./congs/example/fs.py --kernel=x86_64-vmlinux-2.6.22.9.smp
6. 我运行时遇到了 SysPaths.py 文件中 can’t nd fault 的错误,修改了 SysPaths.py 第 60 行
path 的值,一定是 binaries 和 disks 这两个文件夹所在文件夹的绝对路径。修改后运行,遇
到 FSCong.py 第 660 行 kernel 找不到文件 vmlinux,将 660 行改为 self.kernel = binary('86_64-
vmlinux-2.6.22.9.smp ')。运行成功。