您的位置:首页 > 其它

ubuntu10.04上ubifs文件系统的制作与移植过程

2013-12-18 16:39 621 查看
交叉编译器:arm-openwrt-linux-gnueabi-gcc 4.6.3
主机:ubuntu10.04

编译器:gcc4.1.3

一、mtd-utils 交叉编译

参考网页http://www.cnitblog.com/luofuchong/archive/2009/03/11/55259.html

1、mtd-utils编译之前的准备

1)下载mtd-utils最新版本:git clone git://git.infradead.org/mtd-utils.git

之所以使用最新版,是因为开始使用mtd-utils_20080508.orig.tar.gz,网上介绍的好多,结果出现了好多错误。

error: storage size of 'rq' isn't known

该网友给出了正确的解决方法http://www.wcode.net/plus/view.php?aid=851102

具体是在receive_image.c中添加结构体:

struct ip_mreq

{

struct in_addr imr_multiaddr; /* IP multicast address of group */

struct in_addr imr_interface; /* local IP address of interface */

};

结果又出现其他错误。所以改用最新版,现在为mtd-utils1.5.0

2)zlib-1.2.3.tar.gz

3)lzo-2.03.tar.gz http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz
4)e2fsprogs-1.41.14 http://download.chinaunix.net/download.php?id=38326&ResourceID=2490

解压到同一目录下(~/ubifs)。编译安装后的文件都放在~/ubifs/build下。

2、编译zlib

tar xzvf /mnt/hgfs/...../zlib-1.2.3.tar.gz-C ./

cd zlib-1.2.3

CC=arm-openwrt-linux-gnueabi-gcc ./configure--shared --prefix=$PWD/../build

make

make install

3、编译安装lzo

tar xzvf /mnt/hgfs/...../lzo-2.03.tar.gz -C ./

cd lzo-2.03

CC=arm-openwrt-linux-gnueabi-gcc ./configure--host=arm-openwrt-linux-gnueabi --prefix=$PWD/../build

make

make install

4、编译e2fsprogs-1.41.14

./configure--host=arm-openwrt-linux-gnueabi CC=arm-openwrt-linux-gnueabi-gcc--prefix=$PWD/../build

cd lib/uuid/(注意:不能省)

make

make install

5、mtd-utils编译

make CROSS=arm-openwrt-linux-gnueabi- WITHOUT_XATTR=1(也可以写到Makefile中,如写到common.mk中CROSS=arm-openwrt-linux-gnueabi- )

编译生成的工具在arm-openwrt-linux-gnueabi目录下。

二、ubuntu下mtd-utils编译

参考网页 http://blog.chinaunix.net/uid-26895763-id-3465135.html

1. zlib
apt-get install zlib1g-dev

2. lzo

apt-get install liblzo2-2
apt-get install liblzo2-dev
apt-get install uuid-dev
由于我使用的是ubuntu10.04所以会提示我libuuid1的版本依赖过高,需要降低版本。
apt-get install libuuid1=2.17.2-0ubuntu1.10.04.1
然后再执行

apt-get install uuid-dev

3. e2fsprogs
我的Ubuntu10.04中可能系统自带的,不需要安装。

注意: 在编译的过程中,你或许会遇到下面的问题:(In compile process, you will meet the following problem.)

1. sys/acl.h: No such file or directory --> sudo apt-get install libacl1-dev

2. compr_lzo.c:29:23: error: lzo/lzo1x.h: No such file or directory --> sudo apt-get install liblzo-dev (Maybe use liblzo2-dev replace it)

3. uuid/uuid.h: No such file or directory --> sudo apt-get install uuid-dev

安装完毕后,开始编译mtd-utils。
打开终端,输入:
make WITHOUT_XATTR=1
或者 make

至此,mtd-utils 编译完成。
执行安装命令:

make install

这样您的工具 mkfs.ubifs就会安装到 /usr/sbin目录下面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: