从当前运行的 Linux 系统获取内核配置?

Son*_*ell 148 linux kernel

我不小心删除了我在 Linux 上的内核配置的 .config,并且似乎记得有一种方法可以通过 proc 文件系统以某种方式检索内核配置。

这仍然可能吗,如果是这样,我该怎么做?

new*_*456 151

根据您的系统,您可以在以下任一系统中找到它:

  1. /proc/config.gz
  2. /boot/config
  3. /boot/config-$(uname -r)

可能还有更多地方。

  • 在某些发行版(Fedora/Redhat)上,它是 /boot/config-2.6.18-194.el5 或类似的,并附加了内核发布字符串。 (4认同)
  • RaspBerry Pi 的 Ubuntu Mate 或 Kali Linux 上不存在此类文件。 (2认同)
  • 您应该提到,您的第一项(/proc)仅在加载模块“configs”时才可用 (2认同)
  • 请注意,如果您想搜索特定选项而不解压缩配置文件的副本,则可以使用“zgrep CONFIG_OPTION /proc/config.gz”。 (2认同)

小智 73

对于实际运行的内核,获取配置文件的一种方法是

cat /proc/config.gz | gunzip > running.config
Run Code Online (Sandbox Code Playgroud)

或者,

zcat /proc/config.gz > running.config
Run Code Online (Sandbox Code Playgroud)

然后running.config将包含正在运行的 linux 内核的配置。

但是,这只有在您运行的 linux 内核配置为具有/proc/config.gz. 这个配置可以在

  • General setup
    • [*] Kernel .config support
      • [*] Enable access to .config through /proc/config.gz

大多数发行版没有这个配置集。他们在内核包中提供内核配置文件,通常在/boot/目录中找到。

  • 如果您正在寻找它们,它们被称为“CONFIG_IKCONFIG”和“CONFIG_IKCONFIG_PROC”。 (8认同)
  • `zcat /proc/config.gz` 工作正常。 (2认同)

小智 46

有点晚了,但也许它可以帮助某人。我的电脑上没有/proc/config.gz/boot/config没有/boot/config-$(uname -r)。我必须以modprobe configsroot身份运行。然后,/proc/config.gz在场

  • Raspberry Pi 2 上的 Raspbian 也是如此 (4认同)
  • `致命:未找到模块配置。` 在 OMV 2.2 (Debian Wheezy) 上很高兴他们在 /boot/config-$(uname -r) 中提供了它 (3认同)

jgo*_*mo3 14

无论分布如何,您都可以运行: cat /lib/modules/$(uname -r)/build/.config

来源:proc(5)手册页(搜索/proc/config.gz)。


小智 10

如果您在 /boot/ 或 /proc/config.gz 中都找不到内核配置,您可以尝试从内核本身中提取此信息。

在任何内核源代码中,都有一个用于提取配置的脚本位于 中scripts/extract-ikconfig,将您希望其配置的内核作为参数传递给该脚本。

此解决方案仅Kernel .config support在已编译的内核中启用时才有效。

  • 这非常有帮助,并帮助我获得了很多我没想到会看到的配置。谢谢! (2认同)

归档时间:

查看次数:

190468 次

最近记录:

4 年,7 月 前