Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Einleitung
1 Linux
2 Ubuntu Linux
3 Von »Warty« bis »Edgy«
4 Optimale Nutzung der beiliegenden DVDs
5 Ubuntu erleben – Die Installation
6 Erste Schritte
7 Ubuntu
8 Kubuntu
9 Xubuntu
10 Edubuntu
11 Hardwarekonfiguration
12 Ubuntu und aktuelle Hardware
13 Software
14 Programme installieren
15 Programmierung und Design
16 Migration von Windows zu Ubuntu
17 Netzwerktechnik
18 Kompilieren und Optimieren
19 Das System im Detail
20 Sicherheit
21 Virtualisierung
22 Übersicht: Software für (K)Ubuntu
23 Wo bekomme ich weitere Hilfe?
24 Befehlsreferenz Ubuntu Linux
A Häufig gestellte Fragen
B Glossar
C Mark Shuttleworth
D Deutsche Übersetzung der GPL
Stichwort

Download:
- ZIP, ca. 29,4 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Ubuntu GNU/Linux von Marcus Fischer
Grundlagen, Anwendung, Administration
Buch: Ubuntu GNU/Linux

Ubuntu GNU/Linux
2., akt. und erw. Aufl., mit 2 DVDs
913 S., 39,90 Euro
Galileo Computing
ISBN 978-3-89842-848-4
gp 18 Kompilieren und Optimieren
  gp 18.1 Sekundärsoftware aus Quellen
    gp 18.1.1 Der Linux-Dreisprung
    gp 18.1.2 Reversible Installation
    gp 18.1.3 Installation unter Ubuntu
    gp 18.1.4 Alternativen: dh_make und fakeroot
    gp 18.1.5 Zwei Beispiele zur Installation
  gp 18.2 Einen eigenen Kernel bauen
    gp 18.2.1 Vorbemerkungen
    gp 18.2.2 Vorbereitungen
    gp 18.2.3 Kernel konfigurieren
    gp 18.2.4 Kernel kompilieren
    gp 18.2.5 Kernel installieren und booten


Galileo Computing

18.2 Einen eigenen Kernel bauen  downtop


Galileo Computing

18.2.1 Vorbemerkungen  downtop

Die Anleitung richtet sich an fortgeschrittene Anwender. Dies bedeutet, dass Sie im Normalfall schon über einige Erfahrung verfügen sollten, bevor Sie sich an das Kernelbauen heranwagen. Sie machen hierbei eine Operation »am offenen Herzen« Ihres Systems. Nun, der erfahrene Anwender wird einwerfen, dass man doch trotzdem noch den alten Kernel starten kann, falls der neue nicht funktionieren sollte. Dies stimmt zwar, aber in GRUB den alten Kernel auszuwählen ist auch das geringste Problem bei der ganzen Sache ;-)

Zuerst sollten Sie ein paar grundsätzliche Dinge beachten:

  • Behalten Sie stets eine Sicherungskopie Ihres alten und funktionierenden Kernels. Falls etwas schiefgeht, kann man das System immer noch benutzen und muss nicht mit einer Rettungs-CD arbeiten.
  • Man sollte, bevor man überhaupt an das Kernelselbstbacken herangeht, herausfinden, welche Hardware im Rechner verbaut ist.
  • Lesen Sie bitte die Hilfebeschreibungen zu den Kerneloptionen durch. Wenn Sie bei irgendeiner Option unsicher sind, was Sie tun sollten, dann geben Sie dies auch offen zu und tippen bei der entsprechenden Abfrage Yes.
  • Alle Module und Optionen, die man nicht unbedingt benötigt, kann man abwählen. Wer z. B. keinen SCSI-Adapter hat, braucht auch keine Module dafür einzubinden.
  • Alles, was Sie nicht oft benötigen werden, sollte als Modul eingebunden werden, z. B. USB-Geräte. Möchten Sie allerdings das System später von einem USB-Stick booten, so kann hier das feste Einbinden in den Kernel notwendig sein.
  • Das Dateisystem für die Root-Partition ist fest in den Kernel einzubinden. Alle anderen Dateisysteme, die man sonst noch benötigt, können als Modul eingebunden werden. Das erspart einem das Erstellen einer »Initial Ramdisk«. Die zugehörige Option können Sie dann getrost abwählen.
  • Wer eine USB-Tastatur und/oder Maus besitzt, sollte den Treiber für das USB-Subsystem, den Treiber für seinen USB-Baustein und die Treiber für HID-Geräte fest einbinden. Eventuell können Sie dann die Treiber für den PS/2-Anschluss weglassen. Dies hätte den Vorteil, dass ein so getunter Kernel viel weniger Platz benötigt und Hotplug viel weniger Zeit beim Starten braucht.

Wozu das Ganze?

Manchmal benötigt man einen angepassten Kernel mit zusätzlichen Features oder ein bestimmter Treiber soll fest eingebaut werden. In diesen Fällen müssen Sie sich einen eigenen Kernel aus den Quellen kompilieren. Wir werden im Folgenden den typischen Weg zum Kernelbauen unter Ubuntu für den Kernel

2.6.x beschreiten. Hierzu sind mehrere Schritte nötig, die wir nachfolgend einzeln abhaken werden.

Einen Kernel zu bauen ist nicht gerade trivial. Wenn Sie neu bei Linux sind, dann sollten Sie dies nicht in einer produktiven Umgebung tun, es können leicht Daten verloren gehen, wenn irgendetwas schiefgeht.


Galileo Computing

18.2.2 Vorbereitungen  downtop

Kontrollieren Sie bitte zuerst, ob folgende Pakete installiert sind:

  • build-essential
  • kernel-package

Je nachdem, in welcher Umgebung Sie die Kernelkonfiguration vornehmen möchten, sollten die folgenden Pakete installiert werden:

  • libncurses5-dev
    • für eine ncurses-basierte Oberfläche zur Konfiguration innerhalb einer Konsole.
  • libgtk2.0-dev, libglib2.0-dev und libglade2-dev
    • falls Sie eine GTK- Oberfläche zur Kernelkonfiguration bevorzugen.
  • libqt3-mt-dev
    • sollten KDE-Anwender bevorzugen. Dadurch lässt sich der Kernel in einer Qt-Oberfläche anpassen.

Wenn Ihnen eines der obigen Pakete fehlen sollte, dann installieren Sie dieses bitte per apt-get nach.

Als Nächstes werden die Quellen des Ubuntu-Kernels benötigt. Diese Quellen sind als Paket erhältlich und können mit apt-get oder Synaptic installiert werden. Sie erkennen dieses Paket an der Bezeichnung

»linux-source-x.x.x«. Die beste Basis ist das Quellpaket, dessen Versionsnummer dem derzeit benutzten Kernel entspricht. Sie erhalten die aktuelle Versionsnummer, wenn Sie im Terminal

user$ uname -r 
2.6.12–9-k7-smp

eingeben. Was zählt, sind die ersten drei Zahlen, also im obigen Fall

2.6.12. Die Quellen dieses Kernels würden bei der aktuellen Version in jedem Fall installiert, wenn Sie Folgendes in einer Konsole eingeben:

user$ sudo apt-get install linux-source-2.6.12

In den Ubuntu-Quellen sind auch etliche Ubuntu-spezifische Patches enthalten. Es steht Ihnen natürlich frei, sich einen Original-(Vanilla-)Kernel von http://www.kernel.org zu beschaffen.

Optional: Kernelpatches herunterladen

