ubifs文件系统工具制作
第一步:下载所需源码。
1、mtd-utils-1.5.0.tar.bz2(wget ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.5.0.tar.bz2)
2、lzo-2.06.tar.gz(http://www.oberhumer.com/opensource/lzo/download/)
3、zlib-1.2.5.tar.gz(http://www.zlib.net/fossils/)
4、e2fsprogs-1.42.tar.gz(https://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/1.42/)
注释: 1、由于交叉编译mtd-utils,需要依赖(zlib,lzo)。
2、这些数据包的版本最好如上所述,否则可能会导致无法生成所需的文件或生成的文件不正确
第二步:在将下载的文件放到ubuntu目录下,我这里是放到了 /home/shzn/make-mtd-utils/目录下(根据自己的情况放置)
然后在该目录下新建一个目录:mkdir install (用于放置生成的文件,其中包括了最后生成的工具)
第三步:解压zlib-1.2.5.tar.gz,使用命令:zlib-1.2.5.tar.gz ,进入解压好的目录:cd zlib-1.2.5
使用命令:./configure --prefix=/home/shzn/make-mtd-utils/install (该目录是第二步中make-mtd-utils下新建的install目录) 接着打开其根目录下的 Makefile替换 gcc, ldshared, cpp, ar , ranlib 为如下:
使用命令:vi Makefile打开,修改编译器,具体内容为:
CC=arm-linux-gnueabihf-gcc
LDSHARED=arm-linux-gnueabihf-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map
CPP=arm-inux-gnueabihf-gcc -E
AR=arm-linux-gnueabihf-ar rc
RANLIB=arm-linux-gnueabihf-ranlib
保存退出,然后编译分别使用命令:make 、 make install (注意:两个命令用" 、"顿号隔开了)
生成的 zlib.a 存放在 /home/shzn/make-mtd-utils/install/lib 中;
生成的 zlib 的头文件存放在 /home/shzn/make-mtd-utils/install/include中。
zlib安装完成!
第四步:解压lzo-2.06.tar.gz,使用命令:tar -xzvf lzo-2.06.tar.gz ,进入解压好的目录:cd lzo-2.06
使用命令:./configure --build=i686-pc-linux --prefix=/home/shzn/make-mtd-utils/install --host=arm-inux-gnueabihf
然后进行编译,分别使用命令:make 、 make install (注意:两个命令用" 、"顿号隔开了)
生成的 liblzo2.a 存放在 /home/shzn/make-mtd-utils/install/lib 中;
生成的 lzo 的头文件 存放在 /home/shzn/make-mtd-utils/install/include/lzo中
lzo安装完成!
第五步:解压e2fsprogs-1.42.tar.gz,使用命令:tar - xzvf e2fsprogs-1.42.tar.gz,进入解压好的目录:cd e2fsprogs-1.42
使用命令: ./configure --build=i686-pc-linux --prefix=/home/shzn/make-mtd-utils/install --host=arm-linux-gnueabihf
然后进行编译,分别使用命令:make 、make install (注意:两个命令用" 、"顿号隔开了)
编译完之后,进入到lib/uuid/目录下,使用命令:cd lib/uuid/
然后使用命令:make install
生成的 libuuid.a 存放在 /home/shzn/make-mtd-utils/install/lib 中;
生成的 uuid 的头文件 存放在/home/shzn/make-mtd-utils/install/include/uuid 中。
e2fsprogs安装完成!
第六步:解压mtd-utils-1.5.0.tar.bz2,使用命令:tar - xjvf mtd-utils-1.5.0.tar.bz2,进入解压好的目录:cd mtd-utils-1.5.0
打开其根目录下的Makefile,加入如下语句,在最后的地方添加:
PREFIX = /home/shzn/make-mtd-utils/install
ZLIBCPPFLAGS = -I$(PREFIX)/include
LZOCPPFLAGS = -I$(PREFIX)/include
ZLIBLDFLAGS = -L$(PREFIX)/lib
LZOLDFLAGS = -L$(PREFIX)/lib
LDFLAGS += $(ZLIBLDFLAGS) $(LZOLDFLAGS)
CFLAGS ?= -O2 -g $(ZLIBCPPFLAGS) $(LZOCPPFLAGS)
CROSS=arm-linux-gnueabihf-
保存退出,然后编译分别使用命令:make WITHOUT_XATTR=1 、 make install (注意:两个命令用" 、"顿号隔开了)
交叉环境编译的MTD通用工具就存放在 /home/shzn/make-mtd-utils/install/sbin/中。
如mkfs.ubifs,ubinize 的工具(可执行文件)
至此,安装数据包应该算是完成了。