【问题标题】:Where is the root device?根设备在哪里?
【发布时间】:2015-01-23 17:42:46
【问题描述】:

我正在为我的 Raspberry Pi 从头开始​​编写一个小微内核(代码如下:https://github.com/yrakcaz/RasPiK/

似乎一切正常,但我有一个小问题:我想要一个文件系统,但我不知道如何获取根设备地址。我知道,在 x86 架构上,我们可以使用传递给 main 函数的参数中的标签来获取 ROM 地址,但是我已经解析了 atags 并且没有什么有趣的......

我怎样才能得到这个地址?

【问题讨论】:

    标签: arm kernel raspberry-pi bare-metal


    【解决方案1】:

    只要选择它。当您是裸机时,没有什么是强制性的。您可以从引导加载程序中获取它(然后您必须在引导加载程序中选择它),或者您选择将 ramfs 作为文件系统的根目录,或者您选择使用引导的 SD 卡作为根文件系统。这取决于你。

    【讨论】:

    • 感谢您的回答,但是,我真正想知道的是 sdcard 的根分区在哪里,因为在我的项目结束时,我想放入二进制文件就可以了,然后在rpi上执行它。你知道我该怎么做吗?
    • 每个根设备都是不同的。现在你说的是“SD”卡;您假设人们对 RPI 了如指掌。至少对于 eMMC(我猜 SD 类似),有一个特殊的引导区。在 Linux 下,您可以使用dd if=kernel.bin of=/dev/mmcblk0 bs=1k seek=1 来放置启动映像。有一个分区表。然后在卡中的某个偏移处,有一个为数百个可能的文件系统中的任何一个格式化的文件系统。您只需要将问题更改为 SD 卡,否则您的范围太广了。 Linux 让它们看起来都一样,但下面有几十个驱动程序等等。
    • eMMC 引导分区仅用于嵌入式需求。 AFAIK,SD卡上没有这样的东西。使用 SD 卡的常用方法有两种:将整个 SD 卡用作单个分区,或者将其与多个分区一起使用,这通常与硬盘驱动器磁盘一起使用。在这种情况下,SD 卡的第一个 LBA 应该包含一个 MBR。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多