移植内核学习笔记3-----支持yaffs文件系统
2016-09-17 15:11
555 查看
yaffs文件系统是专门为nand flash定义的一种文件系统格式,比jffs更适用于nand flash,yaffs文件系统源码并没有合并到内核里面去,
1、yaffs文件系统
(1)源码在http://www.yaffs.net/下载
进里面我们可以看到在GIT中我们可以获得yaffs
用git命令来获得,格式如下
(2)如果系统没有装git工具,需要先安装git
安装后下载yaffs源码,
下载后得到一个yaffs2目录,里面包含有官方提供的所有源码
怎么使用看readme文件
查看里面的例子
(2)打补丁
进入yaffs目录,打补丁
(3)配置内核
上面的命令把下载到的yaffs源码拷贝到内核里面
然后进行配置,搜索yaffs,选上yaffs2 file system support
(4)编译时出现错误
结构体没有某个成员
没有d_alloc_root函数,在新的yaffs里面用到这个函数,但是我们内核根本没有实现这个函数
,应该用成什么函数,
[b]看看root在其他文件中怎么用,s_root是dentry结构体
[/b]
[b]
[/b]
搜索s_root,看看在别的文件系统里面怎么用,用的是d_make_root函数,而不是我们的[b]d_alloc_root函数,因而把[/b]
因而修改函数
[b](5)编译和拷贝[/b]
(6)制作yaffs文件映像
2、实验
(1)下载yaffs文件系统
(2)擦除、烧写
(3)设置参数、下载内核
(4)用bootm 32000000启动内核
出现问题,挂载了上去。
用替代法查找问题
、
下载u-boot
擦除、烧写
用reset命令重启、然后重新下载yaffs
1.1.6版的u-boot擦除命令没有之前的.part后缀,烧写命令引用长度要加上括号
设置环境变量,下载新内核,然后启动
(5)用旧的u-boot启动没有问题,所以新的u-boot存在问题
查看cmd_nand.c
如果我们加了.yaffs的话,就调用函数nand_write_skip_bad.会传入一个参数flag(WITH_YAFFS_OOB)
函数nand_write_skip_bad里面
check_skip_len函数判断里面有没有坏块,有坏块就忽略并跳过。
如果flash没有坏块,且标志项不为WITH_DROP_FFS的话,也没有yaffs标志,走下面分支。
所以要添加flag&WITH[b]_YAFFS_OOB这一项(在Nand_util.c)[/b]
但是我们走的分支是下面,如果上面还需加上一项
(6)重新下载烧写u-boot
(7)下载yaffs映像文件,擦除分区
(8)下载内核、烧写启动内核成功
1、yaffs文件系统
(1)源码在http://www.yaffs.net/下载
进里面我们可以看到在GIT中我们可以获得yaffs
用git命令来获得,格式如下
(2)如果系统没有装git工具,需要先安装git
安装后下载yaffs源码,
下载后得到一个yaffs2目录,里面包含有官方提供的所有源码
怎么使用看readme文件
查看里面的例子
(2)打补丁
进入yaffs目录,打补丁
(3)配置内核
上面的命令把下载到的yaffs源码拷贝到内核里面
然后进行配置,搜索yaffs,选上yaffs2 file system support
(4)编译时出现错误
结构体没有某个成员
没有d_alloc_root函数,在新的yaffs里面用到这个函数,但是我们内核根本没有实现这个函数
,应该用成什么函数,
[b]看看root在其他文件中怎么用,s_root是dentry结构体
[/b]
[b]
[/b]
搜索s_root,看看在别的文件系统里面怎么用,用的是d_make_root函数,而不是我们的[b]d_alloc_root函数,因而把[/b]
因而修改函数
[b](5)编译和拷贝[/b]
(6)制作yaffs文件映像
2、实验
(1)下载yaffs文件系统
(2)擦除、烧写
(3)设置参数、下载内核
(4)用bootm 32000000启动内核
出现问题,挂载了上去。
用替代法查找问题
、
下载u-boot
擦除、烧写
用reset命令重启、然后重新下载yaffs
1.1.6版的u-boot擦除命令没有之前的.part后缀,烧写命令引用长度要加上括号
设置环境变量,下载新内核,然后启动
(5)用旧的u-boot启动没有问题,所以新的u-boot存在问题
查看cmd_nand.c
如果我们加了.yaffs的话,就调用函数nand_write_skip_bad.会传入一个参数flag(WITH_YAFFS_OOB)
函数nand_write_skip_bad里面
check_skip_len函数判断里面有没有坏块,有坏块就忽略并跳过。
如果flash没有坏块,且标志项不为WITH_DROP_FFS的话,也没有yaffs标志,走下面分支。
所以要添加flag&WITH[b]_YAFFS_OOB这一项(在Nand_util.c)[/b]
但是我们走的分支是下面,如果上面还需加上一项
(6)重新下载烧写u-boot
(7)下载yaffs映像文件,擦除分区
(8)下载内核、烧写启动内核成功
相关文章推荐
- 移植内核之支持Yaffs文件系统
- 嵌入式学习笔记(3)---YAFFS文件系统的制作移植
- 移植内核学习笔记2-----修改分区及制作根文件系统
- 移动开发:S5PV210学习笔记——内核移植与文件系统构建
- 0K6410学习之移植linux内核支持yaffs2文件系统
- 【移植Linux 3.4.2内核之四】修改内核代码支持YAFFS文件系统
- yaffs文件系统在2.6内核上的移植--操作步骤(转载)
- 移植u-boot-2015.07-rc3之修改代码支持yaffs文件系统烧写(十)
- yaffs文件系统在2.6内核上的移植
- YAFFS文件系统移植笔记
- 在内核中增加对yaffs文件系统的支持
- FL2440移植LINUX-3.4.2(四)-- 添加支持YAFFS文件系统
- 在内核中增加对yaffs文件系统的支持
- 移植U-Boot S3C2440超值版支持NAND启动,支持YAFFS文件系统
- linux-2.6.35内核移植—yaffs2文件系统的支持
- Linux-2.6.28内核移植及Yaffs文件系统制作 for FL2440(二)
- U-boot移植 (v2012.04.1 S3C2440平台) (五) DM9000驱动支持,yaffs文件系统下载支持
- Linux-2.6.28内核移植及Yaffs文件系统制作 for FL2440(一)
- 2016.3.27-学习笔记:裸板程序、U-Boot、内核、文件系统的烧写
- 嵌入式软件开发培训笔记——嵌入式linux内核与文件系统移植与分析