处理 u boot 的启动失败 ( Debian )

处理 u boot 的启动失败 ( Debian )

我有一个带有 512 Mb 内存和 4Gb 内部存储的嵌入式设备。 (考虑 Raspberry Pi 或 Beaglebone)

我有一个带有 3 个分区的外部 SD 卡。

mmcblk0是磁盘,mmcblk0p1mmcblk0p2mmcblk0p3其上的 3 个分区。

mmcblk0p2并且mmcblk0p3,每个分区都有一个 Debian 操作系统。

mmcblk0p2用作活动分区,同时mmcblk0p3用作备份分区。

我看到 u boot 更喜欢第一个分区的行为。它从分区读取 uEnv.txt 并相应地启动。

所以分区mmcblk0p1有uboot配置。 (uEnv.txt以及启动所需的其他文件)

我正在使用uEnv.txt更改启动配置,即如果我想从启动,mmcblk0p3我可以给

mmcargs=setenv bootargs console=tty0 console=${console} ${optargs} ${cape_disable} ${cape_enable} root=/dev/mmcblk0p3 rootfstype=${mmcrootfstype} ${cmdline}

在里面uEnv.txt

如果uEnv.txt由于任何故障而损坏或分区损坏,则设备将无法从任何一个分区启动。 (即操作系统)

如果uEnv.txt活动分区损坏,那么如何在重新启动时从另一个分区启动?如果您可以分享一些与此主题相关的可用链接或资源,即我该如何处理这种情况,那就太好了?

答案1

如果您从头开始实现自己的 OTA,那么是的,您可能需要了解其他现有 OTA 机制如何处理此问题,因为通常您使用某种标志组合来了解是否有更新,以及您是否尝试过更新。

相关内容