移植mtd-utils工具包
- 第一步:下载所需源码。链接具体如下:
- 第二步:这里需要说明,在移植之前,需要有交叉编译器才可以进行,后续需要用到交叉编译器,必须安装才可以进行,
- 第三步:将下载的三个压缩包,统一放到了ubuntu的目录下:/home/mtd_utils_make(这里我是放到了个人的目录下,放哪都可以,记住路径就可以)。
- 第四步:解压三个压缩包:tar -xzvf mtd-utils-1.0.0.tar.gz tar -xzvf lzo-2.10.tar.gz tar -xzvf zlib-1.2.11.tar.gz
- 第五步:我们需要新建一个目录放生成的头文件,使用命令:mkdir /homemtd_utils_make/lib
- 第六步:我们先对zlib进行编译,由第四步解压得到zlib-1.2.11,使用命令进入:cd zlib-1.2.11
- 第七步:接着对lzo进行编译,由第四步加压得到lzo-2.10,使用命令进入:cd lzo-2.10
- 第八步:拷贝头文件:将上述2个开源包的安装目录include里面的头文件拷贝到arm-none-linux-gnueabi-交叉编译器相应的include目录下。
- 第九步:最后我们对mtd-utils进行编译,由第四步解压得到mtd-utils-1.0.0,使用命令进入:cd mtd-utils-1.0.0
- 第十步:使用命令进行编译:make 然后再使用make install
- 第十一步:到此已经生成了工具包
第一步:下载所需源码。链接具体如下:
mtd-utils-1.0.0.tar.gz下载链接: ftp://ftp.infradead.org/pub/mtd-utils/ http://debian.mirror.inra.fr/debian/pool/main/m/mtd-utils/
lzo-2.10.tar.gz下载链接: http://www.oberhumer.com/opensource/lzo/download/
zlib-1.2.11.tar.gz下载链接: http://www.zlib.net/fossils/
注释:由于交叉编译mtd-utils,需要依赖(zlib,lzo)。
第二步:这里需要说明,在移植之前,需要有交叉编译器才可以进行,后续需要用到交叉编译器,必须安装才可以进行,
具体安装可参照“在ubuntu中安装arm-none-linux-gnueabi-gcc交叉编译工具--笔记”中的安装方法。
也可以自行安装。但是需要记住安装的路径。
第三步:将下载的三个压缩包,统一放到了ubuntu的目录下:/home/mtd_utils_make(这里我是放到了个人的目录下,放哪都可以,记住路径就可以)。
第四步:解压三个压缩包:tar -xzvf mtd-utils-1.0.0.tar.gz tar -xzvf lzo-2.10.tar.gz tar -xzvf zlib-1.2.11.tar.gz
第五步:我们需要新建一个目录放生成的头文件,使用命令:mkdir /homemtd_utils_make/lib
注释:该目录可以根据自己的情况创建。但是需要记住路径,后续需要使用到。
第六步:我们先对zlib进行编译,由第四步解压得到zlib-1.2.11,使用命令进入:cd zlib-1.2.11
在该目录下使用命令:CC=arm-none-linux-gnueabi-gcc ./configure --shared --prefix=/home/mtd_utils_make/lib/zlib
解释:其中-prefix指定zlib的安装路径,需要指定到交叉编译器所在路径,但是我们临时创建了一个目录lib(第五步)
我是用了动态库* .so的方式,静态库* .a的方式可以参考网上教程。
然后使用命令进行编译:make 最后使用命令制作:make install
第七步:接着对lzo进行编译,由第四步加压得到lzo-2.10,使用命令进入:cd lzo-2.10
在该目录下使用命令:CC=arm-none-linux-gnueabi-gcc ./configure --host=arm-none-linux-gnueabi --prefix=/home/mtd_utils_make/lib/lzo
解释:其中-prefix指定zlib的安装路径,需要指定到交叉编译器所在路径,但是我们临时创建了一个目录lib(第五步)
然后使用命令进行编译:make 最后使用命令制作:make install
第八步:拷贝头文件:将上述2个开源包的安装目录include里面的头文件拷贝到arm-none-linux-gnueabi-交叉编译器相应的include目录下。
之前我们创建了一个目录lib,用于放我们的zlib和lzo的头文件。然后拷贝到交叉编译器相应的include目录下。
使用命令:cp -a /home/mtd_utils_make/lib/zlib/include/* /home/mtd_utils_make/lib/lzo/include* /usr/local/arm-2009q1/arm-none-linux-gnueabi/libc/usr/include
第九步:最后我们对mtd-utils进行编译,由第四步解压得到mtd-utils-1.0.0,使用命令进入:cd mtd-utils-1.0.0
接着我们修改Makefile:vi Makefile
修改内容如下:
9 CROSS=arm-none-linux-gnueabi-
10 CC := $(CROSS)gcc
42 mkfs.jffs2: crc32.o compr_rtime.o mkfs.jffs2.o compr_zlib.o compr.o
43 $(CC) $(LDFLAGS) -o $@ $^ /home/mtd_utils_make/lib/zlib/lib/libz.so #i-lz
48 jffs2reader: jffs2reader.o
49 $(CC) $(LDFLAGS) -o $@ $^ /home/mtd_utils_make/lib/zlib/lib/libz.so #-lz
56
57 INSTALL_DIR=/home/mtd_utils_make/mtd-utils-1.0.0 #注意这里是新添加的内容
58
59 install: ${TARGETS}
60 mkdir -p ${INSTALL_DIR}/sbin
61 install -m0755 ${TARGETS} ${INSTALL_DIR}/sbin
62 mkdir -p ${INSTALL_DIR}/man/man1
63 gzip -c mkfs.jffs2.1 > ${INSTALL_DIR}/man/man1/mkfs.jffs2.1.gz
保存退出