Meist werden Sie den Kernel patchen wollen, um gewisse Funktionalitäten in den Kernel zu integrieren, die im Standardkernel (noch) nicht enthalten sind. In diesem Fall wissen Sie wahrscheinlich, welchen Patch Sie benötigen. Besonders komfortabel ist es natürlich, wenn der benötigte Patch in einem Repository zu bekommen ist. Einige Patches finden sich beispielsweise im Universe-Repository. Achten Sie hierbei wie bei allen Patches auf die richtige Versionsnummer. Für jeden Kernel gibt es einen passenden Patch.

Kernelquellen auspacken

Die Kernelquellen befinden sich nach der Installation als tar.bz2-Archiv im Verzeichnis /usr/src. Mit

user$ cd /usr/src 
user$ sudo tar -xjf linux-source-<Versionsnummer>

und

user$ cd linux-source-<Versionsnummer>

entpacken Sie die Kernelquellen und wechseln ins Quellverzeichnis.

Optional: Kernel patchen

Patches, die über das Paketmanagement installiert wurden, befinden sich in einem Unterverzeichnis von /usr/src/kernel-patches/diffs. Sie liegen üblicherweise als gz- oder bz2-komprimierte Diff-Datei vor (*.diff. gz oder *.diff.bz2). Sie lassen sich mit folgendem Befehl einbauen:

user$ gunzip -c /usr/src/kernel-patches/diffs/\ 
<Patchverzeichnis>/<Patchdatei> | \ 
sudo patch -p1

Bei bz2-Kompression ist gunzip durch bunzip2 zu ersetzen.


Galileo Computing

18.2.3 Kernel konfigurieren  downtop

Die Konfiguration des Kernels wird im aktuellen Kernelquellverzeichnis in der Datei .config gespeichert. Es ist stets ratsam, von der aktuellen Kernelkonfiguration auszugehen. Diese findet man im Verzeichnis /boot/config. Sie wird folgendermaßen kopiert:

user$ sudo cp /boot/config-<Kernelversion> .config

Alternativ kann die Konfiguration des laufenden Kernels meist auch aus einer komprimierten Datei in /proc gelesen werden. Dies ist im Standard-Kernel von Ubuntu nicht aktiviert, bei einem selbst kompilierten kann man dieses Feature aber aktivieren:

user$ sudo zcat /proc/config.gz > .config

Auf der Basis dieser Konfiguration kann man nun eigene Einstellungen vornehmen. Je nach den am Anfang installierten Bibliotheken geht das z. B. für die GTK-Umgebung mit

user$ sudo make gconfig

Die entsprechenden Aufrufe für die Konsole bzw. die QT-Oberfläche lauten:

user$ sudo make menuconfig

bzw.

user$ sudo make xconfig

Wer eine minimale Standardkonfiguration erzeugen möchte, der wählt einfach

user$ sudo make defconfig

Beim Wechsel auf eine neue Kernelversion kann die Datei .config aus dem alten Kernelverzeichnis in das neue kopiert werden. Nach dem Wechsel in dieses neue Verzeichnis kann

user$ sudo make oldconfig

aufgerufen werden, wobei dann nur die Einstellungen für die neuen Kernel-Features abgefragt werden.

Die Konfiguration des Kernels innerhalb der graphischen Oberfläche (Abbildung 18.2) erfolgt nun durch einfaches (xconfig) bzw. doppeltes (gconfig) Anklicken der entsprechenden Optionen. Nach dem Fertigstellen der Konfiguration vergessen Sie bitte nicht, die Änderungen zu sichern (Save in Abbildung 18.2).

Abbildung 18.2    Konfiguration des Kernels mit gconfig


Galileo Computing

18.2.4 Kernel kompilieren  downtop

Nach Abschluss der obigen Konfiguration muss der Kernel kompiliert werden. Mit dem folgenden Befehl erzeugen Sie auch gleich einfach installierbare .deb-Pakete für das Kernelimage, die Kernelheader, das Kernel-Doc und die Kernel-Source:

user$ sudo make-kpkg ---initrd \ 
---revision <meineVersion> binary

Der Parameter binary sorgt für die Erstellung der genannten

