Menu Content/Inhalt
Home arrow Tipps und Tricks arrow Kernel arrow Kernel-Tips zur Version 2.2

Login






Passwort vergessen?
Noch kein Benutzerkonto?
Registrieren
Kernel-Tips zur Version 2.2 PDF Drucken E-Mail

Von Diese E-Mail-Adresse ist gegen Spam-Bots geschützt, du musst Javascript aktivieren, damit du sie sehen kannst und Diese E-Mail-Adresse ist gegen Spam-Bots geschützt, du musst Javascript aktivieren, damit du sie sehen kannst

1. Der Download:

Es gibt zwei Möglichkeiten, den Kernel zu beziehen:

  1. Die vollen Sourcen:
    Entweder findet man sie auf CDs oder man bezieht sie aus dem Internet: Die Quellen des 2.2er-Kernels findet man z.B. auf
    ftp://ftp.de.kernel.org/pub/linux/kernel/v2.2/ Die Datei heißt entweder linux-2.2.*.tar.gz, wenn sie mit gzip gepackt wurde, oder linux-2.2.*.tar.bz2, wenn sie mit bzip2 gepackt wurde. Es empfiehlt sich, wenn man bzip2 installiert hat, dass man die bz2-Datei herunterlädt, denn diese ist um mehrere Megabyte kleiner.
  2. Den Patch:
    Den Patch kann man genauso bekommen wie die vollen Sourcen. Die Patch-Dateien heißen patch-2.2.*.gz oder patch-2.2.*.bz2. Diese Patches kann man aber nur verwenden, wenn man die vorhergegangene Version des Kernels hat. Man kann es mit einem Upgrade vergleichen.

2. Vor der Installation

2.1. Den alten Kernel und System.map sichern.

Man wechselt in das Verzeichnis, in dem der Kernel ist, z.B. cd /boot/. Dann muss man den alten Kernel sichern, für den Fall, daß etwas mit dem neuen nicht stimmt.

mv vmlinuz vmlinuz.old

Damit die Sicherung komplett ist, sollte auch noch die System.map gesichert werden.

2.2. LILO konfigurieren

Falls LILO verwendet wird, den gesicherten Kernel in lilo.conf eintragen. Tragen Sie dazu folgende Zeilen am Ende von /etc/lilo.conf ein. Hier wird /boot/ als Kernel-Verzeichnis genommen. Bitte beachten Sie, das richtige Verzeichnis zu benutzen. Und tragen Sie auch die richtige Root-Partition bei root= ein (hier wird /dev/hdb4 benutzt).


#Eintrag fuer alten Kernel:
image = /boot/vmlinuz.old
  root = /dev/hdb4
  label = old

Initialisieren Sie LILO noch NICHT neu.

3. Entpacken der vollen Sourcen


cp linux-2.2.*.tar.* /usr/src
cd /usr/src
mv linux linux.old
tar xvfz linux-2.2.*.tar.gz

Kopieren Sie das Archiv des Linux-Kernels nach /usr/src/. Wechseln Sie nach /usr/src/ Entfernen Sie das aktuelle Verzeichnis linux. Falls es ein Symlink ist, kann man ihn löschen. Ist es jedoch ein Verzeichnis, empfiehlt sich, es umzubenennen. Entpacken Sie nun die Sourcen mit tar. Haben Sie das bzip2-Archiv, dann sind die Optionen xvfz durch xvfj zu ersetzen (bei älteren tar-Versionen xvfI oder xvfy).

4. Installation der Patches


cp patch-2.2.* /usr/src
cd /usr/src
zcat patch-2.2.*.gz | patch -p0 -s -E

Kopieren Sie den Patch nach /usr/src/. Wechseln Sie nach /usr/src/ Installieren Sie den Patch. Haben Sie eine bzip2-Datei, dann verwenden Sie bzcat (oder bz2cat) statt zcat. Zur Sicherheit sollten Sie aber vorher eine Sicherungskopie des Verzeichnisbaumes anlegen, denn es kann ja mal etwas schief gehen und der Kernel läßt sich später nicht mehr richtig compilieren. Zwar können Sie den Patch auch rückgängig machen:


patch -p0 -s < config.in.rej

aber auch das kann schiefgehen. Eine Möglichkeit, den ganzen Patch rückgängig zu machen, gibt es auch noch, indem man einfach ein -R als Parameter anfügt. Doch aus das kann scheitern.

