Chinaunix首页 | 论坛 | 博客
  • 博客访问: 391244
  • 博文数量: 380
  • 博客积分: 75
  • 博客等级: 民兵
  • 技术积分: 1925
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-05 15:35
文章分类

全部博文(380)

文章存档

2014年(1)

2013年(2)

2012年(19)

2011年(358)

我的朋友

分类:

2011-09-05 18:23:35

在目标板上使用ubifs,需要一些UBI工具,可从mtd-utils工具中得到。
在以前的文章中介绍过mtd-utils-1.2.0的交叉编译方式,但是这个版本的软件只能获得目标板的UBI工具,没有包含主机端得UBI工具。

mtd-1.3.0以上则包含了目标端和主机的UBI工具。主机上编译已经介绍过了,现在介绍交叉编译mtd-utils-1.4.2。

同样是在Fedora Core 9环境下编译。
当然,与交叉编译mtd-1.2.0一样,zlib、lzo都是不可缺少的,进行交叉编译,并安装到交叉工具链中,不再介绍。

交叉编译mtd-1.4.2还需要uuid,uuid包含在e2fsprogs软件包中,所以下载进行交叉编译。

----------------------------------------------------------------------------------

下载e2fsprogs:
wget 

交叉编译脚本:
./configure --host=arm-vfp-linux --enable-elf-shlibs \
        --prefix=/opt/nxp/gcc-4.3.2-glibc-2.7/arm-vfp-linux-gnu/
make
make install
mkdir /opt/nxp/gcc-4.3.2-glibc-2.7/arm-vfp-linux-gnu/include/uuid
cp lib/uuid/uuid.h /opt/nxp/gcc-4.3.2-glibc-2.7/arm-vfp-linux-gnu/include/uuid/

安装libuuid以及uuid.h文件。

------------------------------------------------------------------------------------

下载mtd-utils-1.4.2
wget ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.4.2.tar.bz2

交叉编译:
make CROSS=arm-vfp-linux-gnu- WITHOUT_XATTR=1

编译中会出现一些错误,可以不用理会。在arm-vfp-linux-gnu目录下生成了flash_erase等工具。
说明,没有了flash_eraseall工具,已经被flash_erase替代了。

将arm-vfp-linux-gnu/lib目录下的libmtd.a复制到交叉工具链目录:
sudo cp libmtd.a /opt/nxp/gcc-4.3.2-glibc-2.7/arm-vfp-linux-gnu/lib

进入ubi-utils目录,输入
make CROSS=arm-vfp-linux-gnu-
在rm-vfp-linux-gnu目录下会生成ubimkvol/ubiattachden等在目标板上用的工具。

----------------------------------------------------------------------------------------
下面给出一个更简单的办法,无需交叉编译e2fsprogs:

由于仅限于在目标板上使用,目标板上一般无需mkfs.ubifs这样的工具,所以可以不用编译这个目录,直接在Makefile中修改,去掉mkfs.ubifs目录:
#SUBDIRS = lib ubi-utils mkfs.ubifs
SUBDIRS = lib ubi-utils

去掉与jffs2相关的项。
make CROSS=arm-vfp-linux-gnu- WITHOUT_XATTR=1
make CROSS=arm-vfp-linux-gnu- -C ubi-utils


然后输入:
make CROSS=arm-vfp-linux-gnu- WITHOUT_XATTR=1
就可以了。在编译中会出现jffs2相关的错误,如果不希望看到这些错误的话,可以在Makefile中将与jffs2相关的项去掉即可。


编译完毕,在arm-vfp-linux-gnu目录下生成flash_erase等工具,在arm-vfp-linux-gnu/lib目录下生成libmtd库,将libmtd.a复制到交叉工具链目录。

然后进入ubi-utils目录,输入make CROSS=arm-vfp-linux-gnu-就可以了。











阅读(476) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~