Linux für Einsteiger
Kapitel 3: Ein neuer Kernel

3.1 Kernel-Grundlagen

Dieser Punkt ist, denke ich, eines der größten Hemmschwellen beim Umstieg auf Linux. Wir müssen jetzt den Kern des Betriebssystems quasi runderneuern um Netzwerkkarte, Soundkarte und ähnliches betreiben zu können.

Was ist der Kernel?

Der Kernel ist das Kernstück eines jeden Betriebssystems. Er verwaltet sämtliche Resourcen des Systems. Um zum Beispiel auf eine Festplatte zugreifen zu können, muss man dem Kernel dies mitteilen, der dann die gewünschte Operation auf der Festplatte ausführt. Dadurch werden zwei Dinge gewährleistet. Zum Ersten muss sich kein Programm um die Hardware des Systems kümmern, weil der Kernel weiß, welche Treiber er für welches Gerät braucht. Zum Zweiten kann kein Programm dadurch auf Systembereiche zugreifen, auf die es keine Berechtigung hat. Dadurch wird das System unanfällig gegenüber schlechter Programmierung (Vorrausgesetzt das Betriebssystem fängt entsprechende Meldungen des Kernels anständig ab und meldet sich nicht nur mit lästigen Blue-Screens).

Monolithischer Kernel und Microkernel

Man unterscheidet in der Praxis zwischen monolithischem und Micro-Kernel. Der Micro-Kernel (MS-Windows) besteht aus einer Viehlzahl von kleinen Modulen, den Hardware-Treibern und einem Loader, der die entsprechenden Treiber ins System integriert. Der Vorteil ist die leichte Ersetzbarkeit der einzelnen Treiber beim Austausch von Hardware und das leichtere Update. Monolithische Kernel (Linux) integrieren alle Systemtreiber in einem Guß und sind dadurch Kompakter und im Allgemeinen weniger fehleranfällig. Bei Linux besteht jedoch die Möglichkeit, einzelne Komponenten aus dem Kern in Module auszulagern um Platz zu sparen. Der Nachteil ist jedoch, das der komplette Systemkern neu kompiliert werden muss, wenn neue Hardware eingebaut wird.


3.2 Vorbereitungen

Zunächst müssen die Kernel-Quellen mit YaST installiert werden. Wer dem vorherigen Kapitel zur Installation gefolgt ist, hat dies bereits getan (Paket: Programmentwicklung, Module include und lx_suse für Suse-Linux). Ansonsten ist jetzt Zeit, dies nachzuholen. Das Programm gcc (der C-Compiler) und die Bibliothek libc aus der Sparte Entwicklungswerkzeuge müssen ebenfalls installiert sein.

Dann öffnen wir einen Terminal (eine Konsole) in KDE oder wechseln mit STRG+ALT+F1 auf einen solchen. Wir müssen dazu als root eingeloggt sein. Ist dies noch nicht der Fall, kann man sich mit dem Kommando su die entsprechenden Rechte verleihen (Passwort eingeben!) oder auf einer Textkonsole über logout und erneutes login als root einloggen.

Mit dem cd-Befehl gehen wir ins Verzeichnis /usr/src/linux:

cd /
cd usr
cd src
cd linux

