Kernel übersetzen und installieren.

Aus LinuxUser 07/2004

Kernel übersetzen und installieren.

Blick ins Innere

Der Kernel ist das Herzstück jeder Linuxinstallation. Auf viele Computern läuft noch Version 2.4, aber Kernel 2.6 ist schon lange fertig. Lohnt sich der Umstieg und falls ja, wie geht das überhaupt?

Das Betriebssystem genau auf die eigenen Hardware abstimmen? Mit Linux geht das, denn damit kann jeder einen seinen Kernel nach Belieben anpassen. Mit ein wenig Hintergrundwissen ist das nicht einmal besonders schwierig. Dieser Artikel erkläert Schritt für Schritt, wie es geht: von einer kleinen Rundreise durch den eigenen Computer, über die zum Kernel-Basteln nötige Software und die Konfiguration, bis hin zur gefahrlosen Installation. Er richtet sich in erster Linie an Anfänger und Fortgeschrittene, bietet aber auch Profis bietet noch einiges an Informationen zum neuen Kernel.

Wer schon einmal probiert hat, einen Kernel zu generieren, hat angesichts seitenweiser Fehlermeldungen vielleicht schnell aufgegeben. Oder der Respekt vor dem funktionierenden Computer verhindert so grundlegende Eingriffe gleich ganz, getreu dem Motto: “Never change a running system” – verändere nie ein laufendes System. Doch es gibt keinen Grund, gleich so schwarz zu sehen, denn Sie können jederzeit und ohne große Schwierigkeiten auf den alten Kernel-Stand wechseln – ganz ohne Systembackup und auch ohne jede Form der Hexerei. Letztere hat im Bereich Computertechnik sowieso nichts verloren.

Ein paar Grundlagen

Der Kernel ist das das Herz des Betriebssystems, er ist am stärksten an der Hardware orientiert, befindet sich, bildlich gesprochen, ganz innen. Daher auch sein Name, der ins Deutsche gerne mit Betriebssystemkern übersetzt wird. Der Kernel verwaltet die Hardware und stellt viele Funktionen bereit, die Benutzerprogramme verwenden können. So muss nicht jeder Autor einer Textverarbeitung selber programmieren, wie Daten auf die Festplatte gespeichert werden, das übernimmt der Kernel.

Der Linux-Kernel besteht aus zwei Teilen: dem Kernel selbst, einer zirka ein MByte große Datei, und den Modulen. Diese erweitern die Funktionalität (beispielsweise Hardwareunterstützung) des Kernels bei Bedarf, auch wenn er schon läuft. Module und Kernel müssen zusammenpassen, deshalb werden sie mit einer Versionsnummer gekennzeichnet, die aus vier durch Punkte getrennten Elementen besteht (Abbildung 1): Version, Patchleve, Sublevel und Extraversion.

Abbildung 1: Die gepackten Dateien mit den Kernelquellen auf den FTP-Servern enthalten die kompletten Versionsnummern.

Abbildung 1: Die gepackten Dateien mit den Kernelquellen auf den FTP-Servern enthalten die kompletten Versionsnummern.

Die Bezeichnung 2.6.6 besagt: Kernelversion zwei, Patchlevel sechs und Sublevel sechs. Eine Extraversion gibt es hier nicht. Letztere kennzeichnen Änderungen zum offiziellen Kernel, beispielsweise hängen an den Kernelvarianten des Programmierers Alan Cox seine Initialen ac. Beim Patchlevels bedeuten gerade Zahlen, dass es sich um stabile (stable) Versionen handelt, ungerade Nummern kennzeichnen Entwicklerkernel. Für ein stabiles System sind solche Kernels nicht geeignet.

Auf der Suche nach den Verzeichnissen

Die Sourcen befinden sich nach dem Entpacken unterhalb des Verzeichnisses /usr/src. Ausgehend von diesem Verzeichnis gibt es mehrere Möglichkeiten: * linux * linux-2.4 (alternativ linux-2.6) * linux-2.x.x (mit symbolischem Linklinux auf dieses Verzeichnis). Nach Meinung des Autors ist die beste Variante die dritte, denn sie macht es einfach, mehrere Kernelversionen zu installieren.

