CustomKernels

Overview

This document lists my custom kernels and the configuration changes that I made. osgiliath is the name of my Linux server.


osgiliath-rev.01

  • Date: 05.07.2003
  • Kernel 2.4.18

Some modifications.


osgiliath-rev.02

  • Date: 08.07.2003
  • Kernel: 2.4.18

As rev.01, with the following modifications:

  • Appletalk support as module


osgiliath-rev.03

  • Date: 19.12.2003
  • Kernel: ?

Same configuration as rev.02, but with updated kernel sources.


osgiliath-rev.04

  • Date: 20.03.2004
  • Kernel: 2.6.3

Configuration changes that differ from default values:

  • General Setup
    • Kernel .config support = YES Configuration can be extracted from a kernel, e.g. in order to build another kernel with the same features. /proc/config.gz lists the configuration, /proc/config_built_with lists information about the compiler used to build the kernel
  • Loadable module support
    • Module unloading = YES
  • Processor type and features
    • Processor family = Athlon (XP 2500+ 1.833 GHz, Socket A)
    • SMP support = NO
    • Preemtible Kernel = YES
    • Local APIC support on uniprocessors = YES
      • APIC = Advanced Programmable Interrupt Controller. The help says that this feature can be turned on without damage even if the processor does not have APIC (my Athlon should have it, though)
      • IO-APIC support = NO Not clear if Athlon has this feature
    • Machine Check Exception = YES
      • Check for non-fatal errors on AMD Athlon = YES Processor can notify the kernel about problems, e.g. problems with heat
    • /dev/cpu/microcode = removed
    • /dev/cpu/*/msr = removed only useful for multi processor systems
    • /dev/cpu/*/cpuid = removed only useful for multi processor systems
  • Power Management options
    • Power Management support = leave on Reason: if this feature is turned off, the kernel sends the command hlt to the processor in order to save energy if there is nothing to do.
    • ACPI = leave off Reason: the server should never go to sleep
  • Bus options
    • ISA support = removed
    • Support for hot-pluggable devices = leave on Reason: USB devices belong to the category of hot-pluggable devices
  • Device Drivers
    • Plug and Play Support = YES
      • PnP Debug Messages = YES
      • PnP BIOS Support = YES
      • PnP BIOS /proc interface = YES
    • Block Devices
      • Network block device support = removed
    • ATA/ATAPI/MFM/RLL Support
      • AMD and nVidia IDE support = leave on Provides support for the chips AMD-7xx (?), AMD-8111 (?) and nVidia nForce. Kernel can optimally configure the chip by setting PIO, DMA and UDMA speeds
      • Support for all other chipsets = removed
      • Generic PCI bus-master DMA support = leave on If my system has bus-master DMA (most Pentium PCI systems do), but for some reason DMA mode is turned off for the hard disk, this feature lets me use the tool hdparm to turn it back on (or off)
    • IEEE 1394 (FireWire) support
      • OHCI-1394 Video support = removed
  • Ethernet over 1394 = leave off
    • I20 device support = removed
    • Networking support
      • Networking options
        • PF_KEY sockets = Module In case IPSec Tools from KAME should be used later on
        • IP: AH transformation = Module Maybe useful for IPSec
        • IP: ESP transformation = Module Maybe useful for IPSec
        • IP: IPComp transformation = Module Maybe useful for IPSec
        • The IPv6 protocol = Module
          • same modules as for regular IP: AH, IP: ESP and IP: IPComp
        • IP: Network packet filtering
          • IP: Netfilter configuration
            • almost all options = Module
          • IPv6: Netfilter configuration
            • IP6 tables support = Module
              • all options = Module
        • IPsec user configuration interface = Module
      • Ethernet (10 or 100 MBit)
        • 3COM cards
          • 3C590/3C900 series (592/595/597) Vortex/Boomerang support = YES The help does not mention the integrated 3Com Controller 3C920B-EMB, but the driver still recognizes the controller
        • Tulip Family
          • DECChip Tulip (dc2114x) PCI support = YES
        • Reverse Engineered nForce Ethernet support = YES
        • National Semiconductor DP8381x Series PCI Ethernet support = YES
    • Input Device support
      • Enable /dev/psaux by default = leave on Just in case I want to use a bus mouse one day
      • Serial port line discipline = leave on Just in case I want to use a serial mouse one day
      • Mice
        • PS/2 mouse = Module Just in case I want to use a busl mouse one day
        • Serial mouse = Module Just in case I want to use a serial mouse one day
      • Misc -> PC Speaker Support = YES
    • Character Devices
      • Serial Drivers
          • 8250/16550 and compatible serial support = YES Just in case I want to use some serial device one day
      • Parallel printer support = removed
  • Support for user-space parallel port device drivers = removed
    • Mice -> Bus Mouse Support = leave as modules Just in case I want to use a bus mouse one day
  • /dev/nvram support = removed
    • /dev/agpart (AGP Support) = YES If I want to use XFree86 3.3.6 or 4.x with GLX or DRI
      • all Chipsets except NVIDIA nForce/nForce2 = removed
    • NVIDIA nForce/nForce2 chipset support = Module
      • Direct Rendering Manager = leave on
        • all modules except ATI Rage 128 = turne off
    • ATI Rage 128 = Module
    • Graphics Support
      • Support for frame buffer devices = leave on
        • all modules except ATI Rage128 display support = turne off
    • ATI Rage128 display support = Module
      • Console display driver support
    • Video mode selection support = removed
  • Logo configuration
    • Bootup logo and all sub-options = YES
    • Sound
      • ALSA = Module
        • OSS API Emulation = YES
        • PCI Devices -> VIA 82C686A/B support = Module
    • USB
  • EHCI HCD (USB 2.0) support = Module
    • OHCI HCD support = Module
    • USB Audio, Modem, Printer support = removed
    • Wacom support = removed
    • Mustek MDC800 Digital camera support = removed
    • alle USB Network adapters = removed
    • USS720 parport driver = removed
  • File systems
    • Reiserfs support = removed
    • ROM file systerm support = removed
    • Quota support = removed
    • Kernel automounter support = removed
    • Kernel automounter version 4 support = removed
    • CD-ROM/DVD -> UDF File System support = Module
    • DOS/FAT/NT
      • all Optionen = Module
      • Exception: NTFS write support = YES
    • Network File Systems
      • Provide NFSv3 client support = YES
      • Provide NFSv4 client support = YES
      • Provide NFSv3 server support = YES
      • Provide NFSv4 server support = YES
  • CIFS support = Module
  • NCP file systems support (to mount Netware Volumes) = removed
  • Cryptographic API
    • Various algorithms = Module


