nandflash格式化分区
?
?把nandflash做成ubifs的文件系统(本文章是因为nandflash已经用了一部分了,把剩下的大约200M也格式化了,前面已经用到了mtd0,mtd1,mtd2,所以这次分到了mtd3) ? 1,由IBM、nokia工程师Thomas Gleixner,Artem Bityutskiy等人于2006年发起,致力于开发性能卓越、扩展性高的FLASH专用文件系统,以解决当前嵌入式环境下以FLASH作为MTD设备使用时的技术瓶颈。
内核树中ubifs选项选上步骤:(内核版本 linux-2.6-28) Device Drivers --> Memory Technology Device(MTD) support --->UBI -Usorted block images--->Enable UBI File systems--->Miscellaneous filesystems--->UBIFS file system support ? 3,在内核中linux-2.6.28archarmmach-at91board-sam9263ek.c中 static struct mtd_partition __initdata ek_nand_partition[]{ }里面后加上 { 4,ubifs工具 4.1、mtd-utils工具(flash_eraseall、ubiattach、ubimkvol)准备 2)编译安装zlib 3)编译安装lzo 4)编译mtd-utils 修改Makefile文件: 修改ubi-utils/Makefile文件: 修改??? ubi-utils/new-utils/Makefile文件: make WITHOUT_XATTR=1 ubi-utils子目录下生成我们需要的ubiattach、ubimkvol等文件(请确保是交叉编译所得) 4.2、mtd-utils工具(mkfs.ubifs、ubinize)准备 mkfs.ubifs子目录下生成我们需要的mkfs.ubifs工具 ? 5,把生产的ubiattch?? ubimkvol? mkfs.ubifs拷到文件系统中的bin目录下
●mount -t ubifs ubi0_0? /tmp或mount -t ubifs ubi0:rootfs0 /tmp //挂载 7,当用串口调试的时候,把数据存储到tmp文件后,需要执行命令sync,就是把缓存里面的内容真正存储到tmp里去,所以在应用程序中每次存储到tmp文件中的时候都需要执行sync命令 ? 8,写个脚本程序放到文件系统里去,当系统运行时候,自动把mtd3挂载到tmp文件下,就不需要执行第6步了 脚本如下:(就是每次开机时候,先关联和挂载,如果挂载不成功,就执行擦除、关联、分空间大小、挂载) if {? ????? ubiattach /dev/ubi_ctrl -m 3 -d 0 //UBI和mtd3关联 ->ubi0 ????? mount -t ubifs ubi0_0? /tmp或mount -t ubifs ubi0:rootfs0 /tmp //挂载 }else { ????? flash_eraseall /dev/mtd3 //擦除mtd3 ????? mount -t ubifs ubi0_0? /tmp或mount -t ubifs ubi0:rootfs0 /tmp //挂载 ? }
? 附加功能: 1、如果你想使用ubifs为rootfs,把文件系统内容解压到ubifs挂载目录下,并修改内核启动参数为:console=ttySAC0 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs2、如果你想直接在bootloader下烧写ubifs映像,使用以下命令制作ubi烧写映像:mkfs.ubifs -r rootfs -m 512 -e 15872 -c 3303 -o ubifs.imgubinize -o ubi.img -m 512 -p 16KiB -s 256 ubinize.cfg其中:1)以上命令的参数可从ubifs挂载信息中提取:UBI: attaching mtd4 to ubi0?????????????????????????????????????????????????????UBI: physical eraseblock size:?? 16384 bytes (16 KiB)???????????????????????????UBI: logical eraseblock size:??? 15872 bytes????????????????????????????????????UBI: smallest flash I/O unit:??? 512????????????????????????????????????????????UBI: sub-page size:????????????? 256????????????????????????????????????????????UBI: VID header offset:????????? 256 (aligned 256)??????????????????????????????UBI: data offset:??????????????? 512????????????????????????????????????????????UBI: attached mtd4 to ubi0??????????????2)配置文件ubinize.cfg的内容为:[ubifs]mode=ubiimage=ubifs.imgvol_id=0vol_size=50MiBvol_type=dynamicvol_name=rootfsvol_flags=autoresize (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |