【发布时间】:2011-09-21 18:59:27
【问题描述】:
我有一种情况,我们的软件需要与几种不同的 Linux 内核发行版/内核树一起工作。 (包括 Android 分叉)
在尝试自动化构建过程时,我发现我们需要支持的特定构建的某些 defconfig 文件不包含我们所依赖的内核模块。
例如,假设我在.config 中需要一个名为XXX 的选项。对于某些依赖项,我可以这样做:
sed -i 's/# CONFIG_XXX is not set/CONFIG_XXX=m/' .config
对于其他人来说,这并不容易,因为依赖关系可能跨越多行 .config 语句。
是否有更受支持的非交互方式来执行此操作,还是我坚持编写更复杂的搜索和替换脚本?
【问题讨论】:
-
您可以为每个构建创建一组包含正确内容的 .config 文件吗?
-
@ed.,不错的主意。不过,我宁愿不这样做,因为我需要支持各种各样的内核,而且为每个内核设置一个单独的默认
.config会做更多的工作,因为我只需要包含几个额外的配置选项。 (只是它们经常爆发成大量的子选项,这些子选项也必须修改,而且我不知道.config中的选项名称是否会在内核版本之间发生变化。)我想这是一个很好的论据不过,为每个支持的内核构建手动创建一个.config。 ;-) -
您可以手动创建一些并使用 diff/patch 修改类似的。也许……
-
@ed.,好主意。如果补丁没有完全应用,我可以将其称为构建失败。
标签: linux build linux-kernel