1. Vorwort
2. Grundlagen
3. Kernel Quellen installieren/downloaden
4. Sauber machen
5. Konfigurieren
6. Kompilieren
7. Installieren
8. Testen
9. Wenn alles geht
1. Vorwort:
Dieses Howto soll Linux-einsteigern eine Möglichkeit bieten
sich sicher einen eigenen Kernel zu kompilieren.
Ich behandel hier ausschließlich die Kernel Version 2.4.x, da ich
mit anderen Versionen bisher nichts zu tun hatte und
von diesen dem entspechend keine Ahnung habe. Ich werde hier nicht auf
jede kleinste Option bei der Konfiguration eingehen,
das wäre auch ein wenig zu viel. Wer nicht weiß welche
Hardware er hat, sollte von diesem Howto lieber die Finger weg lassen.
2. Grundlagen:
Der Kernel. Ja was ist das eigentlich? Vieleicht sollten wir diese
Frage erst einmal klären, bevor es weiter geht.
Der Kernel ist für die reibungslose Kommunikation zwischen
Anwendungen und der Hardware zuständig.
Er ist für die direkte Ansteuerung der Hardware, etwa der
Festplatte oder der Soundkarte zuständig.
Ich wiederhole mich zwar ungerne, aber ich wiederhole noch einmal, dass
man sein System wenigstens so gut kennen sollte
um zu wissen was man braucht.
Bei der Konfiguration gibt es für die meisten Optionen drei
Auswahlmöglichkeiten: Eine Option garnicht einbinden, weil sie
nicht benötigt wird, eine Option Fest einbinden, da man sie immer
braucht, oder eine option als Modul einbinden, weil man sich
nicht sicher ist, oder diese Option eventuel zu einem späteren
Zeitpunkt braucht, zb. wenn man sich eine andere Soundkarte zulegt.
3. Kernel Quellen
Die meisten, oder gar alle Distributoren liefern die Kernel Quellen
ihrer Distribution, teilweise mit Distributionsspezifischen Patches auf
den CD's mit.
Sie haben nun zwei Möglichkeiten: Die Kernel Sourcen der
Distribution nehmen, was besonders bei SuSE nicht an zu raten ist, da
dort viele Patches
nicht funktionieren, da diese sich mti anderen SuSE Spezifischen
Patches in die Quere kommen.
Oder Sie installieren sich einen Standart Kernel, die Quellen finden
sie unter "www.kernel.org". Ich gehe nun davon aus, dass sie die
Standard Kernel-
quellen benutzen und nicht die ihrer Distribution. Am besten benutzen
sie immer den neusten Stable Kernel. Von Unstable solltens ie als
normaler
Benutzer die FInger lassen! Schauen sie sich mal im Verzeichnis
/usr/src um. Dort befindet sich meist ein link mit dem namen "linux",
welcher auf die Kernel Quellen des aktuellen Kernels zeigt.
Zusätzlich befindet sich dort dann noch ein Ordner namens
linux-"Version".
In diesem Ordner befindne sich die Kernel Quellen ihrer Distribution,
wenn sie also doch diese verwenden möchten, lesen sie nun bei
Punkt 4 weiter.
Nachdem sie sich die Kernel Quellen mit einer Gepackten
Größe von etwa 20 Megabyte heruntergeladen haben, entpacken
sie diese nach /usr/src.
Entpackt haben die Kernel Sourcen dann in etwa eine größe
von 100 Megabyte. Das sollte heut zu tage aber kein Problem mehr
darstellen.
Nun befindet sich ein neuer Ordner linux-"neue version" in /usr/src.
Korrigieren sie den symlink /usr/src/linux und richten ihn auf
/usr/src/linux-"neue version".
4. Suaber machen
Melden sie sich als root an, wenn sie X verwenden starten sie
eine shell, zb. die bash und wechselns ie in das Verzeichnis
/urc/src/linux
Führne sie dort folgende Befehle aus: make clean && make
mrpoper.
Damit stellen sie sicher, dass kein alter Daten müll in diesem
Verzeichnis rumfliegt, der beim compilieren des neuen Kernels evtl.
störend sein könnte. Bitte beachtens ie auch, dass hierdurch
auch ihre .config gelöscht wird.
Also vorher evtl. Sichern, falls nötig.
5. Konfigurieren
Wechseln sie per "cd /usr/src/linux" in das Verzeichnis mit den
aktuellen Kernel Quellen.
Nun haben sie 3 möglichkeiten ihren Kernel zu Konfigurieren:
1. make config
Bei dieser methode bekommen Sie zu jeder Option eine Frage gestellt, ob
und wie sie diese Option einbinden möchten.
y steht für Festeingebunden, m für Modul und n für nicht
eingebunden. Mit "?" erhalten sie Informationen über die jeweilige
Option.
Der Größte Nachteil dieser Methode ist, dass sie nicht
wieder zurück können, wenn sie irgendwo etwas falsches
angegeben haben,
dann müssen sie alle Fragen wieder von Vorne durchackern. Desshalb
meide ich diese MEthode eigentlich.
2. make xconfig
Dies ist die Grafische Konfiguration unter X.
Sie haben eine Übersicht aller Optionen und können alles
bequem mit der Maus auswählen, abwählen etc.
Der Nachteil ist, dass man mit den vielen aupoppenden Fenstern die
für jedes Untermenü erscheinen, schnell durcheinander kommen
kann.
Für xconfig müssen sie logischerweise X starten.
3. make menuconfig
Diese ist meine perönliche Lieblings Methode um einen Kernel zu
konfigurieren.
Wie unter xconfig haben sie ein Menü mit den Optionen, jedoch
ploppt nicht jedes mal ein neues Fenster auf, geht ja auch garnicht auf
der Console.
Man gelangt in ein Untermenü usw. wie in einer Baumstruktur.
Nun ist der Teil gekommen, andem sie ihr System sehr gut kennen
müssen.
Was sie wählen müssen kann ich ihnen leider nicht sagen,
jedoch kann ich ihnen folgende Tipps geben.
- Vergleichen sie ihre Config mit ihrer alten, die finden sie oft in
/boot
- Vergessen sie die Dateisysteme so wie den IP Stack nicht!
-Auch wenn sie keine SCSI Geräte besitzen, jedoch einen Brenner,
müssen sie die SCSI Unterstützung samt ide-scsi aktivieren,
da ihr Brenner sonst
mit diesem Kernel nicht lauffähig ist.
6. Kompilieren
Nachdem die Konfiguration ihres Kernels abgeschlossen ist
führen sie folgende befehle in angegebener Reihenfolge aus:
(immernoch in /usr/src/linux)
1. make dep
2. make bzImage (Bitte beachten sie das große I bei Image)
3. make modules
4. make modules_install
Den dritten und vierten Befehl können sie weg lassen, wenn sie die
unterstützung von Modulen im Kernel deaktiviert haben.
Beim Kompilierne kann es zu Warnungen kommen, das hängt von ihrer
CC Version ab (Compiler). Meist Handelt es sich um gcc.
Zu empfehlen ist die neuste Version 3.3, diese läuft bei mir
einwandfrei.
Überprüfen welche gcc Version sie haben können sie per
"gcc --version" auf der Console.
Evtl. benötigen sie noch die neusten "modutils".
Sie sollten immer die neuste Version benutzen, jedoch muss diese nicht
mit der Kernel Version übereinstimmen.
Sie können diese zb. auf www.rpmfind.net oder www.suse.de finden.
7. Installieren
Den neuen Kernel finden sie im /arch/i386/boot verzeichnis der
Kernel Quellen.
Benennen sie die Datei bzImage in Kernel-"Version" um und Kopieren sie
ihn nach "/boot".
Anschließend wird die System.map im Verzeichnis der Kernel
Quellen in System.map-"Neue Kernel Version" umbenannt und ebenfalls
nach "/boot" kopiert.
Ändern sie anschließend den link /boot/System.map von der
alten System.map auf ihre neue System.map (/boot/System.map-"Neue
Kernel Version").
Tragen sie den neuen Kernel anschließend in ihren Bootloader ein.
Wie dies funktioniert werde ich hier nicht weiter erklären. Manche
Distributionen wie zb. SuSE
bieten jedoch front ends um ihre Bootloader zu konfigurieren. Ansonsten
hilft meist ein Blick in die Dokumentation des jeweiligen Boot loaders.
8. Kernel testen
Starten sie ihr System neu, wenn beim Booten keine
Fehlermeldungen oder ähneliches auftreten scheint alles
funktioniert zu haben. Testen sie nun ob ihre Hardware
einwandfrei funktioniert. Wenn sie den Nvidia Treiber installiert
haben, wird ihr X nicht starten, dazu müssen sie erst den Nvidia
Treiber neu installieren. Also kein
Grund zur Panik. Wenn irgendwas nciht so geht, werden sie ihre
Kernelkonfiguration überarbeiten und den Kernel neu
Übersetzen müssen. Funktioniert nun alles
einwandfrei können sie Ihren neuen Kernel als default Auswahl im
Bootloader festlegen. Die Kernel Quellen ihres alten Kernels
können sie getrost entfernen,
jedoch sollten sie ihren alten Kernel weiterhin bootbereit halten,
falls der neue Kernel mal doch nicht so will wie sie wollen.
9. Greetz
Greetz an:
l0om - Scheiss Bullen
ProXy - Gib frei, ich will rein!
Nixon - Kilingt n bischen Berlinersich *hrhr*
Er@$eR - Leg dich mit dem besten an und du stirbst wie alle dann!
Den Rest der eXcluded.org crew und alle die ich vergessen habe :)
Kopieren erlaubt, verändern
verboten!
Takt