内核在STM32MP151上找不到rootfs

问题描述 投票:0回答:1

我正在尝试使用最近的启动阶段和内核(6.1.*)启动并运行基于this模块的主板。
无法使用制造商提供的文件,因为这些文件至少已有两年历史且不兼容。
这主要归结为编写设备树并按照ST 指南与 Yocto 一起使用它们。到目前为止,我遇到了很多问题,这些问题主要是由迁移或糟糕的文档引起的。

我当前正在尝试解决的问题是,在尝试启动内核时找不到 rootfs。

Starting systemd-udevd version 253.1^
root '/dev/disk/by-partuuid/491f6117-415d-4f53-88c9-6e0de54deac6' doesn't exist or does not contain a /dev.

我检查的第一件事是该分区的 uuid 确实正确。

根据u-boot中使用的

mmc part
(片段):

 8     0x0002d000      0x00747bff      "rootfs"
        attrs:  0x0000000000000000
        type:   0fc63daf-8483-4772-8e79-3d69d8477de4
                (linux)
        guid:   491f6117-415d-4f53-88c9-6e0de54deac6

哪个匹配,所以不是这样。通过

ums mmc 1
我确认 rootfs 确实包含一个名为 dev 的文件夹。

其他选项是设备树中的 sdmmc 节点有问题。但这是 u-boot 的复制粘贴,它找到了包含内核的 bootfs。

接下来是设备树中的调节器出了问题。 “兼容”设置缺失或不正确。基于 thispmic dtbindings 进行了更改,但也没有产生任何影响。

这几乎是我能找到的唯一相关的东西。关于可能导致这种情况的任何想法?可以在here找到有问题的设备树。

到目前为止我尝试过的其他事情:

  • 在没有 yocto 的情况下构建内核和 rootfs,以对其进行更多控制。没有帮助。
  • 构建 optee,调试级别为 4,没有提供新信息。
  • 在 extlinux.conf 中将“partuid”(单词)替换为 uuid,没有什么区别。
  • 试图弄清楚 u-boot 加载和加载内核之间发生了什么(那么 bootcmd 实际上做了什么),一切都按预期进行。
  • 再次浏览文档,看看我是否错过了什么,发现了一件事。这解决了其他问题,但没有解决 rootfs 问题。
  • fs 似乎没有调整为分区大小(不知道为什么),所以尝试手动执行此操作。也没解决。
linux kernel stm32
1个回答
0
投票

这三行不在 pmic: stpmic@33 节点内部并导致了所有问题...

interrupts-extended = <&exti 55 IRQ_TYPE_EDGE_FALLING>;
interrupt-controller;
#interrupt-cells = <2>;
  
© www.soinside.com 2019 - 2024. All rights reserved.