Der fertige Linux-Kernel liegt in Form einer Datei im Verzeichnis /boot oder direkt im Stammverzeichnis /. Typische Dateinamen sind vmlinux, vmlinuz, vmlinuz-x.x.xx oder bzImage-x.x.xx. Das Z im Namen steht dafür, dass die Datei komprimiert ist. Ohne eine solche Komprimierung ließen sich aktuelle Kernel auf älteren Systemen gar nicht booten, den häufig gibt es dort eine Größenbeschränkung.

Die zu dem jeweiligen Kernel gehörenden Module finden sich unterhalb des Verzeichnisses /lib/modules. Jede Kernelversion besitzt dort ein eigenes Unterverzeichnis (Abbildung 2). Auf diese Weise können mehrere Linux-Versionen parallel existieren.

Abbildung 2: Unterhalb von /lib/modules sind die Modulverzeichnisse der einzelnen Kernelversionen zu finden.

Abbildung 2: Unterhalb von /lib/modules sind die Modulverzeichnisse der einzelnen Kernelversionen zu finden.

Die Sinnfrage

Gründe für einen neuen Kernel gibt es viele: Sicherheitslöcher aus älteren Versionen sind in aller Regel gestopft. Außerdem unterstützen oft nur aktuelle Kernel neue Hardware und Protokolle. Kernelversion 2.6.x bringt beispielsweise folgende Erweiterungen: * USB 2.0 * Linux auf Laptops * SATA (serielle ATA) * VPN (Virtual Private Network) * Erweitertes Power Management * Neues Interface für Sound

Zuletzt seien noch zwei nicht ganz unwichtige Gründe genannt: das Interesse des Anwenders – schließlich gibt es bei der ganzen Aktion auch etwas zu lernen – und der recht große Geekfaktor der Unternehmung. Auf die Stammtisch-Frage “Na, schon mal einen eigenen Kernel installiert?”, können Sie bald guten Gewissens erwidern “Ja, kein Problem”.

Die Quelle ist der Anfang

Um einen eigenen Kernel zu installieren, sind die Sourcen (Quellen) notwendig. Ausgangspunkt dafür ist die Seite www.kernel.org [1], die alle Linux-Versionen führt. Beim Herunterladen sollten Sie nicht den ins Auge springenden Link, sondern den Buchstaben F anklicken. Dieser steht für die volle (F – full Sources) Quelldatei (Abbildung 3).

Abbildung 3: www.kernel.org – Der Ausgangspunkt für den eigenen Kernel

Abbildung 3: www.kernel.org – Der Ausgangspunkt für den eigenen Kernel

Laden Sie den Kernel am besten im bzip2-Format herunter, denn das komprimiert stärler als das alte gz-Format, die Dateien sind also kleiner. Für Kernelversion 2.6.6 ist die gepackte Source-Datei mehr als 32 MByte groß. Ein ISDN-Download nimmt somit mehr als eine Stunde in Anspruch, optimale Verbindung vorausgesetzt. Mitunter sind die Kernelsourcen auch auf Heft-CDs von Linux-Zeitschriften enthalten.

Um einen Linux-Kernel zu kompilieren, gibt es mehrere Möglichkeiten. Die im folgenden beschriebene Variante wurde vom Autor auf verschiedenen Systemen getestet. Dafür sind Administratorrechte erforderlich, geben Sie also entweder su - ein (mit anschließender Angabe des Passworts) oder melden sich direkt mit dem Benutzernamen root an.

Einige ältere Linux-Versionen legen beim Entpacken das Unterverzeichnis linux an. Existiert bereits ein Verzeichnis (oder ein symbolischer Link) mit diesem Namen, wird dieses überschrieben. Deshalb sollten Sie das alte linux vor dem Entpacken mit mv linux linux_vorher umbennenen und später löschen, wenn klar ist, dass Sie es nicht mehr brauchen. Die heruntergeladene Datei entpacken Sie mit:

tar xjvf linux-2.6.6.tar.bz2 -C /usr/src

Für das gz-Format lautet der entsprechende Befehl:

