找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5227|回复: 0
打印 上一主题 下一主题
收起左侧

AM335X的Ubifs文件系统制作教程

[复制链接]
跳转到指定楼层
楼主
ID:396888 发表于 2018-9-12 10:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
UBI 文件系统是 JFFS2 的下一代文件系统,更适合 NAND FLASH。看到一些 AM335x 的 用户在应用 UBIFS 时遇到些问题,现在做个简要介绍。
1.              U-boot kernel 中使能对 UBIFS 的支持
1.1              U-boot \include\configs\am335x_evm.h 中加入如下宏的定义:
#define CONFIG_CMD_NAND
#define CONFIG_CMD_UBI
#define CONFIG_CMD_UBIFS
#define CONFIG_RBTREE
#define CONFIG_MTD_DEVICE
#define CONFIG_MTD_PARTITIONS
#define CONFIG_CMD_MTDPARTS
#define CONFIG_LZO
1.2              Kernel 中的 menuconfig:
               Enabling UBI support on MTD devices.
Device Drivers --->
Memory Technology Device (MTD) support              --->
Enable UBI - Unsorted block images              --->
               Enabling UBIFS file-system support.
File systems              --->
Miscellaneous filesystems              ---> UBIFS file system support
2.              下载和编译 MTD Utilites
2.1              下载 MTD Utilites

通过 git://git.infradead.org/mtd-utils.git 下载最新的 MTD-Utils 源代码。 下载 3 个编译所需的依赖库

Zlibzlibnet/
Lzowww点oberhumer点com/opensource/lzo/download/
e2fsprogshttp://e2fsprogs.sourceforge.net/
在用户目录下建立/mtd,/mtd/install 目录,将以上 4 个 source code 包拷贝到/mtd
下,安装如下步骤先编译依赖包:


zlib
host$ tar xvf zlib-1.2.5.tar.gz host$ cd zlib-1.2.5/
host$ ./configure --prefix=~/mtd/install host$ make
host$ make install
host$ cd ..
lzo
host$ tar xvf lzo-2.06.tar.gz host$ cd lzo-2.06/
host$ ./configure --build=i686-pc-linux --prefix=~/mtd/install host$ make
host$ make install host$ cd ..
e2fsprogs
host$ tar xvf e2fsprogs-1.42.tar.gz host$ cd e2fsprogs-1.42/
host$ ./configure --build=i686-pc-linux --prefix=~/mtd/install
host$ make
host$ make install
host$ cd lib/uuid/ host$ make install host$ cd ../../../
2.1              编译 MTD Utilites
在编译 mtd-utils 之前,先修改 makfile 文件:
host$ vi Makefile
PREFIX = ~/mtd/install
ZLIBCPPFLAGS = -I$(PREFIX)/include LZOCPPFLAGS = -I$(PREFIX)/include ZLIBLDFLAGS = -L$(PREFIX)/lib LZOLDFLAGS = -L$(PREFIX)/lib
LDFLAGS += $(ZLIBLDFLAGS) $(LZOLDFLAGS)
CFLAGS ?= -O2 -g $(ZLIBCPPFLAGS) $(LZOCPPFLAGS)
host$ vi common.mk
#PREFIX=/usr
然后依照如下指令编译:
host$ WITHOUT_XATTR=1 make
host$ make install              DESTDIR=~/mtd/install
host$ cd ..
制作 ubi 文件系统所用的工具在如下目录下:


~/mtd/install/home/<username>/mtd/install/sbin/mkfs.ubifs
~/mtd/install/home/<username>/mtd/install/sbin/ubinize
3.              制作 ubifs
Ubifs 的制作需要以下两个命令
mkfs.ubifs: 制作 UBIFS image
ubinize:              根据 UBIFS image 制作 ubi.img,这个 ubi.img 是通过 u-boot 直接烧 写在 nand flash 分区上的。
AM335x Linux SDK 里面带有制作好的文件系统,是.tar.gz 的压缩文件,可以解压在 一个目录下做为 UBI 文件系统内容,如/home/usr/fs。
GPEVM 板上的 NAND 型号为 MT29F2G08,page size 为 2048B,block size 为
64x2048B=131072B,block count 为 2048。如果制作针对 GPEVM 板的 ubifs,执行 如下两条命令:
1. $ mkfs.ubifs –F -q -r /home/usr/fs -m 2048 -e 126976 -c 2047 -o ubifs.img
参数简介:
-F:使能"white-space-fixup",如果是通过 u-boot 烧写需要使能此功能。
-r:待制作的文件系统目录
-m:NAND FLASH 的最小读写单元,一般为 page size
-e:LEB size,对于 AM335x 的 NAND driver,为 block size-2x(page size)
-c:文件系统所占用的最大 block 数,一般小于等于 block count -1
-o:输出的 ubifs.img 文件
2. $ ubinize -o ubi.img -m 2048 -p 128KiB ubinize.cfg
参数简介:
-p:block size。
-m:NAND FLASH 的最小读写单元,一般为 page size
-o:输出的 ubi.img 文件
ubinize.cfg 为 ubinize 所需要的配置文件,内容如下:
[ubifs]


4.              烧写 ubifs
mode=ubi image=ubifs.img vol_id=0 vol_size=200MiB vol_type=dynamic vol_name=rootfsvol_flags=autoresize


可通过 u-boot 命令将生成的 ubi.img(25M)烧写到 NAND FLASH 分区上,如下示
例是将 ubi.img 先存储到 SD 卡上,然后通过 u-boot 的 fatload 命令将其拷贝至内存 中。
u-boot# mw.b 0x82000000 0xFF
u-boot# mmc rescan
u-boot# fatload mmc 0 0x82000000 ubi.img
u-boot# nand erase 0x00780000 0xF880000
u-boot# nand write 0x82000000 0x00780000 0x1E00000
5.              Linux 启动设置
在 U-boot 下设置启动信息如下:
#setenv bootargs 'console=ttyO0,115200n8 noinitrd ip=off mem=256M rootwait=1 rw ubi.mtd=7,2048 rootfstype=ubifsroot=ubi0:rootfs init=/init'


顺利启动后,会在终端显示如下相关信息:

Ubifs文件系统的制作和启动 (1).pdf

444.91 KB, 下载次数: 17, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表