5. Abarbeiten der Datei Changes

Sie müssen erst einmal in das Verzeichnis /usr/src/linux/Documentation wechseln. In der Datei Changes stehen eine Reihe von Versionsnummern von Programmen, die der Kernel benötigt. Sie müssen nun die Programme updaten, wenn nötig. Natürlich nicht alle, es ist unnötig, LOADLIN zu updaten, wenn Sie nicht mit LOADLIN booten. Woher Sie die Programme bekommen, steht auch in der Changes-Datei.

6. Kernel konfigurieren

Wenn dann die Programme auf die gewünschte Version aktualisiert wurden, geht es daran, den Kernel zu konfigurieren. Wechseln Sie zunächst in das Kernel-Verzeichnis (cd /usr/src/linux). Es gibt drei Befehle, die verschiedene Oberflächen zur Konfiguration bieten:

  • make config: Die älteste Methode. Hier wird jeder Treiber einzeln abgefragt. Mit zunehmender Zahl von Treibern wird diese Methode immer zeitaufwendiger.
  • make menuconfig: Das basiert auch auf dem Textmodus. Jedoch ist es menügesteuert und bunt.
  • make xconfig: Das ist eine X-Window-Applikation.

Ich empfehle, make xconfig zu benutzen, da dieses mittlerweile übersichtlicher ist. Manchmal verrutschen Teile des Fensters. Dann sollten Sie make menuconfig benutzen. Hier stehen dann folgende Untermenüs zur Verfügung:

MenüeintragBedeutung
Code maturity level optionsHier wird bestimmt, ob experimentelle Treiber zur Auswahl stehen sollen.
Processor type and featuresHier werden Prozessor-spezifische Einstellungen gemacht.
Loadable module supportHier können Einstellungen für die Kernel-Module gemacht werden. Kernel-Module sind Treiber, die während der Laufzeit zum Kernel zugegeben oder weggenommen werden können. Wenn Sie in diesem SubMenu Kernel module loader wählen, werden Module automatisch geladen, wenn sie gebraucht werden (das ist vorteilhaft).
General setupFür die generellen Kernel-Einstellungen
Plug and Play supportEinstellungen für die Unterstützung von Plug&Play
Block DevicesEinstellungen für Block-Geräte (Festplatte, CD-ROM, Floppy,...)
Networking optionsEinstellungen für das Netzwerk
Telephony SupportEinstellungen für die Telephonie-Unterstützung
SCSI supportEinstellungen für SCSI
Network Device supportEinstellungen für die zu unterstützenden Netzwerk-Geräte und Interfaces
Amateur Radio supportAlle Einstellungen spezifisch für Amateurfunk
IrDA subsystem supportEinstellungen für Infrarot-Schnittstellen
ISDN subsystemEinstellungen für ISDN-Protokolle, ISDN-Karten...
Old CD-ROM driversEinstellungen für nicht IDE/SCSI-CD-ROM-Laufwerke
Character devicesEinstellungen für Drucker, Maus, Joystick, ...
FilesystemsFestlegungen der zu unterstützenden Dateisysteme oder Partitionstabellentypen
Console driversVerschiedene Treiber für den Textmodus
SoundSoundunterstützung
Kernel hackingSehr nützlich, um in das (auch abgetürzte) System einzugreifen... es z.B. beenden

Verlassen Sie das Programm und speichern Sie die Konfiguration.

Editieren Sie Makefile. In etwa der 70. Zeile befindet eine Zeile wie #install_path=/boot. Entfernen Sie das # und tragen Sie den Pfad ein, wo der Kernel installiert werden soll. Speichern Sie ab, und beenden Sie den Editor.

7. Kernel compilieren

Jetzt kommt der einfache Teil, das Compilieren des Kernels. Wechseln Sie zuerst wieder in das Kernelverzeichnis (cd /usr/src/linux/). Lassen Sie zunächst eine Abhängigkeits-Tabelle für das Compilieren anfertigen.


make dep

Anschließend beseitigen Sie unnötige Objekt-Dateien


make clean

Bauen Sie den Kernel


make bzImage

