Is there a way to know if the kernel was compiled with a certain option activated (i.e. CONFIG_PROC_EVENTS=y
) without having to pull out the kernel sources package and looking in the config file?
4 Answers
If you look through your /boot
directory you'll notice these files:
$ 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
Notice what version of the Kernel you're using:
$ uname -r
2.6.35.14-106.fc14.x86_64
If you grep
through the appropriate "config-uname -r
" file you can see what options the Kernel was built with:
$ grep CONFIG_PROC_EVENTS= /boot/config-`uname -r`
CONFIG_PROC_EVENTS=y
References
-
10That's true in Debian based distros, but may not be true in others, i.e. Arch Linux.– AliciaJul 17, 2013 at 6:56
-
1@ntrrgc - I can't confirm for ArchLinux, but it's that way for RedHat, Debian, & Ubuntu. These 3 distros cover most of the *nix world. If someone has a ArchLinux distro can you please confirm this approach?– slm ♦Jul 17, 2013 at 11:24
-
5
-
@slm this isn't even true for Ubuntu, at least Kubuntu. I just checked — the only thing I have in
/boot/
isgrub
directory.– Hi-AngelNov 24, 2015 at 15:52 -
@slm perhaps are these configs a part of some package? Then it would be enough to list files of that package.– Hi-AngelNov 24, 2015 at 16:02
Kernel options can be found in /proc/config.gz
.
zgrep CONFIG_PROC_EVENTS= /proc/config.gz
if the kernel was compiled with CONFIG_IKCONFIG_PROC=y
. If the kernel was compiled with CONFIG_IKCONFIG_PROC=m
, then it may be necessary to first modprobe configs
.
-
1This did not work for me on any of the distros that I had available: Debian, RedHat based, nor Ubuntu. These are all stock systems so I don't think this approach is that useful unless you built your kernel yourself or your particular distro provides it.– slm ♦Jul 17, 2013 at 11:25
-
8In distro kernels, the IKCONFIG option may be enabled only as a module. Try to
modprobe configs
and check if /proc/config.gz shows up.– XZSSep 5, 2013 at 15:21
If your kernel was build with CONFIG_IKCONFIG_PROC
, you can find the configuration listed in /proc/config.gz
zless /proc/config.gz
Debian and Redhat based kernel packages generally install a config-$version
file in /boot
,
less /boot/config-$(uname -r)
In Debian you can also find the default options in kernel-package
's ./kernel/Config/config
as well as architecture specific configuration options in ./kernel/Config/
.
mkdir /tmp/k
cd /tmp/k
apt-get source kernel-package
find . -path '*/kernel/Config/*' -type f
sudo find / -xdev -name .config
(-xdev keeps it on one filesystem)
Generally it will be under /usr/src/some-specific-kernel-header-version/.config
Just read it as any text, search with grep, or to see how two versions differ diff -y -suppress-common-lines /path/linux2.6-r3/.config /path/linux2.6-r4/.config
-
2Well, dangit. Someone gave Max a -1, but out of all the methods here, it worked on my RHEL7 machine. So, I have no choice: +1. I found my file at
/usr/src/kernels/3.10.0-1062.el7.x86_64/.config
– Mike SAug 5, 2021 at 16:30 -
1@MikeS I think I was on Debian at that answer date, but I was using CentOS7 not long before. Sep 30, 2021 at 20:47