== Modifying Linux kernel configuration options the easy way Modifying a Linux kernel configuration option can be an annoying experience, as you poke around the menus of '_make menuconfig_' trying to find where the configuration option you want to change is hiding. Fortunately there's a less well known but much easier way. The kernel build process stores configuration settings in the file _.config_ in the root of the kernel source tree. However, it generates other things from the file (and some options are interdependent), so you can't just edit the file and go; you need to resynchronize the build system with the _.config_. So the easy way to modify an existing configuration is the following: # Find out what the ((CONFIG_)) variable you want to change is. Many of these have obvious names, like ((CONFIG_SMP)). # Edit _.config_ to *delete any mention of the option*, even if this is in a comment. (Comments are significant in _.config_ files.) # Run '_make oldconfig_', which will stop to ask you about the missing options at appropriate moments. # Build. Finding the right ((CONFIG_)) variable is a bit tricky. I will just say that they are all specified in _Kconfig_ files in various source directories (for example, _net/Kconfig_), which is also where you find all of the help text. (A few _Kconfig_ files are called things like _fs/Kconfig.binfmt_.) '_make oldconfig_' is also what you use if you're migrating a _.config_ from one Linux kernel version to another, since it will prompt you about any new configuration options (including new drivers). In fact, any time you change or shuffle _.config_s around, you want to do '_make oldconfig_'; it is the easiest way of getting the kernel build system synchronized with the _.config_. PS: remember to save your _.config_ file before you do a '_make mrproper_' to clean out kernel source trees; it's one of the files that a full cleaning deletes. PPS: many distributions ship kernel source with their _.config_ files stored somewhere; for example, Red Hat (including Fedora Core) puts them in ((configs/*)). They make good starting _.config_s, saving you the tedium of '_make menuconfig_' from scratch.