tar xzvf linux-2.6.6.tar.gz -C /usr/src

Selbstverständlich können Sie dafür grafische Tools verwenden. Auch hier gilt: das Zielverzeichnis ist /usr/src und es sind root-Rechte erforderlich.

Dann legen Sie den symbolischen Link an und wechseln ins Linux-Verzeichnis:

ln -s linux-2.6.6 linux
cd linux

Im Verzeichnis /usr/src/linux gibt es mindestens zwei interessante Dateien: README und Documentation/Changes – beide leider nur auf Englisch. Die erste beschreibt, wie man einen Kernel konfiguriert und übersetzt (kompiliert), die zweite führt die dafür nötigen Programme auf und dokumentiert Änderungen gegenüber früheren Versionen.

Sind statt der geforderten Programme ältere Varianten installiert, treten vielleicht Fehler auf, die schwer zu finden sind. Wer jetzt die Hände über den Kopf zusammenschlägt und sich sagt: “Das habe ich gleich gewusst, ohne Englisch komme ich hier nicht weiter.”, kann sie gleich wieder in Richtung Tastatur bewegen. Tabelle 1 zeigt die nötigen Versionen der wichtigsten Tools und wie Sie sie auf Ihrem System überprüfen.

Tabelle 1: Für Kernel 2.6 nötige Hilfsprogramme

Gnu C-Compiler 2.95.3 gcc –version
Gnu Make 3.78 make –version
Gnu Binutils 2.12 ld -v
Util-Linux 2.10o fdformat –version
Module-Init-Tools 0.9.10 depmod -v

In der ersten Spalte sind die Programm-Pakete, in der zweiten die mindestens notwendigen Versionen zu finden. Einige aktuelle Distributionen erfüllen diese Voraussetzungen schon von Haus aus. Das verwendete Red Hat erforderte ein Update des Pakets module-init-tools (siehe Kasten 2). Sind einige Programme nicht auf dem notwendigen Stand, finden Sie aktuelle Versionen auf den Updateseiten des Distributors oder unter [2]. Bei sehr alten Linux-Installation empfiehlt sich ein komplettes Update der Distribution. Ein neuer Linux-Kernel allein bringt ein älteres System nicht auf den neuesten Stand.

Kasten 1: Installation der module-init-tools

Dynamische Module erweitern die Funktionalität des Kernels, allerdings setzen sie einige Zusatzprogramme zum Laden und Entfernen voraus. Mit der Kernelversion 2.6 löst das neue Paket module-init-tools die Modutils ab, die bisher dafür zuständig waren. Stapeln sich beim Start die Fehlermeldungen im Umgang mit Modulen, ist ein Update unumgänglich. Die neue Version ist in der Lage, mit älteren Kernelversionen umzugehen. Damit können Sie jederzeit zum alten Kernel zurückwechseln. Auch hier sind Administrator-Rechte erforderlich. Das Ausgangsverzeichnis spielt keine Rolle. Nach dem Download von ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules entpacken Sie die Datei:

tar xjvf module-init-tools-3.0-pre8.tar.bz2

und wechseln in das neue Verzeichnis:

cd module-init-tools-3.0-pre8

Folgender Befehl konfiguriert das Paket und stellt den Ort der Installation ein:

./configure --prefix=/

Installieren Sie die module-init-tools zum ersten Mal, sichern Sie so die alten Versionen:

make moveold

Mit make starten Sie den Übersetzungsprozess (Compile). Anschließend verschaffen Sie sich durch su Administratorrechte und installieren die fertigen Programme mit make install. Die neue Konfigurationsdatei für dynamische Kernelmodule erzeugt ein mitgeliefertes Hilfsprogramm:

./generate-modprobe.conf /etc/modprobe.conf

