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


23

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

Answers:


18

如果浏览/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

参考文献


4
在基于Debian的发行版中确实如此,但在其他操作系统(例如Arch Linux)中可能并非如此。
艾丽西亚(Alicia)2013年

1
@ntrrgc-我无法确认是否使用ArchLinux,但是RedHat,Debian和Ubuntu就是这样。这3个发行版涵盖了* nix世界的大部分地区。如果有人拥有ArchLinux发行版,您可以确认这种方法吗?
slm

4
我使用Arch Linux,并且可以确认这在Arch Linux中不起作用。
艾丽西亚(Alicia)2013年

@slm至少对于Ubuntu,甚至Kubuntu来说都不是这样。我刚刚检查了-我唯一拥有的/boot/就是grub目录。
Hi-Angel

@slm也许这些配置是某些软件包的一部分?这样,列出该软件包的文件就足够了。
Hi-Angel

14

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

zgrep CONFIG_PROC_EVENTS= /proc/config.gz

如果内核使用编译CONFIG_IKCONFIG_PROC=y


6
仅当使用CONFIG_IKCONFIG_PROC设置编译内核时,此方法才有效。
Bruce Ediger

1
这对我可用的任何发行版都不起作用:Debian,基于RedHat或Ubuntu。这些都是库存系统,因此除非您自己构建内核或您的特定发行版提供它,否则我认为这种方法没什么用。
slm

1
在发行版内核中,IKCONFIG选项只能作为模块启用。尝试modprobe configs检查/proc/config.gz是否显示。
XZS 2013年

0

如果您的内核是使用编译的CONFIG_IKCONFIG_PROC,则可以在中找到配置。/proc/config.gz

zless /proc/config.gz

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

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

在Debian中,你也可以在默认选项kernel-package./kernel/Config/config,以及在体系结构相关的配置选项./kernel/Config/

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

-1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.