exec -c "root=/dev/mtdblock2" ????
嵌入式内核启动时,是用exec命令,有时候可以在后面添加一些参数.如:
exec -c "root=/dev/mtdblock2"
请问,加这些参数的目的是什么?
另外,mtdblock2这个文件是如何确定的?因为在mtd分区的时候有至少一个mtdblock,你怎么知道是哪一个?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
flash的分区。由驱动定好了分区,然后把rootdisk烧到相应的分区
一般的 0 是bootloader, 1是kernel 2是rootdisk
这是我的redboot中的flash空间分布:
Name FLASH addr Mem addr Length Entry point
RedBoot 0xBFC00000 0xBFC00000 0x00030000 0x00000000
rootfs 0xBFC30000 0xBFC30000 0x00141000 0x00000000
linux 0xBFD80000 0x80002000 0x0006C986 0x8013A040
RedBoot config 0xBFFC0000 0xBFFC0000 0x00001000 0x00000000
FIS directory 0xBFFD0000 0xBFFD0000 0x00010000 0x00000000
而我的mtd分区是这样分的:
<5>Creating 5 MTD partitions on "Physically mapped flash":
<5>0x00000000-0x00030000 : "RedBoot"
<5>0x00030000-0x00230000 : "rootfs"
<5>0x00230000-0x002a0000 : "linux"
<5>0x002a0000-0x002b0000 : "RedBoot config"
<5>0x002b0000-0x002c0000 : "FIS directory"
是不是就意味着我的命令应该是root=/dev/mtdblock1?
谢谢!
自己支持一下自己!
在"root=/dev/mtdblock2"的命令中.就现在我的系统而言,命令应该是"root=/dev/mtdblock2"这个命令中的mtd分区应该指的是文件系统的分区.
mtd0(mtdblock0)指的是整个flash, mtd1(mtdblock1)指的是redboot.mtd2(mtdblock2)指的是我的文件系统.等等.
所以在我的命令里就应该是"root=/dev/mtdblock2"
以上是根据楼上的mtd分区确定的.
但如果我的mtd分区是这样的话flash的空间分布还是不变的)
<5>Creating 5 MTD partitions on "hysically mapped flash":
<5>0x00000000-0x00030000 : "RedBoot"
<5>0x00230000-0x002a0000 : "linux"
<5>0x00030000-0x00230000 : "rootfs"
<5>0x002a0000-0x002b0000 : "RedBoot config"
<5>0x002b0000-0x002c0000 : "FIS directory"
那么命令就应该是"root=/dev/mtdblock3"