【问题标题】:Kernel and Rootfs booting through tftp通过 tftp 引导内核和 Rootfs
【发布时间】:2016-08-18 15:20:13
【问题描述】:

任务:加载内核和rootfs映像并在ram中执行而不存储到spi flash中

我加载了可闪存图像(zimage 在 0x200000)和可闪存 rootfs(jffs2 在 0x200000+offset)

tftp zimage 0x200000tftp jffs2 0x200000+offsetbootm 0x200000 0x200000+offset

它给了我这个错误:

Root-NFS: No NFS server available, giving up.
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Cannot open root device "ram0" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00        256 mtdblock0 (driver?)
1f01        256 mtdblock1 (driver?)
1f02       2048 mtdblock2 (driver?)
1f03      13824 mtdblock3 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

有时: 坏幻数

任何帮助将不胜感激

【问题讨论】:

  • 在这里写下你的 bootargs 和 bootcmd makros
  • "I loaded ... flashable rootfs (jffs2 ..." -- JFFS2 映像不能像 initrd 或 initramfs 一样在 RAM 中使用;它有要从 MTD 设备访问。您发布的错误消息,"Root-NFS: No NFS server available..." 不符合您声明的目标,即您必须为其他内容进行配置.
  • bootargs : root=/dev/ram0 rootfstype=jffs2 rw console=ttyMCS mem=64M@0x0
  • - 锯末,在内核构建期间启用了 NFS 支持,它会搜索然后恢复到 RAM0 设备,仍然是同样的问题:Bad Magic Number
  • "root=/dev/ram0 rootfstype=jffs2" -- 这些内核参数不兼容。 正如我已经写过的,JFFS2 必须是从 MTD 设备访问。根据this site 的说法,有一个MTD 驱动程序可以用作ramdisk。

标签: linux linux-kernel filesystems u-boot tftp


【解决方案1】:

@sawdust,你是对的。 jffs2 不能像 initrd 或 initramfs 一样在 RAM 中使用。

我成功地将两个图像加载到 ram 上并基于 EXT2 文件系统在 ram 本身上执行。

引导参数:setenv bootargs root=/dev/ram0 console=ttyMCS mem=64M@0x0 init=/bin/sh

【讨论】:

    【解决方案2】:

    根据您在评论使用中提供的引导参数

    root=/dev/ram0 rootfstype=jffs2 rw initrd=0x200000+offset,16M console=ttyMCS mem=64M@0x0
    

    这里XM是initrd的大小,如果是8MB就给8M

    您没有在引导命令中提供 initrd 的偏移量,因为内核找不到 ramdisk 映像并给出not syncing: VFS:。只需添加initrd=0x200000+offset,16M 即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-23
      • 2021-10-31
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多