Natürlich muss der neue Kernel auch zum eigenen Computer passen, deshalb müssen Sie erst einmal wissen, aus welchen Hardware-Einzelteilen er besteht. Nützliche Tools dafür sind lspci und lsmod. Das Programm lspci gibt die vorhandenen PCI-Geräte, lsmod eine Liste der geladenen Module aus. Die Kernel-Konfiguration erlaubt den Prozessortyp anzugeben, um so einen dafür optimierten Kernel zu kompilieren. Welcher Prozessor in Ihrem Computer steckt, finden Sie bei einem laufenden Linux mit cat /proc/cpuinfo heraus. Sie müssen nicht unbedingt jedes Stück Hardware im Kernel einstellen, denn er deckt im Normalfall einfach ein breiteres Spektrum ab. Doch je mehr Informationen über das System vorliegen, umso gezielter kann der Kernel konfiguriert werden.

Zur Übersetzung, bitte

Die Sourcen liegen entpackt im Verzeichnis /usr/src/linux, die nötigen Hilfsprogramme sind installiert. Bevor Sie den Kernel nun übersetzen, konfigurieren Sie seine einzelnen Komponenten. Vor der eigentlichen Konfiguration empfiehlt sich folgender Befehl, der bestehende Konfigurations- und temporäre Dateien löscht.

make mrproper
Abbildung 4: Der Klassiker make menuconfig ist für die Konsole gedacht.

Abbildung 4: Der Klassiker make menuconfig ist für die Konsole gedacht.

Zum Konfigurieren gibt es mehrere Varianten. Die drei gebräuchlichsten zeigt, inklusive einer kurzen Erläuterung, Tabelle 2.

Tabelle 2: Möglichkeiten der Kernel-Konfiguration

make menuconfig Basiert auf dem Textmodus und kann von der Konsole aus verwendet werden (siehe Abbildung 4). Diese Variante setzt die Pakete ncurses-5.3-4 und ncurses-devel-5.3-4 voraus.
make xconfig Diese grafischer Oberfläche setzt die Qt-Funktionsbibliotheken voraus, die auf den meisten Systemen vorhanden sind.
make gconfig Realisiert die grafische Oberfläche mit den Gtk-Bibliotheken. Diese sind ebenfalls auf den meisten Systemen installiert.

Die X-Windows-Varianten (grafisch) zeigen zu jedem Punkt die Hilfetexte, sofern vorhanden, aber leider nur auf Englisch. Sie können zwischen mehreren Ansichten wählen. Bei den ersten Versionen des Kernels 2.6 fehlten bei gconfig in der Ansicht Split einige Menüpunkte (siehe Abbildung 5). Aktuelle Kernel (zum Redaktionsschluss 2.6.5) haben diesen Fehler behoben

Abbildung 5: Baut auf den Gtk-Libs auf: make gconfig.

Abbildung 5: Baut auf den Gtk-Libs auf: make gconfig.

Die Konfiguration mit make xconfig macht einen übersichtlichen Eindruck (Abbildung 6), es sind immer alle Menüpunkte zugänglich. Vor einem unbeabsichtigten Abbruch wird, wie auch bei gconfig, gewarnt.

Abbildung 6: Unter X-Windows die im Moment wohl beste Art der Kernelkonfiguration: make xconfig. Es basiert wie KDE auf den Qt-Libs.

Abbildung 6: Unter X-Windows die im Moment wohl beste Art der Kernelkonfiguration: make xconfig. Es basiert wie KDE auf den Qt-Libs.

Die Konfiguration ist hierarchisch aufgebaut und, mit ein wenig Übung, leicht zu bewerkstelligen. Das Aktivieren einiger Punkte verzweigt in weitere Untermenüs. Bleiben die “Abzweige” deaktiviert, sind auch die entsprechenden Untermenüs nicht sichtbar.

Abgesehen von den Einträgen, die ein weiteres Menü öffnen, gibt es pro Menüpunkt maximal drei Möglichkeiten der Auswahl. Die einfachste ist, den jeweiligen Eintrag auszuschalten. Der fertige Kernel wird dann die abgewählte Eigenschaft nicht unterstützen. Die zweite Variante ist die Auswahl als Modul. Dieses kann zur Laufzeit, wenn der Kernel bereits seinen Dienst versieht, nachgeladen werden. Das geschieht nur, wenn sie benötigt werden und spart somit Ressourcen wie Speicher und Rechenzeit. Sie sollten den Dateisystemtyp, auf dem das Root-Filesystems liegt, fest in den Kernel einbauen. Denn um weitere Module von Festplatte laden zu können, muss der Kernel sie erst einmal lesen können. Alternativ ist es mögliche, eine RAM-Disk zu verwenden. Es handelt sich dabei um eine virtuelle Festplatte im Speicher, von der der Kernel beim Start die wichtigsten Module lädt. Diese Löstung ist aber kernelabhängig und müsste für die neue Version erst erstellt werden.

