ubifs烧写到nand flash中的几种方法
折腾了好几天,突然柳暗花明,继而思之,发现原来是出门就走错了路,悲剧之余,写下此笔记,以省自己,警他人。 正题,关于UBIFS的介绍在此就不多说,详见: http://www.linux-mtd.infradead.org/faq/ubifs.html http://www.linux-mtd.infradead.org/faq/ubi.html 1.?UBIFS文件系统镜像的制作过程 1.1?所需的工具制作UBIFS镜像所需的工具有mkfs.ubifs和ubinize,可以通过以下方式获取到此两个工具: 1.?方法一:从官网通过git工具下载源码,编译可得之,下载命令:
下载到源码后,编译需要的的软件包有:uuid-dev和lzo,uuib-dev可以通过apt-get直接安装,lzo需要手动下载编译,官方网站为:http://www.oberhumer.com/opensource/lzo/download/ 2.?方法二:安装mtd-utils工具包,安装命令为:
不过此方法不保证安装的工具可以正常使用(可能版本过低)。 1.2?UBIFS镜像的制作有了mkfs.ubifs和ubinize两个工具后,就可以制作UBIFS镜像了,具体步骤如下: 1.?使用mkfs.ubifs命令将某个文件夹制作为UBIFS镜像,具体命令为:
以上命令的含义为将/tmp/rootfs文件夹制作为UBIFS文件系统镜像,输出的镜像名为ubifs.img,-m参数指定了最小的I/O操作的大小,也就是NAND?FLASH一个page的大小,-e参数指定了逻辑擦除快的大小,-c指定了最大的逻辑块号。 通过此命令制作的出的UBIFS文件系统镜像可在u-boot下使用ubi?write命令烧写到NAND?FLASH上。 2.?使用ubinize命令可将使用mkfs.ubifs命令制作的UBIFS文件系统镜像转换成可直接在FLASH上烧写的格式(带有UBI文件系统镜像卷标):
ubinize.cfg为一些配置参数:
通过此命令生成的ubi.img可直接使用NAND?FLASH的烧写命令烧写到FLASH上。 2.?UBIFS文件系统镜像的烧写以下主要说以下将UBIFS镜像烧写到NAND?FLASH中的三种方法。 2.1?在u-boot下通过nand?write命令烧写使用ubinize命令制作的带有卷标的UBIFS文件系统镜像可以直接使用nand?flash的烧写命令烧写到NAND?FLASH上,具体命令为:
关于tftp,nand?等命令使用格式请参见u-boot的help。 2.2?在u-boot下通过ubi?write命令烧写使用mkfs.ubifs命令制作的UBIFS文件系统镜像可以使用命令ubi?write烧写到NAND?FLASH上,具体命令为: 1.?设置FLASH的分区,此处以128M?NAND?FLASH为例,分为5个区:
设置完后,使用mtdparts命令可以看到分区信息:
2.?烧写文件系统:
通过以上命令,可以将文件系统烧写到第4个分区上,UBIFS文件系统卷标为rootfs。 3.?设置内核启动参数:
这样就可以将烧写的UBIFS文件系统用作根分区了。 4.?要在u-boot下使用ubi,mtd等命令,需要配置一下u-boot,具体可参见:http://www.voidcn.com/article/p-ocqpfpco-yn.html 2.3?在linux系统下烧写在linux系统下,可以使用ubiformat工具烧写使用ubinize工具制作的UBIFS文件系统映像,此处以烧写到NAND?FLASH的5个分区上为例,具体命令为: 1.?查看FLASH的当前分区:
2.?擦除要烧写的分区:
3.?烧写UBIFS文件系统:
4.?挂载烧写好的文件系统:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |