嵌入式linux新手入门手记-制作UBI文件镜像

发布时间:2016-1-27 08:11    发布者:designapp
关键词: 嵌入式linux , UBI
  这一篇计划是放到最后写的,但是QT5.4.1移植和TSLIB的修改内容比较多,想想就将这篇提前。
  /home/XXXX/nfs下已经包含一个完整的根文件系统了,可以使用这个文件系统来制作一个UBI文件镜像,并将它烧写到nand中。
  如果没有根文件系统,就需要先获取或者自己制作一个。制作根文件系统可以用busybox。不过为了省事,我直接使用TI的SDK中的根文件系统,然后自己删减,得的了一个大约40M左右的根文件系统,在加入tslib,qt5.4.1,以及中文字库后的大小大约在90M左右。
  制作ubi文件镜像需要用到mtd-utils工具,目前的最新版本是1.5.1,使用git下载:git clone git://git.infradead.org/mtd-utils.git。
  下载下来的mtd-utils解压缩后保存到/home/XXXX/mtd-utils目录。
  编译mtd-utils还需要一些其他的库,我们使用apt-get来安装:
  sudo -s
  apt-get install libzo2-dev
  apt-get install libacl1-dev
  apt-get install uuid-dev
  以及zlib,到www.zlib.net下载zlib的源代码,保存到/home/XXXX/zlib目录中,进入到这个目录中执行./configure,成功后执行make -j4,make install。
  之后编译mtd-utils,进入到mts-utils目录中,执行make -j4。
  新建一个目录/home/XXXX/tools,将这个目录加入到PATH环境变量中,然后将编译出来的mtd-utils的目标执行程序拷贝到这个tools目录下。
  进入到/home/XXXX目录下,执行以下操作:
  mkfs.ubifs -F -q -r ./nfs -m 2048 -e 126976 -c 1599 -o ubifs.img
  -F: 使能"white-space-fixup",通过uboot烧写nand时必须要这个参数
  -r ./nfs, 我计算机上用户挂载am335x板的nfs根文件系统,以这个目录中的内容制作镜像文件
  -m 2048, nand的最小读写单元,page size
  -e 126976, nand的block size-2*page size
  -c 1599, 文件系统占用的最大block数,一般小于等于nand最大block数-1,或者根据文件系统的大小实际计算
  -o ubifs.img,输出文件名
  ubinize -o ubi.img -m 2048 -p 128KiB /home/jerry/tools/ubifs.conf
  -o ubi.img,输出文件名
  -m 2048, nand的最小读写单元,page size
  -p 128KiB, block size
  最后面的ubifs.conf是配置文件:
  [ubifs]
  mode=ubi
  image=ubifs.img
  vol_id=0
  vol_size=120MiB
  vol_type=dynamic
  vol_name=rootfs
  vol_flags=autoresize
  到这里,就生成了一个ubi.img文件,这个就是ubi镜像文件,可以在u-boot中写入到nand中。
                               
               
本文地址:https://www.eechina.com/thread-160419-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表