如何根据menuconfig标志修改构建后脚本中的文件?

时间:2015-10-28 12:24:46

标签: login buildroot post-build

我需要找到一种在 Buildroot 编译之后和创建rootfs之前修改/编辑给定文件的方法,具体取决于 menuconfig 标志选择。我可以在 Buildroot 文档中找到可以通过使用 post-build 脚本来实现这一点。

我的问题是,只有在 menuconfig 中选择了某些内容时才会执行脚本操作,例如:

(x) Enable my_login_system;

如果我选择 my_login_system ,那么我需要根据以下内容更改 nsswitch.conf 文件:

passwd:        my_login files

如果我没有在menuconfig中选择" my_login_system",那么nsswitch.conf应为:

passwd:        files my_login

所以,我的主要问题是如何知道" my_login_system"是否在构建后的脚本中选择了。

1 个答案:

答案 0 :(得分:4)

执行构建后脚本时,它可以访问BR2_CONFIG环境变量,该变量包含Buildroot .config文件的路径。您的脚本可以解析该文件并采取相应的行动。

因此你可能会遇到这样的情况:

if grep -q ^BR2_MY_LOGIN_SYSTEM=y ${BR2_CONFIG}
then
    # do some tweaks
else
    # do other tweaks
fi

或者,您可以使用BR2_ROOTFS_POST_SCRIPT_ARGS配置变量将任意命令行参数(而不是环境变量)传递给后构建脚本。

Buildroot手册中的Customizing the generated target filesystem部分记录了这两种可能性。