【问题标题】:Linux kernel build : Perform "make localmodconfig" non-interactive wayLinux内核构建:执行“make localmodconfig”非交互方式
【发布时间】:2018-04-13 10:31:21
【问题描述】:

我想以非交互方式运行“make localmodconfig”。尝试中

是的 " " |制作 localmodconfig

出现以下错误:

Console input/output is redirected. Run 'make oldconfig' to update configuration.

make[1]: *** [scripts/kconfig/Makefile:45: localmodconfig] Error 1
make: *** [Makefile:547: localmodconfig] Error 2

我更喜欢 localmodconfig 而不是 olddefconfig 因为旧内核有 3000 多个模块并且只使用其中的 30 个。关于如何实现这一点的任何想法?

【问题讨论】:

  • 谢谢,我会用这个方法。如果可能,请将其作为答案。

标签: linux build linux-kernel embedded-linux kernel-module


【解决方案1】:

在你的内核源目录中有一些旧的.config,你可以这样做:

$ make olddefconfig
$ make localmodconfig
  • 第一个命令将使用旧的 .config 并将回答所有新选项的默认值,使 .config 适用于您的新内核
  • 第二个命令将禁用当前未加载到您机器上的所有模块,在.config(使用lsmod 输出)
  • 由于第一个命令已经使.config 对您的新内核有效,第二个命令不会询问您有关新选项的任何问题,因此您可以避免使用yes 工具。

【讨论】:

  • 这仍然问我一些问题:(。
  • @pevik 你能详细说明一下吗?第一个命令还是第二个?什么样的问题?是否有一些公共 git repo 可以复制该问题(或者您是否可以共享这样的 repo)?你能显示你的lsmod.config 的输出你用作make olddefconfig 的参考吗? .config 适用于哪个内核版本,您要构建哪个内核版本?基本上为了帮助你,我需要你身边的一些minimal reproducible example,对于你提到的问题,这将涵盖我上面的问题。
  • 还没找到原因,以后可能会加MRE。 有时在下一棵树上使用 openSUSE 配置(来自 openSUSE 内核打包 kernel.opensuse.org/cgit/kernel,其中有一些 SUSE 补丁)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-03
  • 1970-01-01
  • 1970-01-01
  • 2018-05-11
  • 2013-04-16
  • 1970-01-01
相关资源
最近更新 更多