osgiliath-rev.05

  • Date: 20.03.2004
  • Kernel: 2.6.3

As rev.04, with the following modifications:

  • removed various unused modules
  • added various possibly useful modules (e.g. IPsec)
  • Support for network card 3Com 3cr990 series "Typhoon" = removed
  • Support for Reverse Engineered nForce Ethernet = added


osgiliath-rev.06

  • Date: 13.07.2004
  • Kernel: 2.6.6

Used .config from rev.05, built with make oldconfig.

Additional configuration changes that differ from default values:

  • POSIX Message Queues = yes (mqueue Library is required)
  • Processor family = Athlon (XP 2500+ 1.833 GHz, Socket A)
  • Legacy (BSD) PTY support = no
  • Apple Extended HFS file system support = yes
  • ARC4 cipher algorithm = module
  • Michael MIC keyed digest algorithm = module
  • CRC32c CRC algorithm = module


osgiliath-rev.07

  • Date: 29.01.2005
  • Kernel: 2.6.8

Used .config from rev.06, built with make oldconfig.

Note: this kernel never went productive because after booting this kernel the system always hung itself up after a couple of minutes (or even seconds).

Additional configuration changes that differ from default values:

  • Base native language support (NLS) -> ASCII (United States) = m
  • Crypto -> AES = yes
  • Crypto -> TEA and XTEA = module
  • Crypto -> Khazad = module
  • The following interesting options have appeared in this kernel version, but the default values were ok:
    • Default codepage for FAT = 437
    • Default iocharset for FAT = iso8859-1
    • CIFS extended attributes = no
    • CIFS POSIX extensions = no

