Kompilieren, Konfigurieren und Installieren eines voll funktionsf�higen, angepassten Linux Kernels

ArticleCategory:

Kernel Corner

AuthorImage:

TranslationInfo:[Author and translation history]

original in en Subhasish Ghosh

en to de Michael Weinrich

AboutTheAuthor:

Mein Name ist Subhasish Ghosh, ich bin 20 Jahre alt und wohne zur Zeit in Indien. Ich studiere Computer-Systems Engineering und bin Computer Professional. Zur Zeit habe ich 6 MCP-Zertifikate (Microsoft Certified Professional), und ein Zertifikat als Microsoft Certified Professional f�r NT 4.0. Ich habe schon eine lange Zeit mit Linux gearbeitet, vor allem mit Red Hat Linux. Zur Zeit bereite ich mich auf die Pr�fung zum Red Hat Linux Certified Engineer(RHCE) vor und plane, in Zukunft in erster Linie mit dem Betriebssystem Linux zu arbeiten.

Abstract:

Hallo zusammen, dieser Artikel bietet euch einen sehr detailierten Schritt-f�r-Schritt-Prozess, der beschreibt, wie ein Red Hat Linux Kernel kompiliert, konfiguriert und schlie�lich installiert wird. Wie wir alle wissen, braucht man einen individuell angepassten Kernel aus einer ganzen Anzahl an Gr�nden, und ich will jetzt nicht auf Details dieser Gr�nde eingehen. Ich werde nur zeigen, wie ein angepasster Kernel kompiliert, konfiguriert und installiert wird. Die unten genannten Schritte sind in erster Linie f�r Red Hat Kernel Anwender gedacht, aber der gleiche Prozess gilt nat�rlich auch f�r die Nutzer anderer Linux Distributionen, gegebenenfalls mit einigen kleinen �nderungen.

ArticleIllustration:[This is the title picture for your article]

[illustration]

ArticleBody:

Einf�hrung

Dies ist eine Einf�hrung f�r das Kompilieren eines Linux Kernels in 27 Schritten. Ich habe alle genannten Schritte auf folgender Computerkonfiguration duchgef�hrt: Compaq Presario 4010 Series Computer, 15.5 GB Festplattenplatz, 96 MB Arbeitsspeicher, 400 MHz Intel Celeron Prozessor, Red Hat Linux 7.0 Distribution Release, zu Grunde liegender Kernel: 2.2.16-22
Unser Ziel wird es sein, einen voll funktionsf�higen individuell angepassten Kernel zu erhalten, nachdem die unten genannten Schritte ausgef�hrt sind. Ich habe zum Beispiel einen angepassten Kernel namens "2.2.16-22ghosh" auf meinem System laufen (weil mein Name Subhasish Ghosh ist, du kannst auch irgendwelche anderen haben und sogar einige zusammen laufen lassen). Also auf zum fr�hlichen Jagen und Kompilieren des Linux Kernels.

Die Schritte

Schritt 1: Melde dich als "root" an und f�hre die folgenden Schritte aus.

Schritt 2: Gib in der Kommandozeile rpm -q kernel-headers kernel-source make dev86 ein.

Schritt 3: Wenn diese RPMs bereits installiert sind, mach bei Schritt 4 weiter. Anderenfalls mounte die Red Hat Linux 7.0 CD-ROM und f�hre ein rpm -Uvh aus, um diese RPMs zu installieren.

Schritt 4: Wenn du ein voll funktionsf�higes X Window System hast, dann tippe startx am Kommandozeilen-Prompt ein. F�r den Fall, dass du kein X Window System konfiguriert hast, w�rde ich pers�nlich dir empfehlen, dies zu tun, bevor du hier weitermachst, weil es die Angelegenheit wesentlich erleichtert. Wenn das X Window System nicht eingerichtet ist, gib "make config" oder "make menuconfig" am Kommandozeilen-Prompt ein. Beachte, dass ich im folgenden davon ausgehe, dass du ein X Window System auf deiner Maschine laufen hast, und deshalb gib jetzt "startx" ein.

Schritt 5: Dann, bezogen auf die GNOME-Umgebung, �ffne das GNOME Terminal und gib: cd /usr/src/linux ein und dr�cke abschlie�end Enter.

Schritt 6: Von /usr/src/linux ausgehend, tippe jetzt make xconfig ein.

Schritt 7: Die Version mit grafischer Oberfl�che von make config wird auf dem Bildschirm erscheinen. Sie bietet dir eine Anzahl an Optionen, die du f�r das Konfigurieren eines angepassten Kernels hast.

