DiskSim安装
-
环境说明
- ubuntu10.04 LTS 最好 (12.x不行,然后非LTS可能提示无法更新)
- 32bits 必须 (64bits ABI不兼容 Assembly Error)
- gcc-2.9.5 必须
- flex-old/bison (版本不对可能提示*.h not found)
-
环境搭建
- ubuntu 10.04 LTS 32bits
虚拟机还是双系统随意,映像下载地址。 - gcc-2.9.5安装
Ubuntu10.04上面自带的gcc版本是4.x版本太高无法编译- -、 需要安装低版本的。老版本ubuntu软件可以在[这里](http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.3/找到(此网址可以收藏)。然后在里面搜索下载下面几个软件包:- cpp-2.95_2.95.4-24_i386.deb
- gcc-2.95_2.95.4-24_i386.deb
- g++-2.95_2.95.4-24_i386.deb
- libstdc++2.10-glibc2.2_2.95.4-24_i386.deb
- libstdc++2.10-dev_2.95.4-24_i386.deb
或者我这里有已经下载好的文件 访问密码 5c71,下载完毕后,使用
- ubuntu 10.04 LTS 32bits
sudo dpkg -i --force-depends xxx.deb
安装这几个软件。**由于依赖关系,必须按照上面列出的顺序来安装**,否则,就算安装完了,也不顶用。或者直接一条命令解决(如果你是用的我提供的安装包的话。)
sudo dpkg -i cpp-2.95_2.95.4-24_i386.deb gcc-2.95_2.95.4-24_i386.deb g++-2.95_2.95.4-24_i386.deb libstdc++2.10-glibc2.2_2.95.4-24_i386.deb libstdc++2.10-dev_2.95.4-24_i386.deb
安装过程中注意一下有没有错误和警告,有的话仔细检查。不然后面出错不好定位。不行的话重新按照顺序安装一遍。提示:*如果安装不对,可以sudo dpkg -r pkgname 移除软件包重新安装,具体查阅dpkg --help*
如果一切正确,那么接下来就是修改系统默认使用的gcc,一条命令搞定:
sudo ln -fs /usr/bin/gcc-2.95 /usr/bin/gcc
执行完毕之后,输入gcc -v 如果提示版本是2.9.5那么这一步完成。
- bison/flex-old安装
1. bison安装
ubuntu的话很简单:
>sudo apt-get install bison
如果找不到bison什么的,10.10有可能,不是LTS版自行添加软件源并更新。如果是手动安装bison可能还有依赖问题,比较麻烦,得一个个把依赖包下下来,没别的情况还是apt-get吧。
2. flex-old
同上一句话。注:**注意安装的是flex-old而不是flex**,新版本会提示什么libparam.h头文件找不到。
两个装完之后,执行命令:
>bison -V
>bison (GNU Bison) 2.4.1
>flex -V
>flex version 2.5.4
那么万事俱备。
- 安装DiskSim
- 下载源码:在官方地址下载,上面提供的gcc2.95那个包里面也有。
- 源码安装:解压包之后进入disksim目录,直接执行make即可。正常情况会弹出一大堆的警告,可以忽视。当然如果报错,那检查你的环境对不对,系统版本,gcc以及bison/flex是否正确安装,环境很重要,不行的话重来。
-
检查是否安装成功。进入disksim/valid目录,执行 ./runvalid,如果出现:
那么安装成功。接下来搞定flashsim。
FlashSim安装
其实也不叫安装,flashsim就是disksim的一个补丁。这个麻烦的不是安装各种环境,而是网上所说的各种安装办法,连flashsim需要的源码都下载不到,给出的这个地址已经打不开了。
这里给出我使用的flash的源码包 访问密码 772e
这个包里面的src文件夹就是需要编译的flashsim的源码,已经是patch过了的,因此不需要执行什么patch命令(虽然里面有patch文件,但是不要再执行patch了)。
- 替换源码
进入原来的disksim目录,删除src文件夹。然后把我给出的flashsim源码的src文件夹放在disksim的目录(一句话就是用flashsim的src替换原来的)。 - 修改配置
进入src目录,编辑.path.in这个隐藏文件,找到第一句:
export FLASHSIM_SRC_DIR=/home/tianweishu/Desktop/gcc/disksim-3.0
把后面那个目录改成你的disksim的目录,ok。
然后把.path.in文件的内容复制到.path中。实际使用的是.path文件。
>cd src
>vi .path.in
>cp .path.in .path
*这一步没成功很多头文件找不到的*。
- 编译
编译很简单,make就行。不过鉴于你之前make过,可能环境不干净,因此如果你make失败了,再次make之前clean一下。make clean && make
- 测试
把给出的flashsim源码包的test.release解压放在disksim目录下。然后进入此目录,执行 ./runtest,如果输出如下,那么成功:
Enjoy it!!