After make oldconfig execute make menuconfig in order to make the following configuration changes (these changes are required to make USB sticks work, see http://www.linux-usb.org):

    • USB Mass Storage Support = module
    • SCSI Disk Support = module


osgiliath-rev.08

  • Date: 17.09.2005
  • Kernel: 2.6.12 (from Debian package linux-source-2.6.12-6

Used no previous .config. Built with make menuconfig.

Despite the missing .config, the configuration process seemed to detect the settings of the currently active kernel rev.06.

The changes from rev.07 were manually repeated. Also additional configuration changes that differ from default values:

  • Power management options
    • CPU Frequency Scaling = YES so that the CPU frequency can be changed dynamically; the default CPUFreq governor is "performance", i.e. by default the CPU frequencey is turned to its maximum
    • userspace governor = YES so that the CPU frequencey can be changed using a cmdline tool
    • ondemand governor = YES the CPU load is polled periodically and if the load is too high the CPU is switched to a higher frequency; this governor requires that the CPU is able to quickly change its frequency - an alternative for slower frequency changes is the option conservative
    • nVidia nForce2 FSB changing = YES
  • Bus options: no changes PCI Hotplug Support was already turned off; contrary to the notes for rev.04, this has nothing to do with USB
  • Device drivers
    • ATA/ATAPI/MFM/RLL support
      • Silicon Image chipset support = YES
    • SCSI device support = YES
      • SCSI disk support = YES
      • SCSI low-level drivers
        • Serial ATA (SATA) support = YES
          • Silicon Image SATA support = YES
    • USB support
      • USB Mass Storage support = module
  • File systems
    • Native Language Support (NLS)
      • ASCII (United States) = module
  • Cryptographic API
    • Null = module
    • Whirlpool = module
    • Tiger = module
    • AES = module
    • TEA and XTEA = module
    • Khazad = module
    • Anubis = module


osgiliath-rev.09

  • Date: 16.08.2007
  • Kernel: 2.6.21 (from Debian package linux-source-2.6.21-6

Built with first make oldconfig, to make a survey of the new options, then make menuconfig. Both methods take their defaults from the previous kernel configuration stored in /boot/config-2.6.12-osgiliath.

  • Processor type and features
    • High Resolution Timer Support = YES Sounds useful + might have an impact on ipt_recent? Help says "if your hardware is not capable then this option only increases the size of the kernel image", so no harm is done by turning on this option
  • Networking
    • Networking options
      • Networking packet filtering framework (Netfilter) The Netfilter infrastructure has changed between 2.6.12 and 2.6.21, which requires that a lot of options be re-configured for 2.6.21 (although they were already configured for 2.6.12). In particular, all connection tracking options are affected because they are required for NAT. Other options have been enabled just because they look useful.
        • Core Netfilter Configuration
          • Netfilter connection tracking support = module Required for NAT support.
          • "length" match support = module Looks useful
          • "mac" address match support = module Looks useful
          • IPsec "policy" match support = module
          • Multiple port match support = module Looks useful
          • "pkttype" packet type match support = module
          • "state" match support = module Required for NAT support.
        • IP: Netfilter Configuration
          • IPv4 connection tracking support (required for NAT) = module Required for NAT support.
          • address type match support = module
          • Full NAT = module Required for NAT support.
          • MASQUERADE target support = module
          • REDIRECT target support = module
          • NETMAP target support = module
          • SAME target support = module
          • TTL target support = module Looks useful
          • raw table support (required for NOTRACK/TRACE) = module Looks useful
        • IPv6: Netfilter Configuration (EXPERIMENTAL)
          • IPv6 connection tracking support = module
          • REJECT target support = module
          • HL (hoplimit) target support = module
          • raw table support (required for TRACE) = module
  • Device drivers
    • Serial ATA (prod) and Parallel ATA (experimental) drivers The changes in this section are required even though SATA support was already configured in 2.6.12. The reason for this re-configuration probably is that SATA support in 2.6.12 was located under the SCSI section, and now it has its own section
      • ATA device support = YES
      • Silicon Image SATA support = YES
  • File systems
    • Filesystem in Userspace support = module
  • Cryptographic API
    • XCBC = module
    • GF = module
    • LRW = module
    • FCrypt = module
    • Twofish (i586) = module
    • AES = module
    • Camellia = module


osgiliath-rev.10

  • Date: 05.06.2011
  • Kernel: 2.6.38 (from Debian package linux-source-2.6.38-5
  • Purpose for building this kernel: Upgrading to a new version of libc6 is not possible because the new libc6 version no longer supports the old kernel. Upgrading to a new kernel therefore allows upgrading to a new libc6.

Built with first make oldconfig, to make a survey of the new options, then make menuconfig. Both methods take their defaults from the previous kernel configuration stored in /boot/config-2.6.21-osgiliath.

  • Enable the block layer
    • Support for large (2TB+) block devices and files = YES
  • Device Drivers
    • Character devices
      • Parallel printer support = module This generates the "lp" module". This hopefully fixes a problem with the "checkpc" utility from the lprng package, which formerly complained about "cannot open lp device '/dev/lp0' - no such device or address"


osgiliath-rev.11

TODO

  • reconfig for new hardware
  • enable userspace software suspend (CONFIG_SOFTWARE_SUSPEND=y); although I don't really need this, it is recommended by the package uswsusp, which gets installed automatically through a chain of "recommends" dependencies starting in the vicinity of libgnomevfs2-0
  • remove deprecated sysfs (under "General setup")