哪位大侠帮帮忙啊,我用mtd层的nftl将nand的某一分区转化为vfat格式
我可以将nand分成六个分区(mtdblock0 ~ mtdblock5)用NFS挂到开发板上,但是将NFTL模块加载时就用ls 查看不到nftl设备
正常情况应该是:
# ls /dev/n*
/dev/network_latency /dev/nftla0
/dev/network_throughput /dev/null
但是我出现
/dev/network_latency
/dev/network_throughput /dev/null
很显然ntfl没挂载上去,怎么样可以将nftl和nand中的分区4(mtdblock3)衔接起来呢?怎么修改nftl中的代码可以用nftl访问nand中的分区呢?
if (retlen < 6 || memcmp(buf, "ANAND", 6)) {
/* ANAND\0 not found. Continue */
#if 0
printk(KERN_DEBUG "ANAND header not found at 0x%x in mtd%d\n",
block * nftl->EraseSize, nftl->mbd.mtd->index);
#endif
continue;
}
我可以将nand分成五个分区(mtdblock0 ~ mtdblock5)用NFS挂到开发板上,但是将NFTL模块加载时就用ls 查看不到nftl设备
正常情况应该是:
# ls /dev/n*
/dev/network_latency /dev/nftla0
/dev/network_throughput /dev/null
但是我出现
/dev/network_latency
/dev/network_throughput /dev/null
很显然ntfl没挂载上去,怎么样可以将nftl和nand中的分区4(mtdblock3)衔接起来呢?怎么修改nftl中的代码可以用nftl访问nand中的分区呢?
与mtd的nftl相关的两个.c文件是nftlcore.c和nftlmount.c,我已经研究到需要修改两个地方:
nftlcore.c中:
if (memcmp(mtd->name, "DiskOnChip", 10))
return;
DiskOnChip需要修改为,nand第四个分区mtdblock5的分区名
nftlmount.c中:
if (retlen < 6 || memcmp(buf, "ANAND", 6)) {
/* ANAND\0 not found. Continue */
#if 0
printk(KERN_DEBUG "ANAND header not found at 0x%x in mtd%d\n",
block * nftl->EraseSize, nftl->mbd.mtd->index);
#endif
continue;
}
需要使用nftl_format 将ANAND头加载入nand4分区中
但是最后我用开发板加载nftl时出现死机,我调试可以看到是在这个地方出现问题:
if (add_mtd_blktrans_dev(&nftl->mbd)) {
kfree(nftl->ReplUnitTable);
kfree(nftl->EUNtable);
kfree(nftl);
return;
}
add_mtd_blktrans_dev函数执行不了,恳求哪位大侠可以帮帮忙啊,小弟感激不尽!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论