交叉编译mtd-utils-1.2.0

下载解压源码:
ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.2.0.tar.bz2
http://www.zlib.net/zlib-1.2.3.tar.gz
http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz

2,编译安装zlib:
tar xzvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
CC=arm-linux-gcc ./configure --shared --prefix=/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/
make
sudo make install

这里配置指向 /tools/gcc-3.4.5-glibc-2.3.6/arm-linux/ 目录,这是交叉编译器的路径
,生成的文件会自动安装在 /tools/gcc-3.4.5-glibc-2.3.6/arm-linux/ [include,lib] 目录下。
在include目录生成zlib.h和zconf.h,lib目录下生成 libz.so.1.2.3 等。

3,编译安装lzo:
tar xzvf lzo-2.03.tar.gz
cd  lzo-2.03
CC=arm-linux-gcc ./configure --host=arm-linux --prefix=/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/
make
make install

在/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/include目录下生成了一个 lzo 的文件夹,里面有很
多.h 文件。在 /tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib 目录下生成了liblzo.a的库文件。

4,编译mtd-utils
tar xzvf mtd-utils-1.2.0.tar.bz2
cd  mtd-utils-1.2.0


1) 修改Makefile,更改 CROSS
 
CROSS=arm-linux-

把第46行的   make -C $(BUILDDIR)/ubi-utils
修改为    make -C ubi-utils

把第51行的   make -C $(BUILDDIR)/ubi-utils clean
修改为    make -C ubi-utils clean

2) make WITHOUT_XATTR=1

编译完成后,在 arm-linux目录下生成了 mkfs.jffs2 ,用如下命令查看文件:
#file mkfs.jffs2
mkfs.jffs2: ELF 32-bit LSB executable, ARM, version 1, for GNU/Linux 2.4.3,
dynamically linked (uses shared libs),  not stripped
可知:交叉编译成功。

注意:这个mkfs.jffs2是在arm体系的cpu中运行的,在x86中并不能运行。

gcc版本为 4.3.x以上,编译不通过,请参考 http://patchwork.ozlabs.org/patch/12689 ,打补丁
本人非常不幸的将gcc版本升级到了4.3,打了这个补丁后还有个错误,需要修改 ubimirror.c 中 main
函数中最后的一个地方,如下:

if( rc ){
    err_buf[sizeof err_buf - 1] = '/0';
    fprintf(stderr, "%s/n", err_buf); /* 修改这行 */
    if( rc < 0 )
    rc = -rc; 
}

后记:为目标板制作jffs2文件系统image方法:

如果host是x86的,target是arm,要在host上为target制作jffs2文件系统,应该使用host的mkfs.jffs2工具,
而不是使用target的mkfs.jffs2工具。host的mkfs.jffs2工具可以采用不交叉编译的方法得到(直接使用gcc
编译得到),或者使用命令安装: sudo apt-get install mtd-tools


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值