Kernel-Howto
Inhaltsverzeichnis |
Einleitung
Für viele Zwecke ist es nötig, einen eigenen Kernel zu erstellen. Dafür kann es mehrere Gründe geben:
- Treibermodule die in einer Standarddistri nicht enthalten sind
- manuelles Installieren von LIRC
- wenn im Kernel Module einkompiliert sind, aber andere Module verwendet werden sollen
- Raid-Systeme
- ungewöhnliche Dateisysteme
- sonstiges
Das Erstellen eines Kernels ist nicht so schwer wie es immer dargestellt wird, setzt aber beim Konfigurieren Mitdenken voraus.
benötigte Dinge
- Compiler (bevorzugt gcc-3.x.x)
- make
- bzip2 oder gzip (auf fast jedem System vorhanden)
- tar (auf fast jedem System vorhanden)
- die Kernel-Quellen (linux-2.{4,6}.x.{tar.bz2, tar.gz, tgz})
linVDR und c't-VDR haben standardmässig keinen Compiler dabei! Der muss vorher nachinstalliert werden oder eine andere Distri verwendet werden!
Die Schritte im Einzelnen
Download der Kernelquellen
Es gibt zwei prinzipielle Möglichkeiten:
- Installation eines Kernels von www.kernel.org
- Installation eines distrispezifischen Kernels, der dann zumeist Anpassungen an das jeweilige System enthält
Hinweis: normalerweise spricht nichts dagegen, einen aktuellen Kernel von kernel.org zu herunterzuladen. Der Wechsel von einer Kernelgeneration auf die nachfolgende Generation (2.4.x => 2.6.x) bringt jedoch zumeist weitreichendere Änderungen an zusätzlicher Software mit sich. Beim Wechsel von 2.4.x auf 2.6.x sind die modutils *vorher* gegen die modinit-tools auszutauschen.
Kopieren des Kernels nach /usr/src
cp linux-2.{4,6}.x /usr/src
Wechsel nach /usr/src und Entpacken der Quellen, Anlegen eines symbolischen Links
cd /usr/src a) linux-2.x.x.tar.bz2: tar xvj linux-2.x.x.tar.bz2 b) linux-2.x.x.tar.gz: tar xvz linux-2.x.x.tar.gz c) linux-2.x.x.tar.gz: tar xvz linux-2.x.x.tgz ln -s linux-2.x.x linux cd linux
Konfigurieren des Kernels
Das Konfigurieren eines Kernels ist der schwierigste Teil der Installation. Hier kommt es darauf an, Hardware, Dateisysteme und grundlegende Software-Einstellungen zu machen! Die hier nicht bekannt ist welche Hardware du verwendest und welche Distri können hier nur allgemeine Ratschläge gegeben werden.
make menuconfig
Nach diesem Befehl öffnet sich die Wunderwelt der Kernelkonfiguration. Nicht gleich verzweifeln, hier kommen einige Tipps.
Falls die alte Konfigurationsdatei des Kernels noch vorhanden ist, lohnt es sich, diese *vor* dem make menuconfig nach /usr/src/linux zu kopieren. Die (versteckte) Datei nennt sich .config, übliche Fundorte sind das Verzeichnis der alten Kernelquellen, das Verzeichnis /boot, /lib/modules/<ALTE_KERNELVERSION>
- Code maturity level options
Die Nachfrage, ob ihr Development-Treiber in der Konfiguation angeboten bekommen wollt. Meist NEIN.
- Loadable module support
Klar wollt ihr, der DVB-Treiber sollte ja als Modul laufen! Kernel module loader ebenso.
Processor type and features
Hier ist der korrekte Prozessor anzugeben. Sollte nicht schwierig sein. Interessant sind hier noch MTRR Support und APIC support
- General setup
Hier wird wenigstens(!) Networking support, pci support, support for hot-pluggable devices, SYS V IPC, syctl und ELF support benötigt. Die meisten werden auch beim ACPI support ein Häkchen machen wollen.
- Parallel port support
Wer ein LCD ansteuert wird den wohl auch brauchen, pc-style hardware & IEEE1284 mode (bidirektionaler Modus)
- Plug and Play
Hiermit sind uralte ISA-Karten gemeint. 99,9% aller Nutzer haben so etwas nicht mehr. Gewöhnlich nein.
- Block devices
Wer hat noch ein altes Floppy? Loopback device sollte jedenfalls mit angekreuzt werden. Einige nutzen auch RAM-Disks.
- Networking options
Wenigstens TCP/IP.
ATA/IDE/MFM/RLL support
Hier gehören IDE/ATAPI CDROM und IDE/ATAPI ATA2 Disc support rein, beide direkt in den Kernel. Wer ältere cdrecord Versionen benutzt auch SCSI emulation support als Modul. Ebenso Generic PCI IDE chipset support, Sharing PCI IDE interrupts support, wenn dein Mainboard das unterstützt auch Generic PCI IDE busmaster-DMA support. Nicht vergessen ein Kreuz bei deinem Mainboard Chipsatz zu machen.
- SCSI support
Brauchen die wenigsten.
- Network device support
Hier gehören die Häkchen für deine Netzwerkkarte rein. Bitte auch in die Untermenüs gucken!
- Input core support
Für Nutzer von usb Maus/Tastatur.
- Charcter devices
Hier wirds interessant. Support für nvram und enhanced real time clock support für die nvram Nutzer. Dann wer die serielle Schnittstelle braucht: 16550 support ankreuzen. Unix98 pty support ankreuzen. LIRC user: support for user-space parport drivers. BTTV TV Karten brauchen i2c support (möglichst als Modul).
- Multimedia devices
Video for Linux als Modul.2.4.x-Nutzer sollten hier außer dem Kreuz bei Video for Linux nicht weiter ankreuzen und aktuelle BTTV/DVB-Treiber besorgen. 2.6.x Nutzer können auch den Kerneltreiber benutzen.
- Filesystems
Alle benötigten Dateisysteme hier auswählen. Lieber als Modul bauen mit einer Ausnahme: das Dateisystem was als root-Dateisystem ("/") verwendet wird MUSS in den Kernel einkompiliert werden! Sehr interessant sind hier das /proc Dateisystem und das /dev dateisystem. Hier lohnt sich der Besuch bei google was das ist oder ein Blick in die LFS und Gentoo Sektion hier.
- Sound
hier nur ein <M> bei support machen und ALSA verwenden. Die ALSA Module müssen *nach* dem neuen Kernel erneut kompiliert werden!
- USB support
Die meisten brauchen usb.
Okay. Habt ihr alles? Noch mal alles durchgeguckt ob nichts vergessen wurde? Dann speichern.