General Kernel Configuration

From Elvanör's Technical Wiki
Jump to navigation Jump to search

This page helps with the configuration of the Linux kernel. Remember, configuring the kernel is easy - you just have to know which hardware you have quite well.

General Information

The kernel sources are unpacked in /usr/src (at least on Gentoo).

  • Once you are in the kernel source directory, use the following command to configure graphically your kernel:
make menuconfig
  • When migrating to a new kernel, copy your old .config file from the old kernel directory to the new one and type:
make oldconfig
  • The "/" key can be very useful for finding where a configuration option is present when using make menuconfig.

Hardware Detection

  • Basically, emerge pciutils lshw usbutils, which gives you lspci, lshw, and lsusb.

Kernel Configuration

Choice of the scheduler

  • There is an I/O scheduler in the section Block Layer. This is different from the CPU scheduler. The SD scheduler is a *CPU* scheduler.
  • In vanilla-sources, apparently there is no choice for the CPU scheduler. Same is true for ck-sources (where SD scheduler is mandatory).

Real Time Clock (RTC) support

  • With recent kernels (2.6.25+), there are two areas for this configuration.
    • Device Drivers -> Character Devices
    • Device Drivers -> Real Time Clock
  • If Gentoo hangs when starting (when running the clock init script) and you are using the support in Character Devices, change it to use the one in Real Time Clock (which I guess is newer and better).

Reading foreign partition tables

  • Each OS creates its own partition table format when initializing / formatting a disk. You can build support for reading these partition table formats with Linux; it's under File Systems -> Partition Types. Note that I don't really know what partition table format Linux uses.

Startup Parameters

  • The /etc/modprobe.d directory contains files filed with options that can be passed to the appropriate kernel module. For example, the ALSA modules. If you built the drivers not as a module, but directly into the kernel, you can pass these options as kernel startup parameters. The syntax is the following one:
snd-hda-intel.model=asus
  • Additional documentation can be found in /usr/src/linux/Documentation/kernel-parameters.txt.