u-boot访问jffs2文件系统
来源:互联网 发布:jenkins 源码管理 编辑:程序博客网 时间:2024/05/17 19:56
[Author: Bo Shen <voice.shen@gmail.com>]
当我们需要让u-boot从JFFS2文件系统中读取Linux内核image来启动系统,我们应该如做呢?答案其实很简单:让u-boot支持JFFS2文件系统,并且添加能访问JFFS2文件系统的命令。如下即按此步骤来实现。
u-boot版本:commit id: c2e5e802ecb7ab668ce9911b210ed68c804b349f
1. 添加JFFS2文件系统的支持。
查看<fs/Makefie>发现:obj-$(CONFIG_CMD_JFFS2) += jffs2/ 所以要支持JFFS2文件系统,需要在board相关文件里面定义:CONFIG_CMD_JFFS2
既然文件系统支持了,那么这个文件系统的载体是什么呢?它可以是NAND FLASH, NOR FLASH, ONENAND。
2. 定义文件系统的载体以及分区大小。
我们这里使用NAND FLASH做为JFFS2文件系统的载体。所以需要定义:CONFIG_JFFS2_DEV和CONFIG_JFFS2_NAND
----------------------
#define COFIG_JFFS2_DEV "nand0"
#define CONFIG_JFFS2_NAND
----------------------
既然载体有了,那么JFFS2文件系统放在NAND FLASH的什么位置呢?所以需要定义:CONFIG_JFFS2_PART_SIZE和CONFIG_JFFS2_PART_OFFSET。
举例如下:从8MiB位置开始后的所有空间用作JFFS2文件系统。
----------------------
#define CONFIG_JFFS2_PART_OFFSET 0x800000
#define CONFIG_JFFS2_PART_SIZE 0xf800000
----------------------
注:如果不定义这两个变量。那么u-boot会把整个NAND FLASH作为JFFS2文件系统。如果定义了CONFIG_JFFS2_PART_OFFSET,则是从offset开始剩余的所以空间作为JFFS2文件系统。如果定义了CONFIG_JFFS2_PART_SIZE,则从0开始,到size-1的空间用为JFFS2文件系统。
既然一切准备就绪。那么接下来就是使能JFFS2文件系统相关的命令。
3. 使用JFFS2文件系统命令
查看<common/Makefile>发现:obj-$(CONFIG_CMD_JFFS2) += cmd_jffs2.o 所以要支持JFFS2文件系统,需要定义:CONFIG_CMD_JFFS2。此定义已经在第一步完成了。查看cmd_jffs2.c文件,其提供三个命令:
ls:如果不加参数,则列出JFFS2根文件夹下面的内容。如果参数为某一路径名(ls /boot),列出此路径下面的内容。
flinfo:显示JFFS2文件系统的信息。
fsload:从JFFS2文件系统里面load文件到内存中。
至此需要的配置选项已经全部加入。加入后如下patch所示:
----------------------------------------
#define CONFIG_CMD_JFFS2
#define CONFIG_JFFS2_DEV "nand0"
#define CONFIG_JFFS2_NAND
#define CONFIG_JFFS2_PART_OFFSET 0x800000
#define CONFIG_JFFS2_PART_SIZE 0xf800000
---------------------------------------
重新编译u-boot,就可以使用jffs2相关命令访问JFFS2文件系统了。
具体实例于Atmel at91sam9m10g45ek board参考:https://github.com/voiceshen/u-boot-at91/tree/at91sam9m10g45ek/enable_jffs2_command
- u-boot访问jffs2文件系统
- U-BOOT JFFS2文件系统的配置
- u-boot 使用 jffs2 文件系统加载内核
- u-boot 使用 jffs2 文件系统加载内核 备忘
- u-boot 使用 jffs2 文件系统加载内核 备忘
- u-boot-2012.04.01移植到TQ2440(七):添加分区信息并启动jffs2文件系统
- jffs2 文件系统
- U-boot和根文件系统
- u-boot增加对jffs2分区的识别与加载
- u-boot + mini2440 + jffs2 系统移值成功!
- U-Boot1.3.1中JFFS2文件系统支持和U盘支持的使用备忘
- U-Boot1.3.1中JFFS2文件系统支持和U盘支持的使用备忘
- 用u-boot来引导Cramfs文件系统
- u-boot烧写yaffs2文件系统
- u-boot 内核、文件系统下载方式
- Hi3520D 制作U-boot uImage 根文件系统
- jffs2 文件系统介绍
- 从jffs2读出文件系统
- UIScrollView resuing three view
- 如何基于微信开放接口开发企业的微信 CRM?
- emacs helm 使用总结
- 使用NFS时在防火墙上要开放的端口
- QGtkStyle was unable to detect the current GTK+ theme
- u-boot访问jffs2文件系统
- iOS7适配问题
- linux下PXE和KickStart实现Linux下的无人值守安装
- 关于python项目测试开发知识的文章辑录
- OpenSSL命令---speed
- 经营的总类
- 强森的房间
- 算法经典面试题
- Spring加载XML机制(转)