*.deb-Pakete. Wenn Sie nur ein Kernelimage-Paket benötigen, können Sie binary durch kernel_image ersetzen. Bei Angabe

des optionalen Parameters revision ist darauf zu achten, dass die Bezeichnung sich nicht mit einem im System vorhandenen Kernel überschneidet. Weitere Möglichkeiten sind in der Manpage von make-kpkg aufgeführt.

Sollte es während des Laufs von make-kpkg zu einer Fehlermeldung kommen, so können Sie versuchen, den Kernel in folgenden einzelnen Schritten zu übersetzen, um den Fehler genauer zu lokalisieren:

user$ sudo make clean bzImage 
user$ sudo make-kpkg --initrd kernel_image 
user$ sudo make 
user$ sudo make-kpkg --initrd binary

Einige Anmerkungen

Eine Initial Ramdisk ist nicht notwendig, wenn man seine Hardware kennt (und das sollte man, wenn man seinen eigenen Kernel kompiliert!). In diesem Falle deaktiviert man in der Konfigurationsphase die Unterstützung für initrd und bindet die Treiber für das Root-Laufwerk (das sind meist die ATAPI/IDE-Treiber für die Festplatte) fest und nicht als Modul ein. Hilfreich ist auch das feste Einbinden von USB, wenn man eine USB-Tastatur und/oder -Maus benutzt. Möchte man eine externe Firewire-Festplatte schon beim Booten einbinden, so müssen auch die Firewire-Treiber fest in den Kernel kompiliert werden. Danach startet man das Kompilieren mit

user$ sudo make-kpkg binary

Nach einer Änderung der Konfiguration kann es nötig sein, vor einem erneuten make-kpkg einmal sudo make auszuführen. Wird der Kernel nochmals gepatcht, so sollten bereits übersetzte Teile aufgeräumt werden. Nur dann wird beim nächsten Mal alles neu kompiliert:

user$ sudo make clean

Wurde der Kernel mittels make-kpkg kompiliert, so ist es auch empfehlenswert, alle Teile mit

user$ sudo make-kpkg clean

aufzuräumen. Dadurch werden zum Beispiel auch die Stamp-Dateien gelöscht.


Galileo Computing

18.2.5 Kernel installieren und booten  toptop

Das erzeugte Kernelpaket können Sie nun ganz einfach mit dem Befehl

user$ sudo dpkg -i ../kernel-image-<neueVersion>.deb

installieren. Nach einem Neustart des Systems lässt sich der neue Kernel im Bootmenü auswählen.

Sollte sich der neue Kernel nach einer Erprobungsphase bewährt haben, können Sie den alten Kernel mit folgendem Befehl aus dem System entfernen:

user$ sudo dpkg -r kernel-image-<alteVersion>

Für den Anfang empfiehlt es sich jedoch, den alten Kernel parallel zum neuen beizubehalten, um sich nicht einer wichtigen Rettungsmöglichkeit zu berauben.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  
  Zum Katalog
Zum Katalog: Ubuntu GNU/Linux






Ubuntu GNU/Linux
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 3 Stunden
 Ubuntu-Training
In 28 kostenlosen Video-Lektionen macht Sie Rainer Hattenhauer mit Ubuntu GNU/Linux vertraut.
Zu den Videos

 Buchtipps
Zum Katalog: Ubuntu GNU/Linux - Das Video-Training für Einsteiger und Umsteiger






 Ubuntu GNU/Linux
 Das Video-Training


Zum Katalog: Linux






 Linux


Zum Katalog: Debian GNU/Linux Etch






 Debian GNU/Linux


Zum Katalog: OpenOffice.org 2.0 - Einstieg und Umstieg






 OpenOffice.org 2.0
 Einstieg und Umstieg


Zum Katalog: OpenOffice.org 2.0 - Video-Training






 OpenOffice.org 2.0
 Video-Training


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de