Section 6.3. Reconfigure the Kernel


6.3. Reconfigure the Kernel

Previously, we used the make menuconfig or gconfig or xconfig method to change different configuration options. But once you have a working configuration, the only thing that is necessary is to update it with any new options that have been added to the kernel since the last release. To do this, the make oldconfig and make silentoldconfig options should be used.

make oldconfig takes the current kernel configuration in the .config file, and updates it based on the new kernel release. To do this, it prints out all configuration questions, and provides an answer for them if the option is already handled in the configuration file. If there is a new option, the program stops and asks the user what the new configuration value should be set to. After answering the prompt, the program continues on until the whole kernel configuration is finished.

make silentoldconfig works exactly the same way as oldconfig, but it does not print anything to the screen, unless it needs to ask a question about a new configuration option.

Usually, when upgrading between different versions of the stable releases, no new configuration options are added, as this is supposed to be a stable kernel series. If this happens, there are no new questions that need to be answered for the kernel configuration, so the program continues successfully without any need for user intervention. An example of this is moving from the 2.6.17.9 to 2.6.17.11 release:

 $ cd linux-2.6.17.11 $ make silentoldconfig scripts/kconfig/conf -s arch/i386/Kconfig # # using defaults found in .config # 

The following example shows what happens when a new kernel option shows up in a new release. The kernel option to enable Mutex debugging is a new one for certain kernel releases. Here is the output when this happened:

 $ make silentoldconfig scripts/kconfig/conf -s arch/i386/Kconfig # # using defaults found in .config # * * Restart config... * * * Kernel hacking * Show timing information on printks (PRINTK_TIME) [Y/n/?] y Magic SysRq key (MAGIC_SYSRQ) [Y/n/?] y Kernel debugging (DEBUG_KERNEL) [Y/n/?] y   Kernel log buffer size (16 => 64KB, 17 => 128KB) (LOG_BUF_SHIFT) [16] 16   Detect Soft Lockups (DETECT_SOFTLOCKUP) [Y/n/?] y   Collect scheduler statistics (SCHEDSTATS) [N/y/?] n   Debug slab memory allocations (DEBUG_SLAB) [Y/n/?] y     Memory leak debugging (DEBUG_SLAB_LEAK) [Y/n] y   Mutex debugging, deadlock detection (DEBUG_MUTEXES) [N/y/?] (NEW) y 

The configuration program stops at this option and asks for the user to choose an option. Press y, and the program continues on:

   Spinlock debugging (DEBUG_SPINLOCK) [Y/n/?] y   Sleep-inside-spinlock checking (DEBUG_SPINLOCK_SLEEP) [Y/n/?] y   kobject debugging (DEBUG_KOBJECT) [N/y/?] n   Highmem debugging (DEBUG_HIGHMEM) [N/y/?] n   Compile the kernel with debug info (DEBUG_INFO) [N/y/?] n Debug Filesystem (DEBUG_FS) [Y/?] y Debug VM (DEBUG_VM) [N/y/?] n Compile the kernel with frame pointers (FRAME_POINTER) [N/y/?] n Compile the kernel with frame unwind information (UNWIND_INFO) [N/y/?] n Force gcc to inline functions marked 'inline' (FORCED_INLINING) [N/y/?] n torture tests for RCU (RCU_TORTURE_TEST) [N/m/y/?] n Check for stack overflows (DEBUG_STACKOVERFLOW) [N/y/?] n Stack utilization instrumentation (DEBUG_STACK_USAGE) [N/y/?] n Stack backtraces per line (STACK_BACKTRACE_COLS) [2] 2 * * Page alloc debug is incompatible with Software Suspend on i386 * Write protect kernel read-only data structures (DEBUG_RODATA) [N/y/?] n Use 4Kb for kernel stacks instead of 8Kb (4KSTACKS) [N/y/?] n 

So upgrading the kernel configuration for a new release is as simple as using a different configuration option to make. With this method, you do not need to use the graphical or text-oriented configuration programs for any new kernel update.



Linux Kernel in a Nutshell
Linux Kernel in a Nutshell (In a Nutshell (OReilly))
ISBN: 0596100795
EAN: 2147483647
Year: 2004
Pages: 113

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net