Hinweise zur Konfiguration

Die Entscheidung, welche Punkte angewählt sein sollten, ist systemabhängig. Tabelle 3 gibt ein paar Tipps. Ist ein lauffähiger Kernel generiert, kann ruhig ein wenig experimentiert werden.

Tabelle 3: Tipps zur Konfiguration

General Setup Grundlegende Systemeinstellung. Empfehlenswert ist .config support einzustellen, denn damit ist es später möglich, die Kernelkonfiguration über Datei /proc/config.gz auszulesen.
Processor type and features Festlegen des Prozessortyps. Eine falsche Auswahl kann dazu führen, dass der Kernel nicht bootet. Im Zweifelsfall wählen Sie 586/... (funktioniert ab der Pentium-Generation, für Intel wie auch AMD). Den Prozessor Ihres Computers ermitteln Sie mit cat /proc/cpuinfo.
Power management options (ACPI/APM) Stromsparfunktionen. Kernel 2.6.x unterstützt das alte APM und das neuere ACPI. Letzteres funktioniert leider nicht auf allen Systemen fehlerfrei. Gerade Laptop-Benutzer sollten zunächst APM einstellen. Sind beide als Modul selektiert, verwendet der Kernel den Modus verwendet, der als erstes geladen wurde.
Device Drivers | Plug and Play support Sowohl ISA- als auch BIOS-Plug-and-Play-Support sollten Sie erst einmal deaktivieren ,wenn Sie einen modernen PC besitzen. Beide Einstellungen verhinderten auf einem Testsystem (Sony Laptop) das Booten des Kernels.
Device Drivers | ISDN subsystem ISDN-Unterstützung. Schalten Sie CAPI 2.0 (Standardisierte Software-Schnittstelle) nur dann ein, wenn die ISDN-Programme mit dem CAPI-Interface umgehen können. Ansonsten ist die Verwendung von Old ISDN4Linux ratsam.
Device Drivers | Sound Kernel 2.6 führt als neuen Audio-Standard ALSA ein (Advanced Linux Sound Architecture), unterstützt aber weiterhin noch das ältere OSS (Open Sound System). Um ALSA zu verwenden sind nach dem Start des Kernels mitunter weitere Einstellungen notwendig. Informationen dazu finden sich in der Kernel-Dokumentation Documentation/sound/alsa. ALSA unterstützt eine OSS-Emulation, so dass auch ältere Anwendungsprogramme mit dem neuen Soundsystem arbeiten. Für die ersten Versuche ist es ratsam, OSS zu verwenden. Achten Sie darauf, bei der Kernel-Konfiguration die passende Audio-Hardware auszuwählen. Im Zweifelsfall wählen sie alle verfügbaren Sound-Chips als Modul aus. Achtung: Einige Fernsehkarten (beispielsweise der BT878) bringen einen eigenen Soundchip mit.
Device Drivers | I2C I2C-basierende Chips kommen häufig auf Motherboards, Sound-, Video- und Fernsehkarten zum Einsatz. Es empfiehlt sich, sie als Modul auszuwählen.
Device Drivers | USB support Defaultmässig ist nur der EHCI HCD-Treiber aktiviert. Dieser unterstützt USB 2.0. Bei Computern, die nur USB 1.1 unterstützen, müssen Sie den Punkt UHCI HCD aktivieren. Sonst ist Stille auf der USB-Leitung.
Device Drivers | USB support | USB HID Boot Protocol drivers Die Menüpunkte Keyboard und Maus aktivieren Sie, wenn das System mit einer USB-Tastatur bzw. -Maus ausgestattet ist. Diese Komponenten können nicht als Module eingebunden werden.
File systems Auswahl der unterstützten Dateisysteme. Wichtig: Das Filesystem der Root-Partition (oberste Verzeichnisebene /) muss fest im Kernel integriert werden. Das Einbinden als Modul reicht nicht.
File systems | DOS/ FAT/ NAT Filesystems Unterstützung von Nicht-Linux-Dateisystemen. Benutzen Sie Windows auf demselben Rechner, sind diese Einstellungen für Sie interessant, denn damit können Sie auf DOS- und Windows-Festplatten zugreifen. Für Windows 2000 oder NT unterstützt der Kernel auch das NTFS, aber der Schreibzugriff ist nicht ganz ausgereift.