Schritt 8: Nun, f�r den Moment w�rde ich dir empfehlen, die meisten Optionen so zu lassen, wie sie sind.

Die standardm��ige Konfiguration ist recht umfangreich. Auf der anderen Seite ist sie so angelegt, dass sie auf den meisten Computern vern�nftig laufen wird. Mein Rat ist es, zun�chst einmal alle Schritte durchzuf�hren, damit du lernst, wie dieser Prozess funktioniert. Danach kannst du dich mit deiner Computer Hardware und ihren Besonderheiten vertraut machen, so dass du genug "Expertenwissen" hast und den Kernel so anpassen kannst, dass er f�r dein System optimal und m�glichst klein ist. Eine guter Ort, um mehr �ber die Eingeweide deines PC zu erfahren, ist das Verzeichnis /proc mit Dateien wie /proc/pci, /proc/interrupts, /proc/modules undsoweiter ...

F�r's erste versuch lieber nicht herumzudaddeln. Zum Testen mach jetzt nur die folgenden �nderungen:

1.Processor Type and Features: W�hle den richtigen Prozessor unter dem du arbeitest, zum Beispiel einen Pentium 2, 3, oder einen Intel Celeron wie in meinem Fall. Zum Beispiel habe ich folgendes gew�hlt: Processor Family: PPro/686MX, Maximum Physical Memory: 1 GB, Math Emulation: Yes, MTRR: Yes, SMP: Yes.

2.�ffne den Filesystems Dialog und nimm dann die folgenden �nderungen vor: Als Beispiel habe ich gew�hlt: DOS FAT fs support: Yes(y), MSDOS fs support: Yes(y), UMSDOS: m, VFAT(Windows 95) support: Yes(y), NTFS filesystem support (read-only): Yes(y), NTFS read-write support(DANGEROUS): No(n). Nachdem du diese �nderungen vorgenommen hast, versichere dich bitte, dass du keine anderen Einstellungen w�hrend deiner Arbeit ver�ndert hast. Die oben genannten �nderungen sind recht harmlos und werden deinem existierenden Linux Kernel keinen Schaden zuf�gen.

3.W�hle im Haupt-Dialog Save and Exit.

Schritt 9: Dann, f�hre ein ls -al vom Pfad /usr/src/linux aus durch.

Schritt 10: Ich bin mir sicher, dass du eine Datei namens "Makefile" sehen wirst. Dies ist eine extrem wichtige Datei f�r den gesamten Kompilierungsprozess. Mach' also auf jeden Fall erst eine Sicherungskopie hiervon, indem du cp Makefile Makefile.bak eingibst.

Schritt 11: Nun gib' folgendes ein: (aus dem Verzeichnis /usr/src/linux heraus) vi Makefile.

Schritt 12: Gehe zur Zeile EXTRAVERSION und ver�ndere sie. Ich habe zum Beispiel aus EXTRAVERSION=-22, die EXTRAVERSION="-22ghosh" gemacht. Du kannst aber nat�rlich auch jeden anderen Namen verwenden.

Schritt 13: Speichere die Datei und beende vi.

Schritt 14: Alle nun folgenden Schritte sollten vom Verzeichnis /usr/src/linux aus gemacht werden. Gib ein: make dep clean, und dr�cke Enter.

Schritt 15: Dann gibt folgendes ein und best�tige es: make bzImage modules. Dies wird eine ganze Weile dauern, also geh' erst einmal 'was trinken, w�hrend alle notwendigen Dateien kompiliert werden. Ich mache f�r gew�hnlich ein Nickerchen w�hrend dieser Zeit, weil ich diesen ganzen Kram mitten in der Nacht durchf�hre.

Schritt 16: Nachdem dieser Schritt beendet ist, wird eine Datei namens "bzImage" im Verzeichnis /usr/src/linux/arch/i386/boot erzeugt worden sein. Geh' also in dieses Verzeichnis und �berpr�fe, ob eine Datei "bzImage" erzeugt wurde, oder nicht. WENN, UND NUR WENN alle Kompilationsschritte richtig ausgef�hrt worden sind und alle Optionen, die in make xconfig ausgew�hlt wurden, richtig sind, wird diese Datei angelegt. Wenn du diese Datei findest, und da gehe ich jetzt einmal ganz stark von aus, kannst du schon einmal anfangen, dich zu freuen, denn du hast schon 75 % der Schlacht gewonnen. Wenn du die Datei nicht sehen kannst, tut es mir leid, aber du musst wohl irgendwo einen Fehler gemacht haben. Mach' eine Pause und f�hre alle Schritte noch einmal von Anfang an aus. Ich bin mir sicher, dass du dann Erfolg hast.

Schritt 17: Gib' nun ein (wieder vom Verzeichnis /usr/src/linux aus): cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.2.16-22ghosh und dr�cke Enter.

Schritt 18: Nun tippe: cp System.map /boot/System.map-2.2.16-22ghosh
Obwohl es nicht zwingend erforderlich ist, rate ich dir, die Kernel-Konfigurations-Datei (/usr/src/linux/.config) zu sichern, so dass Du eine Referenz f�r k�nftige Kernelanpasssungen hast und nicht jede Einzelheit wieder neu konfigurieren musst. Das grafische Konfigurationsfenster(make xconfig) bietet eine M�glichkeit, eine Konfigurationsdatei zu laden. Um eine Konfigurationsdatei zu sichern, tippe:
cp /usr/src/linux/.config /boot/Config-2.2.16-22ghosh.

Schritt 19: Dann gib folgendes ein: make modules_install und dr�cke wieder Enter. Nun wirst du sehen, wie die ganzen Module in ein neu angepasstes Verzeichnis installiert werden.

Schritt 20: Nun tippe: mkinitrd /boot/initrd-2.2.16-22ghosh.img 2.2.16-22ghosh ...

Schritt 21: ... und dann: vi /etc/lilo.conf Dort f�ge den folgenden Eintrag hinzu:

image=/boot/vmlinuz-2.2.16-22ghosh

label=GhoshKernel
initrd=/boot/initrd-2.2.16-22ghosh.img
root=/dev/hdc5
read-only

Schritt 22: Speichere die Datei und verlasse vi. Beachte, dass du die Eintr�ge in der lilo.conf-Datei so �ndern kannst, wie es dir gef�llt. root sollte das Wurzelverzeichnis deines Systems sein, bei meiner Maschine ist es halt /dev/hdc5. Also f�ge die Informationen Deines eigenen Systems ein. Der Befehl
df | grep '/$'
sagt dir, wo dein Wurzelverzeichnis ist. Beachte die Hochkommata um den Ausdruck hinter grep!

Schritt 23: Gib ein: /sbin/lilo -v -v

Schritt 24: Lies die ganzen Informationen auf dem Bildschirm durch. Wenn es keine Fehlermeldungen gibt, hast Du es geschafft. Herzlichen Gl�ckwunsch!!!!

Schritt 25: Starte dein System neu, indem du /sbin/reboot oder /sbin/shutdown -r now eingibst.

Schritt 26: Dr�cke beim Startbildschirm die Tab-Taste (oder Strg-X, wenn du den LILO Startbildschirm hast), und du kannst den Eintrag "GhoshKernel" neben den anderen, die es schon vorher gab, sehen.

Schritt 27: Gib ein: GhoshKernel und dr�cke Enter. Der voll funktionsf�hige, angepasste Kernel wird dein System booten. Du hast jetzt einen voll funktionsf�higen, an deine Bed�rfnisse angepassten, Kernel auf deinem System laufen.

Das Ergebnis

Beobachte den Boot-Vorgang, die Meldungen auf dem Bildschirm und sieh' nach, ob es Fehlermeldungen gibt. Sp�ter untersuche ebenfalls die Meldungen in der Datei /var/log/boot.log und die Ausgabe des Befehls dmesg. Wenn es keine Fehler gibt, ist es gut, der Kernel arbeitet prima mit Deiner Hardware zusammen. Sehr gut!!

Nachdem du dich nochmal angemeldet hast, tippe: uname -a und dr�cke Enter. Du kannst den folgenden Eintrag auf dem Bildschirm sehen: 2.2.16-22ghosh gefolgt vom Datum des Kompilierens und einigen anderen Informationen. Dies beweist, dass du einen angepassten Kernel benutzt. Das ist alles. Erinnere dich auch, dass du eine so grosse Anzahl an Kerneln haben kannst, wie du willst. F�r den Fall, dass dies bei euch Kumpels (und Kumpelinnen) nicht funktioniert oder Ihr Probleme habt, schickt mir bitte eine e-mail mit Fragen oder Vorschl�gen an [email protected] Ich w�rde mich wirklich freuen, von euch zu h�ren und euch zu helfen und ich hoffe, dass dieser Artikel jedem da drau�en hilft, der einen voll funktionsf�higen an seine Bed�rfnisse angepassten, Kernel laufen lassen will. Passt gut auf euch auf.
Subhasish Ghosh