Nur in Ausnahmefällen sollte man noch auf den Befehl make zImage anstelle von make bzImage zurückgreifen. Wenn Sie unter einer anderen Architektur als x86 arbeiten, müssen Sie wahrscheinlich make vmlinux oder ähnliches verwenden.

Generell hier eine kleine Empfehlung: Lagern Sie, wenn möglich, die meisten Optionen und vor allem Treiber als Module aus. Denn wenn Sie z.B. einen Netzwerkkartentreiber direkt in den Kernel compilieren und diesen irgendwann mal durch einen anderen ersetzen wollen, kann es unter Umständen dazu kommen, daß der Kernel mit einer Fehlermeldung abbricht. Der Vorteil der Module besteht darin, daß sie nicht zwingend notwendig sind, also auch zur Laufzeit von Linux geladen und wieder beendet werden können. Sie werden folgendermaßen erstellt:


make modules

Installieren Sie dann die Module:


make modules_install

Dieser Befehl installiert die Module dann in /lib/modules/2.2.*

Die ganze Prozedur noch einmal für Schreibfaule:


make dep clean bzImage modules modules_install

Es kann beim Compilieren manchmal zu einem Abbruch mit anschließender Fehlermeldung kommen. Leider lassen sich diese kaum verallgemeinern, da sie oftmals systemspezifisch sind. Aber die meisten Fehler liegen an nicht installierten Paketen. Es wird z.B. unbedingt gcc benötigt. Auch sollten sie darauf achten, daß die entsprechenden Pfadverweise existieren. Generell sei hier noch erwähnt, daß Sie sich die Fehlermeldung, mit der der Compilierungsprozeß abbricht, genau durchlesen sollten. Hier finden Sie durchaus kleine Hinweise, was schief gelaufen sein könnte. Mir ist es schon passiert, daß ich die config-Datei der Vorgängerversion einfach kopiert habe und nachträglich neue Optionen hinzugefügt wurden und er diese nun nicht finden konnte.

8. Kernel installieren

Wenn Sie mit LILO booten, müssen Sie (wenn Sie sich im Kernel-Verzeichnis befinden) nur make zlilo eingeben, bzw. make bzlilo wenn Sie vorher mit make bzImage compiliert haben. Wollen Sie den Kernel auf eine Diskette bringen (für Anfänger am besten), dann geben sie make zdisk ein, bzw. make bzdisk.

Wenn Sie mit LOADLIN von DOS aus booten, dann kopieren Sie den compilierten Kernel /usr/src/linux/arch/i386/boot/bzImage dahin (und mit demselben Namen), wo ihr alter Kernel war. Das ist normalerweise im Verzeichnis von LOADLIN.EXE.

Beispiel: cp /usr/src/linux/arch/i386/boot/bzImage /dos/LOADLIN/vmlinuz

Sie können es auch auf die "harte Tour" machen: Der ins Binärformat umgesetzte Kernel befindet sich im Verzeichnis /usr/src/linux/arch/i386/boot/ (für PC-kompatible Computer). Dort befindet sich die Datei (b)bzImage. Diese kopieren Sie zusammen mit der Datei System.map, zu finden in /usr/src/linux, in ein Verzeichnis. Danach editieren Sie die Datei /etc/lilo.conf und ändern die Angaben entsprechend, je nachdem wo sich nun der neue Kernel befindet. Die beiden Dateien sollten sich im gleichen Verzeichnis befinden. Hier ein kleines Beispiel:


image=/boot/vmlinuz
        label=linux
        root=/dev/hdb2
        read-only
image=/boot/vmlinuz.old
        label=linux-alt
        root=/dev/hdb2
        read-only
other=/dev/hda1
        label=Windows
        table=/dev/hda

Wichtig ist die Zeile image=/boot/vmlinuz. Hier wird der Kernel eingetragen. Danach finden Sie noch einen Verweis auf den alten Kernel (den Sie vorher umbenannt haben sollten, falls etwas schief geht). Zu guter Letzt sorgt der Befehl

lilo

dafür, daß diese ganzen Einstellungen im Master Boot Record (MBR) der Festplatte gespeichert werden.

 
< Zurück   Weiter >

Scroll-news

Mailingliste:
http://mlists.in-berlin.de/mailman/listinfo/lieo-mlists.in-berlin.de 

 

Das Forum ist online gegangen

 


Who's Online

Aktuell 17 Gäste online

Google AdSense