You got a binary kernel from some Linux system. You want to know it's configuration options and which extra modules were added to it.
For example: openSUSE does not use the standard Linus Torvald's "vanilla" kernel, but uses a slightly modified version of it, therefore I want to know which extra features were added. Unfortunately, finding such a documentation across distros is very difficult, so I had to learn a way to do exactly that.
The technique, that I am going to describe here, allowed me to see that SUSE Linux 10.0, while on paper had a kernel-version below the requirements for running FUSE, actually *had* FUSE included.
This How-To uses standard GNU/Linux commands, therefore it is not specific to openSUSE.
The command is very simple: (Note: it can be run as an unpriviledged user!)
suser@localhost:~> cat /boot/config-"your kernel version"
or retrieve the kernel version, by using the proper command-inside-command.
suser@localhost:~> cat /boot/config-$(uname -r)
This uses the internal “uname -r” command first, to retrieve the kernel version, then gives the outer command (cat) the control to continue execution.
Example1: Of course, we can add some search filters to it, for example to search for FUSE, use:
suser@localhost:~> cat /boot/config-$(uname -r) | grep -i fuse
Example2: list all the iptables firewall modules that are included in your specific kernel.
suser@localhost:~> cat /boot/config-$(uname -r) | grep -i netfilter; cat /boot/config-$(uname -r) | grep -i nf_
Example3: Show the recently readded "usbfs" component:
suser@localhost:~> grep CONFIG_USB_DEVICEFS /boot/config-$(uname -r)
![]() | Note 1 |
---|---|
I have said a component, not a module, because it was compiled into the kernel itself. |
![]() | Note 2 |
---|---|
Notice that I used grep directly, without using "cat" first. This syntax uses the input pipeline of grep directly. |