当前的内核构建选项存储在哪里?

当前的内核构建选项存储在哪里?

有没有办法知道内核是否是在激活某个选项(即CONFIG_PROC_EVENTS=y)的情况下编译的,而不必拉出内核源代码包并查看配置文件?

答案1

如果您查看/boot目录,您会注意到这些文件:

$ ls -l /boot/|grep config
-rw-r--r--  1 root root   109919 Oct 21  2011 config-2.6.35.14-100.fc14.x86_64
-rw-r--r--  1 root root   109919 Oct 27  2011 config-2.6.35.14-103.fc14.x86_64
-rw-r--r--  1 root root   109919 Nov 23  2011 config-2.6.35.14-106.fc14.x86_64

请注意您正在使用的内核版本:

$ uname -r
2.6.35.14-106.fc14.x86_64

如果您grep通过适当的“config- uname -r”文件,您可以看到内核是使用哪些选项构建的:

$ grep CONFIG_PROC_EVENTS= /boot/config-`uname -r`
CONFIG_PROC_EVENTS=y

参考

答案2

内核选项可以在 中找到/proc/config.gz

zgrep CONFIG_PROC_EVENTS= /proc/config.gz

如果内核是用CONFIG_IKCONFIG_PROC=y.如果内核是用 编译的CONFIG_IKCONFIG_PROC=m,那么可能需要首先modprobe configs

答案3

如果您的内核是使用 构建的CONFIG_IKCONFIG_PROC,您可以找到列出的配置/proc/config.gz

zless /proc/config.gz

基于 Debian 和 Redhat 的内核包通常安装一个config-$version文件在/boot,

less /boot/config-$(uname -r)

kernel-package在 Debian 中,您还可以在中找到默认选项./kernel/Config/config以及在 中找到特定于体系结构的配置选项./kernel/Config/

mkdir /tmp/k
cd /tmp/k
apt-get source kernel-package
find . -path '*/kernel/Config/*' -type f

答案4

sudo find / -xdev -name .config(-xdev 将其保留在一个文件系统上)

一般情况下会在/usr/src/some-specific-kernel-header-version/.config

只需将其作为任何文本阅读,使用 grep 搜索,或者查看两个版本有何不同diff -y -suppress-common-lines /path/linux2.6-r3/.config /path/linux2.6-r4/.config

相关内容