[LinuxFocus-icon]
Home  |  Plan  |  Index  |  Suchen

Nachrichten | Archiv | Links | Über uns  
Dieses Dokument ist verfübar auf: English  Castellano  Deutsch  Francais  Italiano  Nederlands  Portugues  Russian  Turkce  Korean  

convert to palmConvert to GutenPalm
or to PalmDoc


von Subhasish Ghosh

Über den Autor:

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.


Inhalt:

 

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

[illustration]

Zusammenfassung:

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.



 

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

 

Talkback für diesen Artikel

Jeder Artikel hat seine eigene Seite für Kommentare und Rückmeldungen. Auf dieser Seite kann jeder eigene Kommentare abgeben und die Kommentare anderer Leser sehen:
 Talkback Seite 

Der LinuxFocus Redaktion schreiben
© Subhasish Ghosh, FDL
LinuxFocus.org

Einen Fehler melden oder einen Kommentar an LinuxFocus schicken
Autoren und Übersetzer:
en -> -- Subhasish Ghosh
en -> de Michael Weinrich

2001-06-28, generated by lfparser version 2.16