我的板上有 3 MB 的 SPI 闪存,我可以将 bzImage、busybox initrd 和 coreboot ROM 打包到这个 SPI 闪存中。我还能够启动到 shell,全部使用 ROM kernel-as-bootloader。
我在 USB 设备上有更大的内核。我还能够检测到 USB 并安装它。但问题是busybox 似乎没有kexec 实用程序。我不能使用任何其他 initrd 包,因为由于内存限制,我的 cpio(未压缩)大小不应超过 1.4 MB。U-root具有 kexec 支持,但最小图像大小很容易达到 3MB,或者至少,我找不到构建小于该大小的方法。
因此,有没有办法将 kexec 支持添加到busybox(编译静态二进制文件并复制到 initrd?)或任何其他可以满足 1.4MB 大小需求的 initrd 包?
编辑
这篇文章表明busybox中可能有kexec支持,但我找不到它的任何痕迹。事实上,将 kexec-tools 添加到busybox 的请求是在十多年前完成的。但是当我在busybox中执行grep时,我没有看到它的痕迹。