Die Einstellungen werden in der Datei .config gespeichert, die ein Aufruf von make mrproper allerdings löscht. Um das zu verhindern, können Sie sie unter einem anderen Namen speichern (wie im Beispiel als “myconfig”) und sie von Hand kopieren.

cp myconfig .config

Bau und Installation

Die folgende Anleitung gilt für die aktuellen Kernelversionen 2.6.x. Das erste Kommando erstellt den komprimierten Kernel einschließlich der beim Booten notwendigen Entpackroutinen. Die folgenden Zeilen kompilieren und installieren die passenden Kernelmodule.

make bzImage
make modules
make modules_install

Sie können auch alles in einer Zeile erledigen:

make bzImage modules modules_install

Jetzt ist erst mal der Rechner dran. Der Ausgabe ist ab Version 2.6.x wesentlich übersichtlicher geworden. Wie Abbildung 7 zeigt, wird nicht mehr die komplette Befehlszeile ausgegeben. Sie können den neuen Kernel mit make bzdisk auch auf einer Diskette speichern. Das erlaubt, den neuen Kernel zu booten, ohne den Bootmanager der Festplatte anzupassen.

Abbildung 7: Anstelle seitenlanger Ausgaben zeigt Kernel 2.6 nur die gerade bearbeiteten Dateien an: die Übersetzung des Kernels wird damit deutlich übersichtlicher.

Abbildung 7: Anstelle seitenlanger Ausgaben zeigt Kernel 2.6 nur die gerade bearbeiteten Dateien an: die Übersetzung des Kernels wird damit deutlich übersichtlicher.

Ist alles fehlerfrei abgeschlossen, befindet sich der generierte Kernel bzImage im Unterverzeichnis arch/i386/boot. Den kopieren Sie nun an die richtige Stelle, typischerweise /boot oder das Stammverzeichnis /. Das folgende Beispiel kopiert den Kernel und hängt dabei die Versionsnummer an:

cp arch/i386/boot/bzImage /boot/bzImage-2.6.2

Jetzt fehlt noch der Eintrag für den Bootloader. Auf eine RAM-Disk sollten Sie (zumindest für den ersten Start) verzichten. Das Gleiche gilt für den (oft bei Red Hat zu findenden) Eintrag root=LABEL=xx. Der neue Kernel wird zusätzlich zu den vorhandenen Versionen eingetragen. So kann im Fehlerfall die alte Version gestartet werden. Für den Eintrag gilt: Einen vorhandenen Linux-Eintrag kopieren, modifizieren und die Datei abspeichern. Ein Eintrag in die GRUB Konfigurationsdatei /boot/grub/grub.conf sieht beispielsweise wie folgt aus:

title   Linux (2.6.2)
        root (hd1,0)
        kernel /boot/bzImage-2.6.2 ro

Damit ist bei GRUB auch schon alles erledigt.

Für LILO-Anwender, ist der Ablauf identisch. Ein typischer Eintrag in die Konfigurationsdatei /etc/lilo.conf ist:

image=/boot/bzImage-2.6.2
        label=Linux (2.6.2)
        read-only

Nach dem Speichern der Konfigurationsdatei muss das Kommando lilo aufgerufen werden!

Nach dem Neustart kann der Menü-Punkt Linux (2.6.2) ausgewählt und damit der “Neue” gestartet werden. Die Ausgaben beim Systemstart geben Auskunft über den Erfolg des Unternehmens “Eigener Kernel”. Gibt es beim Neustart Probleme (Kernel bootet nicht oder eine Unmenge an Fehlermeldngen), dann nur keine Panik. In diesem Fall sollten zunächst die Fehlermeldungen analysiert, und im Anschluss daran der “Alte” Kernel gestartet werden. Bei einer weiteren Kernelkonfiguration können dann die Fehler schrittweise beseitigt werden.

