使用UBIFS文件系统
参考:
1.内核配置
使用UBIFS,首先需要在内核中使能MTD_UBI和UBIFS:
在MTD中使能UBI:
<*> Enable UBI
在FS中使能UBIFS:
<*> UBIFS file system support
工具支持
使用UBI,需要UBI的一些工具,如ubiattach ubimkvol等,这些工具都包含在教新版的mtd-utils中,我下载了mtd-utils-1.2.0.tar.bz2,其中就包含了ubi的工具,只需进行交叉编译即可。但是,交叉编译mtd-utils,需要zlib和lzo的支持,我分别下载了zlib-1.2.3.tar.gz和lzo-2.03.tar.gz,分别进行交叉编译并安装到交叉工具链中。
2.交叉编译zlib-1.2.3.tar.gz
解压后,进行配置编译即可,编译和安装命令:
CC=arm-none-linux-gnueabi-gcc ./configure --shared --prefix=/opt/arm-2007q3/arm-none-linux-gnueabi
make
make install
(注意--prefix=/opt/arm-2007q3/arm-none-linux-gnueabi这个路径,我开始编译到交叉编译器的--prefix=/opt/arm-2007q3/目录下时,交叉编译mtd-utils-1.2.0还是找不到libz.h.后来加了arm-none-linux-gnueabi才行。其实也就是说以后要在交叉编译器中加库时,也要注意这个路径)
3.交叉编译lzo-2.03.tar.gz
解压后进行配置和编译即可。
CC=arm-none-linux-gnueabi-gcc ./configure --host=arm-linux --prefix=/opt/arm-2007q3/arm-none-linux-gnueabi/
make
make install
4.交叉编译mtd-utils-1.2.0
这需要修改Makefile文件。修改./Makefile,将其中的CROSS指定为:
8 arm-none-linux-gnueabi-
9 CC := $(CROSS)gcc
修改./ubi-utils/Makefile文件,增加CROSS:
11 CROSS=arm-none-linux-gnueabi-
12 CC := $(CROSS)gcc
修改./ubi-utils/new-utils/Makefile文件,增加CROSS:
12 arm-none-linux-gnueabi-
13 CC := $(CROSS)gcc
然后输入 make WITHOUT_XATTR=1 进行编译,编译完毕,可以得到flash_erase等工具。(编译会报一个错误,但是文件已经编译通过,不用理会那个错误)
再进入ubi-utils/目录,输入make,将会得到ubi的工具,将需要的工具复制添加到目标板的根文件系统中即可。我是放在rootfs/usr/bin目录下。
阅读(1052) | 评论(0) | 转发(0) |