Ali*_*cia 34 compiling linux-kernel
有没有办法知道内核是否是在激活某个选项(即CONFIG_PROC_EVENTS=y
)的情况下编译的,而不必拉出内核源代码包并查看配置文件?
slm*_*slm 31
如果您查看/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
Run Code Online (Sandbox Code Playgroud)
请注意您使用的内核版本:
$ uname -r
2.6.35.14-106.fc14.x86_64
Run Code Online (Sandbox Code Playgroud)
如果您grep
通过适当的“config- uname -r
”文件,您可以看到内核是用哪些选项构建的:
$ grep CONFIG_PROC_EVENTS= /boot/config-`uname -r`
CONFIG_PROC_EVENTS=y
Run Code Online (Sandbox Code Playgroud)
Ali*_*cia 21
内核选项可以在/proc/config.gz
.
zgrep CONFIG_PROC_EVENTS= /proc/config.gz
Run Code Online (Sandbox Code Playgroud)
如果内核是用CONFIG_IKCONFIG_PROC=y
. 如果内核是用 编译的CONFIG_IKCONFIG_PROC=m
,那么可能需要先modprobe configs
.
如果您的内核是使用 构建的CONFIG_IKCONFIG_PROC
,您可以找到列出的配置/proc/config.gz
zless /proc/config.gz
Run Code Online (Sandbox Code Playgroud)
基于 Debian 和 Redhat 的内核包通常安装一个config-$version
文件在/boot
,
less /boot/config-$(uname -r)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)