如何在 buildroot 中制作脚本 运行 作为启动脚本后初始化

How to make a script run in buildroot as a boot script after init

我正在使用 busybox 从 buildroot 构建自定义 initramfs 以用于自动 fdisk 分区。 How/where 放置一个脚本文件,以便 busybox 启动并自动执行它。

How to make a script run in buildroot as a boot script after init

您不能将一个脚本文件用于两个目的。您需要一个在目标上执行的脚本,以及一个在主机上修改目标原型文件系统的方法。

将脚本和文件安装到 Buildroot 生成的目标文件系统中的典型方法是指定 "post-build script"。此脚本在根文件系统 tared 或 ubinized.

之前执行

摘自 4.1 自定义 Buildroot user manual 的生成的目标文件系统

In the Buildroot configuration, you can specify the path to a post-build script, that gets called after Buildroot builds all the selected software, but before the rootfs packages are assembled. The destination root filesystem folder is given as the first argument to this script, and this script can then be used to copy programs, static data or any other needed file to your target filesystem.

Buildroot board 目录下的一个子目录(例如 board/beaglebone)是一个典型的存储位置post-build.sh个文件以及复制的原始文件。

post-build.sh 文件的示例是 here。使用 echo 命令逐行创建目标的两个脚本文件。二进制文件被简单地复制。

另请查看 this presentation 的第 24-25 页。

它不是那么干净,但是将文件放入文件夹并使用覆盖设置可以很好地工作。当然,这个文件夹只是原始复制到目标文件系统中,但对于简单的脚本来说,这是一个不错的选择。