Abbildung 8: Die Startmeldungen liefern mitunter einige Neuigkeiten. So bringt Kernel 2.6.x eine neue IDE-CD-Brenner Schnittstelle mit.

Abbildung 8: Die Startmeldungen liefern mitunter einige Neuigkeiten. So bringt Kernel 2.6.x eine neue IDE-CD-Brenner Schnittstelle mit.

Wie in Abbildung 8 zu sehen ist, zeigen die Startmeldungen jede Menge interessanter Details – die Sie nicht alle auf Anhieb verstehen müssen. Das Kommando dmesg zeigt diese Meldungen noch einmal an, wenn Linux bereits läuft.

Achtung: Unter Umständen wird beim Neustart auf das Fehlen von Hardwarekomponenten hingewiesen. Behalten Sie in diesem Fall die alten Einstellungen bei.

Hinweis: Die Konfiguration beginnt mit dem Aufruf vom make mrproper aus dem Sourceverzeichnis heraus. Damit wird auch die aktuelle Konfigurationsdatei .config gelöscht. Um auf die bis dato gemachte Konfiguration aufbauen zu können sollte die Konfigurationsdatei vorher gesichert, werden.

mv .config save
make mrproper
mv save .config
make menuconfig

Ist die Konfiguration unter einem anderen Namen gespeichert wurden, kann sie zu Beginn der Konfiguration eingelesen werden.

Kasten 2: Hinweise für Red-Hat-Benutzer

Damit bei Red Hat die Module automatisch geladen werden, ist eine Modifikation des Boot-Skriptes /etc/rc.d/rc.sysinit vorzunehmen. Hierzu sind ROOT-Rechte erforderlich. Um Herauszufinden, ob Module verwendet werden, wird in der Datei /proc/ksyms nach dem Eintrag nomodules gesucht. Für Kernel 2.6.x (und auch schon einigen vorhergehenden Versionen) steht dieser Eintrag, falls jemals vorhanden, in der Datei /proc/modules. Im gezeigten Auszug ist die Orginalzeile mit # deaktiviert, und die abgeänderte Zeile darunter eingefügt worden.

#if ! LC_ALL=C grep -iq nomodules /proc/cmdline 2>/dev/null && [ -f /proc/ksyms ]; then
if ! LC_ALL=C grep -iq nomodules /proc/cmdline 2>/dev/null && [ -f /proc/modules ]; then
    USEMODULES=y
fi

Fazit

Auch Nicht-Profis können einen Kernel übersetzen und installieren – schließlich fangen alle mal klein an. Bei Problemen ist ein “Zurückschalten” auf die vorherige Version jederzeit möglich.

Wenn Sie einen neueren Kernel installieren wollen, dann natürlich die aktuellste Version, in diesem Artikel die Version 2.6.6. Für neuere Versionen ersetzen Sie die entsprechende Nummern in den beschriebenen Befehlen.

Zum Abschluss noch ein Tipp: Testen Sie den “Neuen” ausgiebig, bevor Sie den “Alten” aus Ihrem System entfernen.

Der Autor

Roman Jordan beschäftigt sich schon seit den Zeiten, wo noch mit Disketten installiert wurde, mit dem Thema Linux. Im richtigen Leben arbeitet er als Systemprogrammierer für kleinere aber dennoch leistungsfähige Systeme.

Glossar

Link

Ein symbolischer Link ist ein Verweis (Verzeichniseintrag) auf eine Datei. Ein Link kann wie eine “normale” Datei verwendet werden. Das Löschen eines Links führt nicht zum Löschen der Datei. Symbolische Links werden mit dem Kommando: ls -s vorhandene_Datei sym_Link_Datei angelegt.

Infos

[1] Hauptseite Linux Kernel: http://www.kernel.org/

[2] Suchmaschine für RPM-Pakete: http://rpmfind.net/

LinuxUser 07/2004 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben