Erklärung von verschiedenen Optionen zur Feineinstellung des Linux-Kernels

Processor type and features

Subarchitecture Type (PC-compatible)

In diesem Punkt kannst du aus folgenden Optionen wählen (Die meisten werden die erste Option wählen.):

  • PC-compatible (CONFIG_X86_PC)
  • AMD Elan (CONFIG_X86_ELAN)
  • Voyager (NCR) (CONFIG_X86_VOYAGER)
  • NUMAQ (IBM/Sequent) (CONFIG_X86_NUMAQ)
  • Summit/EXA (IBM x440) (CONFIG_X86_SUMMIT
  • Support for other sub-arch SMP systems with more than 8 CPUs (CONFIG_X86_BIGSMP)
Processor family

Im folgenden geht es darum, deinen Prozessor auszuwählen. Falls dir nicht klar ist, welchen Prozessor du hast, gib einfach cat /proc/cpuinfo ein. In dieser Ausgabe siehst du die wesentlichen Merkmale deiner CPU. Das Menu bietet folgende Wahlmöglichkeiten:

  • 386
  • 486
  • 586/K5/5x86/6x86/6x86MX
  • Pentium-Classic
  • Pentium-MMX
  • Pentium-Pro
  • Pentium-II/Celeron(pre-Coppermine)
  • Pentium-III/Celeron(Coppermine)/Pentium-III Xeon
  • Pentium M
  • Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon
  • K6/K6-II/K6-III
  • Athlon/Duron/K7
  • Opteron/Athlon64/Hammer/K8
  • Crusoe
  • Winchip-C6
  • Winchip-2
  • Winchip-2A/Winchip-3
  • CyrixIII/VIA-C3
  • VIA C3-2 (Nehemiah)
Generic x86 support (CONFIG_X86_GENERIC)
Mit dieser Option kann man allgemeine Optimierungen für x86-CPUs anschalten. Diese Option ist für allem für jene gedacht, die bei der Kompilation des Kernel nicht genau wissen, auf welchen konkreten Systemen er zum Einsatz kommt (z.B. Linux-Distributoren).
HPET Timer Support (CONFIG_HPET_TIMER)
Der High Precision Event Timer ist ein Ersatz für die Real Time Clock (RTC). Intel bietet eine Spezifikation für HPET. Im Normalfalle kann die Option problemlos auswählen.
Symmetric multiprocessing support (CONFIG_SMP)
Das aktiviert die Unterstützung für Rechner mit mehreren CPUs. Falls du einen Rechner mit einer CPU hast, kannst du dies getrost deaktivieren. Genauere Informationen zu der Multi-Prozessor-Unterstützung erhälst du beim SMP-HOWTO. Wenn du dies aktivierst, erhälst du weiteren Abfragen:
Maximum number of CPUs (2-255) (CONFIG_NR_CPUS)
Hier muss die maximale Anzahl der CPUs eingetragen werden, die Kernel unterstützen soll.
SMT (Hyperthreading) scheduler support (CONFIG_SCHED_SMT)
Wenn du einen Pentium IV mit Hyperthreading hast, sollte dies die Entscheidungen des Scheduler beschleunigen.
Preemption Kernel
Präemption sollte die Latenzzeiten (vor allem bei Multimediaanwendungen) spürbar verringern. Für Desktop- oder Embeddedsysteme ist dies eine gute Wahl. Du kannst hier einen Punkt auswählen und hast in der Konfiguration immer eine kleine Hilfe, für welche Systeme der Punkt geeignet ist.
Preempt The Big Kernel Lock (CONFIG_PREEMPT_BKL)
Dies führt Präemption für den Kernellock ein.
Machine Check Exception (CONFIG_X86_MCE)
Dies erlaubt den Prozessor den Kernel bei Problemen zu informieren.
Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4 (CONFIG_X86_MCE_NONFATAL)
Dieses Feature aktiviert einen Timer, der alle fünf Sekunden im Maschinencheckregister schaut, ob etwas passiert ist. Kleine Fehler werden korrigiert und geloggt. Hierdurch könnte man u.U. schon frühzeitig Probleme mit der Hardware erkennen.
check for P4 thermal throttling interrupt (CONFIG_X86_MCE_P4THERMAL)
Wenn der Pentium 4 mit der Wärmedrosselung beginnt, wird eine Nachricht ausgegeben.
Toshiba Laptop support (CONFIG_TOSHIBA)
Mit dieser Option erhält man einen Treiber für den Systemmanagementmodus der CPU auf Toshiba Notebooks. Dies funktioniert nur für Modelle mit einem Toshiba BIOS. Falls der Laptop ein Phoenix BIOS hat, klappt es nicht. Auf der Seite für die Toshiba Treiber kannst du weitere Informationen bekommen.
Dell laptop support (CONFIG_I8K)
Mit dieser Option hast du Zugang zum Systemmanagementmodus von einem Dell Inspiron 8000. Der Treiber ist nur mit dieser Version getestet, sollte jedoch auch mit anderen Dell Laptops funktionieren.
/dev/cpu/microcode - Intel IA32 CPU microcode support (CONFIG_MICROCODE)
Informationen hierzu findest du auf http://www.urbanmyth.org/microcode/
/dev/cpu/*/msr - Model-specific register support (CONFIG_X86_MSR)
Hiermit kann man ein Gerät anlegen, das Zugriff auf die modellspezifischen Register (MSR) der x86-Architektur hat. Der MSR-Zugriff wird dann zu einer bestimmten CPU auf Mehrprozessorsystemen geleitet.
/dev/cpu/*/cpuid - CPU information support (CONFIG_X86_CPUID)
Hiermit kann man ein Gerät anlegen, dass einem Prozess Zugriff auf die CPUID-Instruktion gibt. Diese wird dann von einem speziellen Prozessor ausgeführt.
Firmware Treiber
BIOS Enhanced Disk Drive calls determine boot disk (CONFIG_EDD)
experimentelles Feature
EFI Variable Support via sysfs (CONFIG_EFI_VARS)
BIOS update support for DELL systems via sysfs (CONFIG_DELL_RBU)
Dell Systems Management Base Driver (CONFIG_DCDBAS)
TBD
High Memory Support
Hier stehen die Möglichkeiten "aus", "4GB" und "64GB" zur Verfügung. Diese sollte man wählen, wenn man einen Rechner mit mehr als einem GB RAM hat. siehe auch meinen Blogeintrag vom Oktober 2005.
Memory model
Hier kann man derzeit nur Flat Memory auswählen.
Allocate 3rd-level pagetables from highmem (CONFIG_HIGHPTE)
TBD
Math emulation (CONFIG_MATH_EMULATION)
Falls dein Rechner keinen mathmatischen Coprozessor hat, kann Linux einen emulieren. Der Coprozessor wird für Gleitkommaoperationen benötigt. Rechner der Pentium-Klasse haben i.d.R. einen eingebaut. Diese Option sollte meist nur 386er und 486er Rechner betreffen.
MTRR (Memory Type Range Register) support (CONFIG_MTRR)
Auf diversen Intelprozessoren werden MTRRs benutzt, um den Zugriff des Prozessors auf Speicherbereiche zu kontrollieren. In der Regel ist das nützlich, wenn du eine Grafikkarte auf dem PCI- oder AGP-Bus hast. Du kannst den Eintrag getrost aktivieren.
Boot from EFI support (CONFIG_EFI)
Hierzu brauchst du spezielle Firmware. Außerdem solltest du Elilo nutzen. Denn weder Grub noch lilo kennen EFI.
Enable kernel irq balancing (CONFIG_IRQBALANCE)
Damit macht der Kernel IRQ-Loadbalancing.
Use register arguments (CONFIG_REGPARM)
Kompiliere den Kernel mit -mregparm=3 und eine andere ABI wird genutzt.
Enable seccomp to safely compute untrusted bytecode (CONFIG_SECCOMP)
Dies ist für Anwendungen, die Zahlen verarbeiten nützlich. Seccomp muss durch /proc/<pid>/seccomp aktiviert werden und kann dann nicht wieder abgeschalten werden.
Timer frequency (CONFIG_HZ_250)
TBD
kexec system call (CONFIG_KEXEC)
Damit kann man den Kernel im laufenden Betrieb wechseln. Der aktive Kernel wird heruntergefahren und ein anderer gestartet. kexec ist ein spezieller Systemaufruf.
Vorwort Vorbereitung Code maturity level General setup Loadable module support