2.6.14内核上YAFFS的问题
时间:2008-08-06
来源:互联网
Creating 4 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00100000 : "bootloader"
0x00100000-0x00400000 : "kernel"
0x00400000-0x02c00000 : "root"
0x02c00000-0x04000000 : "user"
所以,我是这样烧写的
2410>nand erase 0x2c00000
2410>tftp 0x30000000 my_rootfs.yaffs
2410>nand write.yaffs 0x30000000 0x2c00000 $(filesize)
2410>set bootargs 'console=ttySAC0 root=/dev/mtdblock3 rootfstype=yaffs'
2410>boot
出现的问题是
VFS: Cannot open root device "mtdblock3" or unknown-block(31,3)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)
我的文件系统没有问题,这个yaffs文件系统其他内核里面跑过(2.6.22)。而后是我的bootargs和烧写,我现在想想还是没有问题。
如果不是文件系统和bootargs和烧写的问题,那估计就是内核了,但是内核配置,我是打了那个yaffs的补丁,而且把内核配置中关于yaffs2的所以选项几乎都选了,只剩下Use older-style on-NAND data format with pageStatus byte没有选.
不知道各位大虾可以指点一下不?谢谢.
作者: 北极狐BILL 发布时间: 2008-08-06
这个panic和你的bootargs有关,弄对就好了
作者: freducn2002 发布时间: 2008-08-06
作者: sep 发布时间: 2008-08-06
root=/dev/mtdblock/2 init=/linuxrc console=ttySAC0 ??
作者: jn200002 发布时间: 2008-08-06
烧写到
Creating 4 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00100000 : "bootloader"
0x00100000-0x00400000 : "kernel"
0x00400000-0x02c00000 : "root"
0x02c00000-0x04000000 : "user"
烧写
2410>nand erase 0x400000
2410>tftp 0x30000000 my_rootfs.yaffs
2410>nand write.yaffs 0x30000000 0x400000 $(filesize)
然后
2410>set bootargs 'console=ttySAC0 root=/dev/mtdblock2 rootfstype=jffs2'
2410>boot
这样倒是可以,但是YAFFS就是不行....
[ 本帖最后由 北极狐BILL 于 2008-8-6 10:05 编辑 ]
作者: 北极狐BILL 发布时间: 2008-08-06
作者: jn200002 发布时间: 2008-08-06
set bootargs 'console=ttySAC0 root=/dev/mtdblock2 rootfstype=yaffs'
倒...第0块第1块第2块=root ?
对不起,我1楼那个第一分区红色部分给你误导了...
我的分区:2.6.14
Creating 4 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00100000 : "bootloader"
0x00100000-0x00400000 : "kernel"
0x00400000-0x02c00000 : "root"
0x02c00000-0x04000000 : "user"
所以,我是这样烧写的
2410>nand erase 0x2c00000
2410>tftp 0x30000000 my_rootfs.yaffs
2410>nand write.yaffs 0x30000000 0x2c00000 $(filesize)
然后
2410>set bootargs 'console=ttySAC0 root=/dev/mtdblock3 rootfstype=yaffs'
2410>boot
出现的问题是
VFS: Cannot open root device "mtdblock3" or unknown-block(31,3)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)
[ 本帖最后由 北极狐BILL 于 2008-8-6 10:10 编辑 ]
作者: 北极狐BILL 发布时间: 2008-08-06
但是我用JFFS2文件系统
烧写到
Creating 4 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00100000 : "bootloader"
0x00100000-0x00400000 : "kernel"
0x00400000-0x02c00000 : "root"
0x02c ...
我没有用过yaffs文件系统,不知道它有没有特殊的要求
话说回来,jffs2文件系统不是比yaffs更优秀吗
作者: sep 发布时间: 2008-08-06
作者: jn200002 发布时间: 2008-08-06
param : 0x00020000 0x00010000 0 64k
kernel : 0x00030000 0x001d0000 0 1M+832k
root : 0x00200000 0x02300000 4 35M
yaffs : 0x02500000 0x01b00000 0 27M
param set linux_cmd_line "noinitrd root=/dev/mtdblock/2 init=/linuxrc console=ttySAC0,115200"
这是我的vivi的, 启动是从根开始的,根就是2啊
作者: jn200002 发布时间: 2008-08-06
我没有用过yaffs文件系统,不知道它有没有特殊的要求
话说回来,jffs2文件系统不是比yaffs更优秀吗
但是,现在遇到问题,想解决

