(2013-11-15 13:15:14)html
轉載▼linux
標籤: 轉載 |
原文地址:ubuntu下安裝disksim 4.0及SSD擴展做者:vincentubuntu
1、DiskSim 以及 SSD擴展插件簡介flex
DiskSim is a low-level storage simulation tool, which can generate timing-accurate simulation result. It is developed by Greg Ganger. Current version is 4.0 and it is out in June 2008.this
SSD extension for DiskSim is an extensional module of DiskSim which implments SSD I/O Models. It is implemented by Microsoft Research.spa
2、安裝須知插件
1. 目前DiskSim還木有64位版,故請在32位OS下安裝使用DiskSim!htm
2. DiskSim使用lex和yacc進行詞法及語法分析,故linux如沒安裝flex、bison的話,先要安裝。blog
$ sudo apt-get install bison flexip
3. 下載源碼安裝包
disksim 4.0:http://www.pdl.cmu.edu/DiskSim/
SSD extension:http://research.microsoft.com/en-us/downloads/b41019e2-1d2b-44d8-b512-ba35ab814cd4/
3、安裝步驟
Step 1. Download and unzip.
Sources can be downloaded from the links above. I downloaded DiskSim 4.0 with dixtrac.
$ tar xfz disksim-4.0-with-dixtrac.tar.gz
$ cd disksim-4.0
$ unzip ../ssd-add-on.zip
Step 2. Apply SSD add on patch.
$ patch -p1 < ssdmodel/ssd-patch
Step 3. Modify Makefile to support math library
a. 修改memsmodel/Makefile
ems_seektest: mems_seektest.o libmems_internals.a
$(CC) -o $@ mems_seektest.o $(LDFLAGS) $(CFLAGS) -lmems_internals
將$(LDFLAGS)放置最後;
b.修改dixtrac/Makefile
LDFLAGS = -L. -lm -l$(LIBNAME) -ldxtools
$(LIBDISKSIM_LDFLAGS)
$(MEMSMODEL_LDFLAGS)
$(DISKMODEL_LDFLAGS)
$(LIBPARAM_LDFLAGS)
$(LIBDDBG_LDFLAGS)
$(ST_LDFLAGS)
將-lm放置最後;
c.修改src/Makefile
LDFLAGS = -lm -L. -ldisksim $(DISKMODEL_LDFLAGS) $(MEMSMODEL_LDFLAGS)
$(LIBPARAM_LDFLAGS) $(LIBDDBG_LDFLAGS)
將-lm放置最後;
Step 4. Append SSD model library path to dixtrac.
add these lines to dixtrac/.paths
# path to ssdmodel
export SSDMODEL_PREFIX=../ssdmodel
export SSDMODEL_INCL=$(SSDMODEL_PREFIX)/include
export SSDMODEL_CFLAGS=-I$(SSDMODEL_INCL)
export SSDMODEL_LDPATH=$(SSDMODEL_PREFIX)/lib
export SSDMODEL_LDFLAGS=-L$(SSDMODEL_LDPATH) -lssdmodel
modify dixtrac/Makefile like this :
$(LIBDISKSIM_LDFLAGS)
$(MEMSMODEL_LDFLAGS)
$(DISKMODEL_LDFLAGS)
$(SSDMODEL_LDFLAGS)
$(LIBPARAM_LDFLAGS)
$(LIBDDBG_LDFLAGS)
$(ST_LDFLAGS)
CFLAGS = -Wall -g -MD -I. $(DEFINES) -I$(STHREADS) $(DMINCLUDES)
$(LIBDISKSIM_CFLAGS)
$(DISKMODEL_CFLAGS) $(LIBPARAM_CFLAGS) $(LIBDDBG_CFLAGS)
$(SSDMODEL_CFLAGS)
Step 5. Compile!
$ make
Step 6. Check if it works well.
$ cd valid; ./runvalid
$ chmod a+x ../ssdmodel/valid/runvalid
$ cd ../ssdmodel/valid; ./runvalid
Good luck, have fun!