Hier liegen die nötigen Dateien zur Kernel-Kompilierung. Der erste cd / ist nötig, um ins Startverzeichnis zu kommen. Ich empfehle - ohne mich selbst dran zu halten - vor der Installation des Kernels eine Bootdiskette zu erstellen. Legt dazu eine Diskette (1.44") ins Laufwerk und ruft den Befehl

make zdisk

auf! Bringt die Shell jetzt einen Fehler, sind wahrscheinlich die Kernel-Quellen nicht oder nicht vollständig installiert. Die Fehlermeldung

No rule to make target ...

weißt darauf hin, das ihr entweder im falschen Verzeichnis seit oder die Quellen nich nicht installiert sind. Sollte das System später nicht mehr booten, könnt ihr mit dieser Diskette wieder darauf zugreifen und den alten Kernel installieren.


3.3 Konfiguration

Jetzt können wir mit

make xconfig

loslegen.

Die wichtigste Regel beim Kernel konfigurieren:

Hände weg von Einstellungen, deren Sinn ihr nicht versteht. Zu jedem Punkt gibt es eine Hilfe, die einem sagt was an dem entsprechenden Punkt zu tun ist. Lest diese Hilfe VOLLSTÄNDIG, bevor ihr eine Einstellung verändert.

Außerdem gilt: Nur Komponenten einbinden, die man auch wirklich braucht!

Zuerst jedoch stelle ich als Sprache Deutsch ein, indem ich den Punkt Language for Kernel Compilation anklicke und dort auf die Schaltfläche mit dem Wort "English" klicke und "German" auswähle. Über "Main Menü" und Save and Exit verlasse ich die Konfiguration und starte sie gleich darauf neu. Erst jetzt ist die neue Sprache eingestellt.

Ich werde jetzt nur auf die Rubriken eingehen, die ich selbst benötige, um mein System anzuwerfen. Es ist nicht weiter schwierig, sich daraus selbst ein System zusammenzubauen.

Ich empfehle dringent, sich das Kernel-Howto durchzulesen. Besonders bezüglich der Maßnahmen zur Rettung des Systems, wenn der neue Kernel nicht bootet. Die Howtos sind bei SUSE zum Beispiel unter der Rubrik Dokumentation (im KDE-Menü) zu finden.

Grundsätzliches zur Codegenerierung

Den Schalter für experimentelle Treiber sollte kann man ruhig einschalten.

Prozessorfamilie und -einstellungen

Ich wähle mir den 586 aus und schalte die Emulation des Coprozessors aus, schließlich hat der Pentium selbst einen.

Unterstützung für Kernel-Module

Ich lasse die beiden Schalter für ladbare Module auf yes und den Schalter für Versionsinformationen der Hilfe folgend auf n.

Grundeinstellungen / Plug and Play

Auch diese beiden Punkte lasse ich unverändert, wer weiss, was das alles bringt.

Blockorientierte Geräte

Ich Schlate den Streamer-Support und den CDM640-Bugfix aus, schließlich habe ich beides nicht. Den LVM-Manager deaktiviere ich ebenso wie das Zusammenfassen von Festplatten. Die Ramdisk-Unterstützung verbanne ich auf Modulare ebene (Auswahl m), IDE-Geräte am Parallelport habe ich auch keine.

Netzwerkeinstellungen

Der TCP-Dienst bleibt aktiviert, das IPX-Netzwerk nehme ich raus, weil ich als Admin meines LANS weiß, das IPX nicht betrieben wird. Wer später Spiele unter Linux betreiben will, sollte IPX eingeschaltet lassen. Es gibt einige Kandidaten, die nur über IPX im Netz zu spielen sind. APPLETALK brauche ich genau so wenig wie CCIT X.25 und LAPB. Acron Econet wird auch abgestellt. Der Rest wird auf n gelassen.

Quality of Service

Brauch ich nicht im LAN, also abschalten.

SCSI / Fire-Wire

Abschalten, brauche ich nicht.

Netzwerkkarten-Support

Hier sage ich ja zur Schnitstellenunterstützung und deaktiviere aber alle mir unbekannten Teriber, weil ich sie sicher nicht brauche. Nur das Dummy-Interface wird modular geladen. Vielleicht rüste ich mal eine ISDN-Karte nach.

ARCNet - Devices

Deaktiviert

Ethernet

Aktivieren! Hier wähle ich mir PCI NE200 Unterstützung, obwohl meine Realtech in der Liste steht. Ich habs mit dem RT-Treiber probiert und es ging nicht. Also nehme ich diese Einstellung.

Appletalk / Token Ring / Wan / Amateur Radio / Infrarot Subsystem / ISDN / Alte CD-ROM

Alles deaktiviert

Zeichenorientierte Geräte

Ich deaktiveier Unix98 PTY und Mouse Support (not Serial Mice) sowie Enhanced RTL Support

Mäuse / Watchdog Karten / Video für Linux / Joystick Unterstützung / Ftape (Floppy-Tape ) / USB

Alles deaktivieren, sofern es überhaupt noch anwählbar ist

Dateisysteme

Ich deaktiviere Quota, Minix und OS2. Von allen anderen lasse ich die Finger. Zum Betrieb von Linux muss, glaube ich, das fs-System aktiviert sein.

Netzwerk-Dateisysteme

Ich denke, keines davon zu benötigen. Das SMB-Protokoll nehme ich mit, um später auf meine Windows-Rechner zugreifen zu können.

Partitions-Systeme

Ich deaktiviere sie alle

Native Language Unterstützung / Konsolentreiber

Ich lasse alle Einstellungen so

Soundunterstützung

Hier wähle ich y aus und aktiviere OSS-Soundmodule, um and Soundblaster-Kompatible Modelle zu kommen, welche ich ebenfalls aktiviere.Die Adressen lasse ich so, weil sie für meine Karte Passen.

Low-Level-Soundtreiber

Brauche ich nicht

Kernel Debugging

Abschalten


3.4 Compilieren des neuen Kernel

So, die Konfiguration ist geschafft. Ich speichere die Konfiguration noch in eine Datei bevor ich auf "Speichern und Beenden" klicke.
Um einen lauffähigen Kernel zu bekommen, führe ich der Reihe nach folgende Befehle aus:

make dep
make clean
make bzlilo
make modules
make modules_install

Wer will, kann auch alles in eine Zeile schreiben und sich für längere Zeit verabschieden:

make dep clean bzlilo modules modules_install

Wenn alles fehlerfrei abgelaufen ist, kann man nach einem Reboot seinen neuen Kernel bewundern.

Zugegeben: Mein System bringt jetzt beim booten einen Fehler weil ein Modul nicht gefunden wurde, es läuft aber einwandfrei.

Was tun, wenn nichts mehr geht?

Wenn der Kernel jetzt nichtmehr bootet, dann startet das System mit der Bootdiskette, die ihr hoffentlich erstellt habt und betet. Lest im Kernel-Howto nach, was zu tun ist, es ist nicht ganz so einfach.



© Gerhard Zapf
Installation
Sitemap
www.tutorialpage.de
Netzwerk / Samba
Diese Seite wurde seit dem 12.07.01 genau 881 mal abgerufen.
Letzte Änderung: 11.09.2003