Flashsim + Disksim 安装 固态硬盘模拟器

在Ubuntu 10.04 32bit系统中安装Flashsim和Disksim硬盘模拟器需要低版本的gcc(2.95)、bison、flex-old。首先,安装gcc-2.95,然后安装bison和flex-old。接着,编译disksim-3.0时遇到问题,需降级flex版本为flex-old,重新编译后通过验证。最后,在disksim-3.0基础上编译并应用Flashsim,需要打补丁修正源码中的不规范代码。
摘要由CSDN通过智能技术生成

Flashsim + Disksim安装

OS:uBuntu 10.04(必须是32bit,62bit不行,这里指的是os的位数,而不是机器的位数,可以用64bit的机器安装32bit的os)
GCC:2.95
bison & flex-old(刚开始我安装的flex,编译不通过,过会儿详细说)
disksim-3.0
flashsim(src)

1.安装gcc低版本

Disksim不支持高版本的gcc,所以笔者安装的低版本的gcc(gcc-2.95版本),下载地址为:

http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-2.95/

 

将下列五个文件依次下载:

 

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 --force-depends -ixxx.deb

 

然后更改软连接,执行命令: 

sudo ln -fs /usr/bin/gcc-2.95/usr/bin/gcc

查看gcc版本:gcc –v ,可以看到版本为gcc-2.95.4 。

这样,当需要编译软件时,默认使用的gcc版本就是gcc-2.95.4  。

2、安装bison和flax

可直接在线安装,终端命令分别为:

sudo apt-get install bison

sudo apt-get install flex

装完使用bison –v,查看版本为bison (GNU Bison) 2.4.1。

使用flex –v看到版本为flex 2.5.35

 

接下来就正式进入flashsim的安装了。这个过程要注意,每次重新编译安装所用到的disksim3.0和flashsim的源码包都要选择最原始的压缩包,然后解压操作。

3、编译disksim-3.0

解压disksim-3.0.tar.gz,假设解压到当前用户主目录下,解压后文件名为disksim-3.0

whm@ubuntu:~$ cddisksim-3.0/         #进入disksim-3.0目录

whm@ubuntu:~/disksim-3.0$make       #编译整个工程

如没有提示编译错误,则可以进入/disksim-3.0/valid目录下,运行runvalid文件。若能准确运行,说明disksim-3.0的编译是正确的。

 

 

注意:由于处笔者安装的flex版本不多,导致disksim3.0进行make时候报错,错误如下红色:

make

make: *** No targets specifiedand no makefile found.  Stop.

wyj@jsi-desktop:~$ cddisksim-3.0/

wyj@jsi-desktop:~/disksim-3.0$make

make -C libddbg; make -Clibparam; make -C diskmodel; make -C src;

make[1]: Entering directory`/home/wyj/disksim-3.0/libddbg'

cc -g -I../libparam   -c -o ddbg_assert.o ddbg_assert.c

In file included from/usr/include/signal.h:394,

                 from ddbg_assert.c:38:

/usr/include/bits/pthreadtypes.h:99:warning: unnamed struct/union that defines no instances

cc -g -I../libparam   -c -o ddbg_trace.o ddbg_trace.c

In file included from/usr/include/sys/types.h:270,

                 from /usr/include/stdlib.h:320,

                 from ddbg_trace.c:64:

/usr/include/bits/pthreadtypes.h:99:warning: unnamed struct/union that defines no instances

ar cru libddbg.a ddbg_assert.oddbg_trace.o

mkdir -p include/libddbg lib

cp libddbg.h include/libddbg

cp libddbg.a lib

make[1]: Leaving directory`/home/wyj/disksim-3.0/libddbg'

make[1]: Entering directory`/home/wyj/disksim-3.0/libparam'

cc -g-I/home/wyj/disksim-3.0/libddbg/include -Wall  -c -o util.o util.c

In file included from/usr/include/sys/types.h:270,

                 from/usr/include/stdlib.h:320,

                 from util.c:32:

/usr/include/bits/pthreadtypes.h:99:warning: unnamed struct/union that defines no instances

bitvector.h:50: warning:`bit_zero' defined but not used

bitvector.h:54: warning:`bit_setall' defined but not used

bison -plibparam --defineslibparam.y

cc -g-I/home/wyj/disksim-3.0/libddbg/include -Wall  -c -o libparam.tab.o libparam.tab.c

In file included from/usr/include/sys/types.h:270,

                 from /usr/include/stdlib.h:320,

                 from libparam.y:33:

/usr/include/bits/pthreadtypes.h:99:warning: unnamed struct/union that defines no instances

libparam.tab.c: In function`libparamparse':

libparam.tab.c:1345: warning:implicit declaration of function `libparamlex'

libparam.y:107: warning: implicitdeclaration of function `lp_inst_list'

libparam.y:303: warning: implicitdeclaration of function `dumb_split'

flex -Plibparam libparam.lex

libparam.lex:85: warning, rulecannot be matched

cc -g -I/home/wyj/disksim-3.0/libddbg/include-Wall   -c -o lex.libparam.olex.libparam.c

In file included from/usr/include/sys/types.h:270,

                 from/usr/include/stdlib.h:320,

                 from lex.libparam.c:41:

/usr/include/bits/pthreadtypes.h:99:warning: unnamed struct/union that defines no instances

libparam.lex: In function`libparamlex':

libparam.lex:141:`yy_current_buffer' undeclared (first use in this function)

libparam.lex:141: (Eachundeclared identifier is reported only once

libparam.lex:141: for each functionit appears in.)

libparam.lex: At top level:

lex.libparam.c:1395: warning:`yyunput' defined but not used

make[1]: *** [lex.libparam.o]Error 1

make[1]: Leaving directory`/home/wyj/disksim-3.0/libparam'

make[1]: Entering directory`/home/wyj/disksim-3.0/diskmodel'

make -C modules

make[2]: Entering directory`/home/wyj/disksim-3.0/diskmodel/modules'

/home/wyj/disksim-3.0/libparam/mod.pldm disk.modspec

indent dm_disk_param.c2>/dev/null >/dev/null || true

/home/wyj/disksim-3.0/libparam/mod.pldm layout_g1.modspec

indent dm_layout_g1_param.c2>/dev/null >/dev/null || true

/home/wyj/disksim-3.0/libparam/mod.pldm mech_g1.modspec

indent dm_mech_g1_param.c2>/dev/null >/dev/null || true

/home/wyj/disksim-3.0/libparam/mod.pldm layout_g1_zone.modspec

indent dm_layout_g1_zone_param.c2>/dev/null >/dev/null || true

/home/wyj/disksim-3.0/libparam/make_modules_h.pldm *.modspec > modules

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值