还是想来吐槽先: 之前我一直的2.6.36.2 的内核已经可以成功启动OK6410 挂载 NFS 文件系统进入Linux 终端了,这几天因为测试USB 摄像头需要,
所以要进入 yaffs2,这样才不会占用 DM9000 的网卡,才能测试 网络摄像头。本来以为需要进入 yaffs2 文件系统可能会挺简单的,谁知道一大堆问
题,好了,开始进入正题:
我的操作环境是: 主机:xp, VMware Ubuntu 10.10 。 开发板: OK6410 , 2G nand flash ,4 个分区。 移植内核:Linux 2.6.36.2
先说说我的内核启动 yaffs2 的前提: 内核可以启动 NFS 根文件系统, 内核 已经打上了yaffs2 文件系统的补丁。可以参考:
http://blog.csdn.net/acanoe/article/details/7484123 这篇文章给内核打上 yaffs2 文件系统的补丁。
最后的打印信息为:
end_request: I/O error, dev mtdblock2, sector 24
Buffer I/O error on device mtdblock2, logical block 3
uncorrectable error :
uncorrectable error :
end_request: I/O error, dev mtdblock2, sector 24
Buffer I/O error on device mtdblock2, logical block 3
List of all partitions:
1f00 1024 mtdblock0 (driver?)
1f01 5120 mtdblock1 (driver?)
1f02 122880 mtdblock2 (driver?)
1f03 1968128 mtdblock3 (driver?)
No filesystem could mount root, tried: cramfs
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)
[<c0039b20>] (unwind_backtrace+0x0/0xf8) from [<c0037b9c>] (dump_stack+0x18/0x1c)
[<c0037b9c>] (dump_stack+0x18/0x1c) from [<c004e100>] (panic+0x64/0x1c4)
[<c004e100>] (panic+0x64/0x1c4) from [<c00090fc>] (mount_block_root+0x1b0/0x258)
[<c00090fc>] (mount_block_root+0x1b0/0x258) from [<c0009270>] (mount_root+0xcc/0xf4)
[<c0009270>] (mount_root+0xcc/0xf4) from [<c00093e4>] (prepare_namespace+0x14c/0x1ac)
[<c00093e4>] (prepare_namespace+0x14c/0x1ac) from [<c00089c0>] (kernel_init+0x118/0x164)
[<c00089c0>] (kernel_init+0x118/0x164) from [<c0034a20>] (kernel_thread_exit+0x0/0x8)
我在网上google了很多,这是最常见的一种错误打印信息。照上面的打印信息,自己推测出现的问题是:
1、NAND Flash 有坏块。
解决办法: 在Uboot 下使用命令 : nand scrub 回车,选择 y ,y 没有显示,直接回车。就可以忽略坏块。
关闭内核 ECC 校验。
在文件 drivers/mtd/nand/s3c_nand.c 文件中,将
nand->ecc.mode = NAND_ECC_SOFT; 改为:
nand->ecc.mode = NAND_ECC_NONE;
配置中去掉的这个选项在代码中并没有完全去掉,只是去掉了硬件校验的方式,换成了软件校验。
只有在代码中给改成NAND_ECC_NONE,才不会校验。
2、 NAND Flash 分区加载不正确。
因为博主刚开始的内核可以加载 NFS 根文件系统,所以基本就排除了这种可能。
分享到:
相关推荐
YAFFS2文件系统的加载过程,具普遍性
yaffs yaffs2 文件系统正确补丁包 移植LINUX常用 CSDN有的下载的编译不正确,特发布正确的。
YAFFS意义为‘yet another flash file system... YAFFS是目前为止唯一一个专门为NAND flash设计的文件系统,目前有YAFFS 和YAFFS2 两个版本,两个版本的主要区别之一在于YAFFS2 能够更好的支持大容量的NAND FLASH芯片。
yaffs2 linux bsp YAFFS意义为‘yet another... YAFFS是目前为止唯一一个专门为NAND flash设计的文件系统,目前有YAFFS 和YAFFS2 两个版本,两个版本的主要区别之一在于YAFFS2 能够更好的支持大容量的NAND FLASH芯片。
Yaffs2文件系统是转为Nand Flash设计的文件系统,是基于日志式的文件系统
s3c2440下 yaffs2文件系统制作详解,本人实践成功
linux下yaffs2文件系统剖析,详细阐述yaffs2文件系统在nandflash中的实现
截止到2013年4月26日为止最新的yaffs2文件系统源代码
yaffs2文件系统源码在网络上非常难找,找到了也很难下载下来!!!!
这是在linux2.6.30以上版本的yaffs2文件系统代码
Yaffs2文件系统的源代码,很齐全,很实用,有需要的,可以下载。
文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区中的目录结构;一 个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载 (mount)文件系统;为了...
yaffs2 文件系统
yaffs和yaffs2文件系统工具
XILINX zynq系统的petalinux工程挂载jffs2文件系统的petalinux配置工作流程,已成功应用下载到目标板卡,板卡重新启动所建立的文件夹和文件不会丢失。
压缩包 制作yaffs2文件系统及其映像工具
YAFFS 嵌入式文件系统 YAFFS 嵌入式文件系统
YAFFS(Yet Another Flash File System)是由Aleph One公司所发展出来的NAND flash 嵌入式文件系统。 在YAFFS中,最小存储单位为一个Page,文件内的数据是存储在固定512 bytes的Page中,每一个Page亦会有一个对应的...