有没有办法知道内核是否是在激活某个选项(即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