如何在u-boot和内核之间启动程序?

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

我已经在 Zynq-7000 和 Petalinux 2021.1 上使用 Yocto 设置了 Linux 系统。我当前的任务是每 2 秒重置一次硬件看门狗。一旦我的系统已经启动并运行,重置看门狗就不是问题了。然而,我在启动过程中重置看门狗时面临着挑战。

我的理解是u-boot阶段需要不到2秒的时间,所以此时重置看门狗是不必要的。然而,内核启动和用户连接之间存在大约 40 秒的显着差距。

有人对如何解决这个问题有任何想法或建议吗?

我尝试在内核开始时启动服务,但没有成功。

非常感谢您的帮助!

布恩。

linux embedded-linux yocto petalinux
1个回答
0
投票

听起来像是内核模块的工作。 检查以下模块之一是否是您正在寻找的内容: https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842055/Cadence+WDT+驱动程序\ https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841776/Axi+Watchdog

如果没有,您可以编写一个小内核模块并将其放入

initrd
/
initramfs
中,以便在启动时加载它。

https://docs.xilinx.com/r/2021.2-English/ug1144-petalinux-tools-reference-guide/Creating-and-Adding-Custom-Kernel-Modules

initramfs
还支持在启动时运行一些 shell 脚本,但我不确定它在 Petalinux 上如何工作。

如果时间还来不及,您可以构建包含驱动程序(内置)的内核。有一种名为

initcall
的机制控制内置模块初始化的顺序。 https://0xax.gitbooks.io/linux-insides/content/Concepts/linux-cpu-3.html

© www.soinside.com 2019 - 2024. All rights reserved.