免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8237 | 回复: 7
打印 上一主题 下一主题

請教jffs2文件系統移植問題!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-28 17:15 |只看该作者 |倒序浏览
在一個2410的開發板上移植Linux系統,內核和根文件系統已經移植成功,根文件系統采用的是cramfs,但是cramfs是只讀系統,而且無法保存應用程序,所以想挂載一個jffs2的文件系統。板上硬件有一塊16M的nor flash,已經在內核編譯時加入了MTD驅動,進入系統後通過cat /proc/mtd可以看到分區信息,但是挂載jffs2時第一次可以挂載上,然後卸載後重啟,再挂載就出現如下錯誤:
jffs2_scan_eraseblock():Magic bitmask 0x1985 not found at ..,.. instead(..為地址)
上面這句話打印出了很多行,然後是: Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes empty_block 36,bad_blocks 0,c->nr_blocks 72
mount: Mouting /dev/mtdblock4 on /mnt failed: Input/output error

大家有遇到這樣的情況麽?如何解決?
有成功使用jffs2文件系統的大俠,可以給個詳細步驟麽?
謝謝!

论坛徽章:
0
2 [报告]
发表于 2008-05-28 18:11 |只看该作者
一个MTD分区,如果是jffs2分区,那么这个分区的大小必须大于或等于5 * sector_size,否则该分区不可写,内核提示:no space left。sector_size指的是flash一个扇区的大小。用"cat /dev/mtd"可以查看一个sector的大小。

BTW:这个和作者的问题不是一回事哈,这里只是说一下我以前遇到的问题,呵呵!

论坛徽章:
0
3 [报告]
发表于 2008-05-28 18:12 |只看该作者

回复 #1 shanhuhai 的帖子

“。。。挂載上,然後卸載後重啟。。。”,可能卸载不干净。在重启前看看dmesg,有没有错误发生。

论坛徽章:
0
4 [报告]
发表于 2008-05-28 21:21 |只看该作者
感謝你的回復!
我的MTD分區如下:
bootloader: 0~80000
kernel: 80000~280000
rootfs: 280000~580000
jffs2: 580000~e80000
user: e80000~1000000
其中jffs2為mtd4,占用了9M,應該大于5 * sector_size了吧。
請問你的jffs2文件系統是怎樣使用的?
我是在主機上做了jffs2的映像文件:mkfs.jffs2 -d userfs -o userfs.jffs2
然後用tftpboot下載到flash的580000地址處,最後啟動系統後挂載:  mount -t jffs2 /dev/mtdblock4 /mnt
第一次挂載可以挂上,但是會出現:
JFFS2 notice: (712) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum(0 uncheched, 0 orphan) and 0 of xref(0 dead, 0 orphan) found.
JFFS2 notice: (714) jffs2_get_inode_nodes: Node header CRC failed at 0x000658.{1985, ff7f, ff7f002a, ff7f0983}
然後我在挂載點上新建一個文件後卸載,umount /mnt
等重新啟動板子再挂載時,會打印很多語句:jffs2_scan_eraseblock():Magic bitmask 0x1985 not found at 地址,另一個地址 instead.
而挂載後的再看剛才新建的文件不存在了。好像是沒有寫到Flash中,或者又被擦除了。
請問你是怎麽做的Jffs2?

原帖由 xdsupermanli 于 2008-5-28 18:11 发表
一个MTD分区,如果是jffs2分区,那么这个分区的大小必须大于或等于5 * sector_size,否则该分区不可写,内核提示:no space left。sector_size指的是flash一个扇区的大小。用"cat /dev/mtd"可以查看一个sector的 ...

论坛徽章:
0
5 [报告]
发表于 2008-05-31 09:44 |只看该作者

回复 #1 shanhuhai 的帖子

頂一下,大家沒有做jffs2的麽?那你們用什麽文件系統阿?

论坛徽章:
0
6 [报告]
发表于 2008-06-01 21:40 |只看该作者
挂在jffs之前,擦除一下应该就OK了,我以前遇到国这样的问题,系统起来后,用flash_eraseall 命令擦出一下,然后在挂载就行了。
还有,flash不能有写保护,就是在bootloader里把写保护去掉。

论坛徽章:
0
7 [报告]
发表于 2008-06-03 09:22 |只看该作者
那每次都用flash_eraseall擦除再挂載, 那上次寫的東西不是就沒了麽?
原帖由 kingreat 于 2008-6-1 21:40 发表
挂在jffs之前,擦除一下应该就OK了,我以前遇到国这样的问题,系统起来后,用flash_eraseall 命令擦出一下,然后在挂载就行了。
还有,flash不能有写保护,就是在bootloader里把写保护去掉。

论坛徽章:
0
8 [报告]
发表于 2008-06-05 10:58 |只看该作者
up up 高手幫忙解決!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP