mtd,bon很多不懂的地方

watersondf   2008-12-12 13:50 楼主
linux必须有根文件系统才能启动吧,
在pc机上,比如我的根文件系统是/dev/sda1
那么Linux会从硬盘第一个扇区读分区表,
然后找到sda1分区的起始地址,然后读出超级块等等,再挂载就好了
那么我在2410开发板上用vivi的bon part命令分了几个区(什么bon分区,mtd分区一直没搞懂有什么区别和联系)
再把rootfs下载到root分区,
这时候启动linux内核,传递参数中有一句"root=/dev/bon/3"(root在第三个分区)
那么内核是不是也要读取这么一个分区表,找到bon设备下分区3的起始地址,然后再读出超级块呢,
bon这个设备又是从哪来的,是不是就是flash设备的名字(好像硬盘都叫hda或sda一样)?我在网上看别人的root分区好像很多都是"/dev/mtd/*"
flash(bon,mtd,whatever)的分区表又是放在哪的(比如硬盘主分区表是放在0柱面0磁头1扇区的64个字节)?

诸多疑惑,能解决一定在加分

回复评论 (4)

没有人愿意回答么?
随便说说吧,
比如mtd究竟是什么东西,pc机上有没有可以类比的

vivi下的part命令还有bon part命令分别是对flash做些什么操作等等
点赞  2008-12-14 07:46
做CE的友情帮你顶一下,周末很多大神休息噢:)别着急
点赞  2008-12-14 09:07
说下我这两天查资料看代码的理解

mtd似乎只是内核为了管理nandflash而写的管理程序
分区表并不记录在flash上面而是记录在内核里面
因此说vivi分区必须和内核分区一致,否则的话假设vivi第四个分区是root,起始地址在0x40000
而内核记录的mtd分区表的第四个分区并不是0x40000为起始地址,
那么内核在第四个分区找根文件系统就会找不到,是这样的么
点赞  2008-12-14 23:39
差不多自己搞懂了,结啦,不要浪费分
点赞  2008-12-15 18:37
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复