23

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?

18

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

  • 4
    That's true in Debian based distros, but may not be true in others, i.e. Arch Linux. – Alicia Jul 17 '13 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 '13 at 11:24
  • 4
    I use Arch Linux and I can confirm this does not work in Arch Linux. – Alicia Jul 17 '13 at 15:31
  • @slm this isn't even true for Ubuntu, at least Kubuntu. I just checked — the only thing I have in /boot/ is grub directory. – Hi-Angel Nov 24 '15 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-Angel Nov 24 '15 at 16:02
14

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.

  • 6
    This only works if kernel is compiled with CONFIG_IKCONFIG_PROC set. – Bruce Ediger Jul 17 '13 at 3:46
  • 1
    This 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 '13 at 11:25
  • 1
    In distro kernels, the IKCONFIG option may be enabled only as a module. Try to modprobe configs and check if /proc/config.gz shows up. – XZS Sep 5 '13 at 15:21
0

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
-1

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.