mtd-utils工具--下载编译篇

来源:互联网 发布:淘宝联盟怎么登录不上 编辑:程序博客网 时间:2024/05/17 07:02
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 http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz

3)zlib下载
wget http://www.zlib.net/zlib-1.2.3.tar.gz
如果http://www.zlib.net访问不了,可以去http://ishare.iask.sina.com.cn/f/13924714.html?from=like 下载

4)e2fsprogs下载,解决uubi库缺少
wget http://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/1.41.14/e2fsprogs-1.41.14.tar.gz

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/目录下即可直接使用。