过去总是逃避问题,现在想执着点,嘿嘿
谢谢你的帮忙,我再想想办法。

作者: 北极狐BILL 发布时间: 2008-08-06
我到是用yaffs 只是配合做可读写的分区,并不是根
同样是用yaffs做root,我用另外一个内核(2.6.22,这个不是我编的)挂YAFFS成功,但是我现在用2.6.14的内核挂,却出现了问题,想解决。
不知道大家还有什么办法,我知道这里高手多

[ 本帖最后由 北极狐BILL 于 2008-8-6 11:08 编辑 ]
作者: 北极狐BILL 发布时间: 2008-08-06
但是,现在遇到问题,想解决

过去总是逃避问题,现在想执着点,嘿嘿
谢谢你的帮忙,我再想想办法。

噢,对了,你在给nandflash分区的时候,不是有一个part flag参数吗。你试下从这个方向入手
作者: sep 发布时间: 2008-08-06
同样是用yaffs做root,我用另外一个内核(2.6.22,这个不是我编的)挂YAFFS成功,但是我现在用2.6.14的内核挂,却出现了问题,想解决。
不知道大家还有什么办法,我知道这里高手多

那很明显了,你现在的内核不支持yaffs文件系统
要支持yaffs文件系统的话,要下几个文件,重新编译内核吧
作者: sep 发布时间: 2008-08-06
噢,对了,你在给nandflash分区的时候,不是有一个part flag参数吗。你试下从这个方向入手
分区时候的参数?
我用的是uboot,我的做法,一般只是nand擦除,然后烧写(我的uboot放在nor上)。然后添加内核的static struct mtd_partition smdk_default_nand_part[] = {};相关信息
S3C2410的板子
然后通过修改bootargs和bootcmd等来修改参数。
恕我无知,你说的part flag是什么

作者: 北极狐BILL 发布时间: 2008-08-06
作者: jojolin 发布时间: 2008-08-06
是不是现在还没有生成mtdblock的驱动节点呢,在dev下找不到~ 你上网找下udev 的资料 ,高版本的2.6内核用的是udev,没有自己创建驱动设备节点,你得自己创建,要么就用devfs
我还发现一个问题
在2.6.22内核下(此内核挂载yaffs文件系统没有问题),可以mount任何类型的文件系统
# mount -t yaffs /dev/mtdblock4 /mnt/yaffs
# mount -t jffs2 /dev/mtdblock3 /mnt/jffs2
但是我的2.6.14(这个挂yaffs老错),却不行
# mount -t jffs2 /dev/mtdblock3 /mnt/jffs2/
# mount -t yaffs /dev/mtdblock4 /mnt/yaffs/
mount: mounting /dev/mtdblock4 on /mnt/yaffs/ failed: No such device
也就是说没有找到/dev/mtdblock4 !!!!!但是我结合TAB键,却给出了/dev/mtdblock4 的提示
我的分区信息
0x00000000-0x00100000 : "vivi--nand"
0x00100000-0x00500000 : "kernel---2.6.14"
0x00500000-0x00900000 : "kernel---2.6.22"
0x00900000-0x01900000 : "jffs2"
0x01900000-0x02900000 : "yaffs"
0x02900000-0x04000000 : "yaffs2"
但我可以找到/dev/mtdblock3,因为可以从jffs2中启动,所以我把yaffs移动到了0x00900000-0x01900000 ,也就是我把jffs2的内容都擦除了,然后烧写上yaffs的内容,结果连/dev/mtdblock3都找不到了
作者: 北极狐BILL 发布时间: 2008-08-06
作者: sydnash 发布时间: 2010-08-13
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28