mtd-utils工具--下载编译篇
作者:longfeey
操作说明:
交叉编译工具路径:/opt/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi使用过程根据自己的情况更改即可
1.mtd-utils及依赖工具下载
1)mtd-utils-1.4.4下载
wget ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.4.4.tar.bz2
2)lzo-2.03下载
wget
3)zlib下载
wget
如果访问不了,可以去 下载
4)e2fsprogs下载,解决uubi库缺少
wget
2.编译安装lzo:
flyan@flyan-Rev-1-0:~/mtd-utils/lzo-2.03$ CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/opt/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi
flyan@flyan-Rev-1-0:~/mtd-utils/lzo-2.03$ make
flyan@flyan-Rev-1-0:~/mtd-utils/lzo-2.03$ make install
flyan@flyan-Rev-1-0:~/mtd-utils/lzo-2.03$ cd ..
3.编译安装zlib:
(a.) 配置 , 生成的文件安装到交叉工具链目录
flyan@flyan-Rev-1-0:~/mtd-utils/zlib-1.2.5$ CC=arm-linux-gcc ./configure --shared --prefix=/opt/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi
(b.) 编译
flyan@flyan-Rev-1-0:~/mtd-utils/zlib-1.2.5$ make
(c.) 安装
flyan@flyan-Rev-1-0:~/mtd-utils/zlib-1.2.5$ install
flyan@flyan-Rev-1-0:~/mtd-utils/zlib-1.2.5$ cd ..
4.编译e2fsprogs,解决uuid库缺少问题
(a.) 配置,生成的文件安装到交叉工具链目录
flyan@flyan-Rev-1-0:~/mtd-utils/e2fsprogs-1.41.14$ ./configure --host=i686-linux --target=arm-linux CC=arm-linux-gcc --prefix=/opt/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueab
(b.) 编译
flyan@flyan-Rev-1-0:~/mtd-utils/e2fsprogs-1.41.14$ make
(c.) 安装 uuid 库(我们只使用到UUID库,所以只安装库即可)
flyan@flyan-Rev-1-0:~/mtd-utils/e2fsprogs-1.41.14$ make install-libs
5.编译mtd-utils
<1> 指定编译器 ,可以直接修改 common.mk, 也可以指定当前环境变量,这里指定当前环境变量,即可避免修改Makefile的麻烦
export CROSS=arm-linux- #指定交叉编译工具链
export WITHOUT_XATTR=1 # 避免 sys/acl.h 找不到错误
export CFLAGS="-static -O2 -g -I /opt/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/include -L /opt/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/lib" #指定所需头文件和库文件路径,生成静态可执行文件,在android中即可直接使用
<2> 编译
flyan@flyan-Rev-1-0:~/mtd-utils/mtd-utils-1.4.4$ make
编译后会将生成的可执行文件存放在mtd-utils-1.4.4/arm-linux目录中
flyan@flyan-Rev-1-0:~/mtd-utils/mtd-utils-1.4.4$ file arm-linux/mtd_debug
arm-linux/mtd_debug: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
可知:交叉编译成功。
将arm-linux目录下的可执行文件copy到开发板的文件系统中,启动后即可使用。
如果使用的是android文件系统,copy到/system/bin/目录下即可直接使用。