Jffs2文件系统移植时不能写
我的板子*M的flash空间,我划了5个MTD分区
0x000000-------0x40000) bootloader
0x40000-------------x700000 linux kernel + rootfs(squashfs)
0x700000-------9x7f0000) jffs2
0x7f0000-------9x800000) nvram
开始jffs2分区并没有使用, 所以我想在里面建立第二个可写的文件系统,一切准备就绪之后,mount到了根文件系统之上,ls cat这些涉及读操作的命令都很正常, 可是只要是涉及写操作的命令就报告错误Input/output error, 最后我跟踪内核代码看了,发现是在MTD的驱动里面的mtd->write()函数出现了问题。 比方chmod这条命令,最后在内核代码中追踪到mtd_writev(xxxxx)这个函数时,本来是往flash中写入68个byte,最后返回的结果是写进去了68*2=136 byte, 怎么会出现这种现象? 我的flash芯片是intel CFI 接口的nor flash, 支持的cmdset不清楚, 我对底层的flash芯片运作的机制不是很懂,所以搞了一个多星期这个问题还没有解决,请各位大侠帮忙指点一下怎么解决啊!、、、
注意我的jffs2分区是以rw的方式挂载的,我换了几个mkfs.jffs2工具制作文件系统image 都是这样的问题。 我的内核版本是2.4.20 我怀疑是MTD最底层的mtd_info->write( )这个函数出了问题, 可是怎么也不知道它到底哪里出了问题