ubifs文件系统的移植
来源:互联网 发布:python中字符串的 编辑:程序博客网 时间:2024/05/22 03:45
转载地址:http://blog.chinaunix.net/uid-26498888-id-3405220.html
1、 在内核中添加对ubifs文件系统的支持
在MTD选项中进入UBI配置选项
在file system中配置ubifs,如下
配置完成后重新编译内核生成uImage,上电加载启动内核,可以看到/proc/filesystem已经有了ubifs的选项
2、 修改arch/arm/mach-davinci/board-da850-evm.c文件中nandflash分区
点击(此处)折叠或打开
- struct mtd_partition da850_evm_nandflash_partition[]={
- {
- .name ="u-boot env",
- .offset = 0,
- .size = SZ_128K,
- .mask_flags = MTD_WRITEABLE,
- },
- {
- .name ="UBL",
- .offset = MTDPART_OFS_APPEND,
- .size = SZ_128K,
- .mask_flags = MTD_WRITEABLE,
- },
- {
- .name ="u-boot",
- .offset = MTDPART_OFS_APPEND,
- .size = 4* SZ_128K,
- .mask_flags = MTD_WRITEABLE,
- },
- {
- .name ="kernel",
- .offset = 0x300000,//txl
- .size = SZ_2M,
- .mask_flags = 0,
- },
- {
- .name ="filesystem",
- .offset = 0x500000,
- .size = SZ_32M,
- .mask_flags = 0,
- },
- {
- .name ="ubifs",
- .offset = MTDPART_OFS_APPEND,
- .size = 1.5* SZ_32M,
- .mask_flags = 0,
- },
- {
- .name ="user",
- .offset = MTDPART_OFS_APPEND,
- .size = MTDPART_SIZ_FULL,
- .mask_flags = 0,
- },
3、 在u-boot中添加ubifs支持,编辑include/configs/da850evm.h文件
在
点击(此处)折叠或打开
- #define CONFIG_CMD_MTDPARTS
- #define CONFIG_MTD_DEVICE
- #define CONFIG_MTD_PARTITIONS
- #define CONFIG_LZO
- #define CONFIG_RBTREE
- #define CONFIG_CMD_UBI
- #define CONFIG_CMD_UBIFS
- 添加为
- #define CONFIG_CMD_MTDPARTS
- #define CONFIG_MTD_DEVICE
- #define CONFIG_MTD_PARTITIONS
- #define CONFIG_LZO
- #define CONFIG_RBTREE
- #define CONFIG_CMD_UBI
- #define CONFIG_CMD_UBIFS
- #define MTDIDS_DEFAULT "nand0=nandflash0"
- #define MTDPARTS_DEFAULT "mtdparts=nandflash0:128k@0(ubi0),"\
- "128k(ubl),"\
- "2816k(uboots),"\
- "2m(kernel),"\
- "32m(root),"\
- "32m(ubifs)"
这里u-boot分区尽量与内核划分的分区一致。
4、 使用工具测试ubi
把生成的arm版mtd工具复制到nfs文件夹
通过ubiattch把mtd5作为ubi0
注意这些信息,接下来创建ubifs镜像时要一一对应
通过ubimkvol创建ubi卷ubi0_0,名称为rootfs
./ubimkvol/dev/ubi0 -N rootfs -s 48MiB
通过卷名mount:
mount –t ubifsubi0:rootfs /tmp
或者通过卷序号mount:
mount –t ubifsubi0_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.partubifs
ubi part ubifs2048
ubi create rootfs
tftp 0xc1180000ubifs.img
ubi write0xc1180000 rootfs 0x1000000
setenv bootargsconsole=ttyS0,115200n8 ubi.mtd=5 root=ubi0:rootfs rootfstype=ubifsinit=/linuxrc rw
启动系统成功界面
备注:
ubi分区一定不能有坏块,因为ubi write命令不坏检测坏块并跳过,有坏块的话经常会导致ubi无法启动。内核的ubifs为48M,u-boot的为32M,这样是能成功的,尝试过内核对应u-boot的32M,出错ubi分区过小,呃。。。。。再看
参考资料:
http://blog.csdn.net/yx_l128125/article/details/7478042
mcuzone的MAN3010A_CH
- UBIFS文件系统的移植
- UBIFS文件系统的移植
- UBIFS文件系统的移植
- ubifs文件系统的移植
- ubifs文件系统的移植
- pxa270(Xscale核)的ubifs文件系统移植
- 移植ubifs文件系统遇到的问题
- ubifs文件系统的制作以及移植
- ubifs文件系统制作与移植
- ubifs文件系统制作与移植
- ubifs文件系统制作与移植
- 嵌入式文件系统之UBIFS移植
- ubifs文件系统制作与移植
- ubifs文件系统制作与移植
- ubuntu10.04上ubifs文件系统的制作与移植过程
- UBIFS 文件系统的使用
- UBIFS 文件系统的使用
- ubifs文件系统的问题
- 1102. Invert a Binary Tree (25)
- Java中Servlet的使用(二)
- S5PV210开发 -- Nand和e-MMC区别以及系统更新
- 如何安装单节点的hadoop
- java8新特性
- ubifs文件系统的移植
- 关于Android安卓APP保活
- PHP的常见ORM特性初探
- Java中对象的序列化与反序列化
- PyCharm新建.py文件时默认添加作者时间等信息
- emacs Haskell配置
- Android 下载别人的demon 无法运行的问题解决
- sql语句随机数字
- 日常做题(每天一道)十一月的