您好,欢迎来到61ic! | [登录] [注册] 忘记密码 | 设为首页 帮助
 . 网站首页 . 业界新闻 . 设计中心 . 移动技术 . TI专栏 . ADI专栏 . FPGA专栏 . 代码工厂 . 官方商城 . 
 . 活动专区 . 新品快递 . 解决方案 . 前沿科技 . TI资源 . ADI资源 . FPGA资源 . 下载中心 . 产品展示 . 
加入收藏
付款方式
联系我们
您现在的位置: 61IC电子在线 >> TI专栏 >> TI C6000 DSP和ARM >> OMAP-L1x处理器 >> 正文
  [组图]ubifs文件系统的移植           ★★★ 【字体:
ubifs文件系统的移植
作者:xjf616    文章来源:xjf616    点击数:    更新时间:2013-10-24    

1、  在内核中添加对ubifs文件系统的支持

MTD选项中进入UBI配置选项

file system中配置ubifs,如下

配置完成后重新编译内核生成uImage,上电加载启动内核,可以看到/proc/filesystem已经有了ubifs的选项

2、  修改arch/arm/mach-davinci/board-da850-evm.c文件中nandflash分区

  1. struct mtd_partition da850_evm_nandflash_partition[] = {
  2.     {
  3.         .name        = "u-boot env",
  4.         .offset        = 0,
  5.         .size        = SZ_128K,
  6.         .mask_flags    = MTD_WRITEABLE,
  7.      },
  8.     {
  9.         .name        = "UBL",
  10.         .offset        = MTDPART_OFS_APPEND,
  11.         .size        = SZ_128K,
  12.         .mask_flags    = MTD_WRITEABLE,
  13.     },
  14.     {
  15.         .name        = "u-boot",
  16.         .offset        = MTDPART_OFS_APPEND,
  17.         .size        = 4 * SZ_128K,
  18.         .mask_flags    = MTD_WRITEABLE,
  19.     },
  20.     {
  21.         .name        = "kernel",
  22.         .offset        = 0x300000, //txl
  23.         .size        = SZ_2M,
  24.         .mask_flags    = 0,
  25.     },
  26.     {
  27.         .name        = "filesystem",
  28.         .offset        = 0x500000,
  29.         .size        = SZ_32M,
  30.         .mask_flags    = 0,
  31.     },
  32.     {
  33.         .name        = "ubifs",
  34.         .offset        = MTDPART_OFS_APPEND,
  35.         .size        = 1.5 * SZ_32M,
  36.         .mask_flags    = 0,
  37.     },
  38.     {
  39.         .name        = "user",
  40.         .offset        = MTDPART_OFS_APPEND,
  41.         .size        = MTDPART_SIZ_FULL,
  42.         .mask_flags    = 0,
  43.     },

3、  u-boot中添加ubifs支持,编辑include/configs/da850evm.h文件


点击(此处)折叠或打开

  1. #define CONFIG_CMD_MTDPARTS
  2. #define CONFIG_MTD_DEVICE
  3. #define CONFIG_MTD_PARTITIONS
  4. #define CONFIG_LZO
  5. #define CONFIG_RBTREE
  6. #define CONFIG_CMD_UBI
  7. #define CONFIG_CMD_UBIFS
  8. 添加为
  9. #define CONFIG_CMD_MTDPARTS
  10. #define CONFIG_MTD_DEVICE
  11. #define CONFIG_MTD_PARTITIONS
  12. #define CONFIG_LZO
  13. #define CONFIG_RBTREE
  14. #define CONFIG_CMD_UBI
  15. #define CONFIG_CMD_UBIFS
  16. #define MTDIDS_DEFAULT        "nand0=nandflash0"
  17. #define MTDPARTS_DEFAULT    "mtdparts=nandflash0:128k@0(ubi0),"\
  18.                     "128k(ubl),"\
  19.                     "2816k(uboots),"\
  20.                     "2m(kernel),"\
  21.                     "32m(root),"\
  22.                     "32m(ubifs)"

这里u-boot分区尽量与内核划分的分区一致。


4、  使用工具测试ubi

把生成的armmtd工具复制到nfs文件夹

通过ubiattchmtd5作为ubi0 



注意这些信息,接下来创建ubifs镜像时要一一对应

通过ubimkvol创建ubiubi0_0,名称为rootfs

./ubimkvol /dev/ubi0 -N rootfs -s 48MiB

通过卷名mount

mount –t ubifs ubi0:rootfs /tmp

 

或者通过卷序号mount

mount –t ubifs ubi0_0 /tmp

 

mount 成功后系统的信息:



6、生成ubifs镜像

mk.ubifs -r /root/targetfs -m 2048 -e 126976 -c 230 -o /tftpboot/ubifs.img

 

-r 参数指定输入的源文件夹名称

-m 参数指定页大小(min-io-size)

这个可以通过./ ubiattch输出信息看出

-e  参数指定逻辑擦除块大小(leb-size)

     ./ ubiattch输出信息          UBI:logical eraseblock size:   126976bytes

-c  参数指定逻辑擦除块数量(max-leb-cnt)

   UBI:total number of reserved 257.一共有257块,选取230个,这个参数比较随意,不要太小,也不要超过总块数

 

u-boot启动



擦除建立ubifs分区并下载镜像

nand erase.part ubifs

ubi part ubifs 2048           

ubi create rootfs

tftp 0xc1180000 ubifs.img

ubi write 0xc1180000 rootfs 0x1000000

setenv bootargs console=ttyS0,115200n8 ubi.mtd=5 root=ubi0:rootfs rootfstype=ubifs init=/linuxrc rw

 

启动系统成功界面



备注:

ubi分区一定不能有坏块,因为ubi write命令不坏检测坏块并跳过,有坏块的话经常会导致ubi无法启动。内核的ubifs48Mu-boot的为32M,这样是能成功的,尝试过内核对应u-boot32M,出错ubi分区过小,呃。。。。。再看




参考资料:

http://blog.csdn.net/yx_l128125/article/details/7478042

mcuzoneMAN3010A_CH

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    DSP/BIOS的HWI线程应用
    OMAPL138的uPP通信(1)---DSP…
    OMAPL138的uPP通信(2)---F…
    基于OMAPL138的linux内核移植
    OMAPL138 ubifs文件系统移植…
    GDBSERVER 用于OMAPL138调试…
    OMAPL138的DVSDK安装与使用(…
    OMAPL138的DVSDK安装与使用(…
    OMAPL138的DVSDK安装与使用(…
    OMAP片上PRU指令集
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    站长:61 湘ICP备13001086号-2