1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188
|
<!-- retain these comments for translator revision tracking -->
<!-- original version: 64916 -->
<sect1 arch="linux-any" id="kernel-baking"><title>Einen neuen Kernel kompilieren</title>
<para>
Warum sollte jemand einen neuen, eigenen Kernel kompilieren wollen?
Dies ist oft nicht nötig, da der &debian;-Standardkernel die meisten
Konfigurationen bedient. Auch bietet &debian; häufig verschiedene
alternative Kernel an. Sie sollten also vielleicht erst prüfen, ob ein
alternatives Kernel-Image verfügbar ist, das besser zu Ihrer Hardware
passt. Allerdings kann es unter folgenden Umständen trotzdem nützlich
sein, einen neuen, eigenen Kernel zu kompilieren:
<itemizedlist>
<listitem><para>
spezielle Hardware-Anforderungen bewältigen oder Hardware-Konflikte mit den
vorkompilierten Kernel
</para></listitem>
<listitem><para>
Kernel-Optionen nutzen, die im Standard-Kernel nicht unterstützt werden,
wie z.B. Unterstützung für extrem viel Arbeitsspeicher
(high memory support)
</para></listitem>
<listitem><para>
den Kernel optimieren durch Entfernen von nicht benötigten Treibern,
um die Boot-Zeit zu verkürzen
</para></listitem>
<listitem><para>
einen monolithischen Kernel erstellen statt eines modularen
</para></listitem>
<listitem><para>
einen aktualisierten oder Entwickler-Kernel verwenden
</para></listitem>
<listitem><para>
mehr über Linux-Kernel lernen
</para></listitem>
</itemizedlist>
</para>
<sect2><title>Kernel-Image-Verwaltung</title>
<para>
Sie müssen keine Angst davor haben auszuprobieren, einen eigenen Kernel
zu kompilieren. Es macht Spaß und lohnt sich.
</para><para>
Um auf &debian;-Art einen Kernel zu kompilieren, benötigen
Sie ein paar Pakete:
<classname>fakeroot</classname>, <classname>kernel-package</classname>,
<classname>linux-source-2.6</classname>
und ein paar weitere, die vielleicht schon installiert sind
(<filename>/usr/share/doc/kernel-package/README.gz</filename> enthält
die komplette Liste).
</para><para>
Diese Methode erstellt ein .deb-Paket aus den Kernel-Quellen und, falls
Sie Nicht-Standard-Module verwenden, auch ein synchrones, vom Kernel-Paket
abhängiges .deb-Paket für diese
Module. Dies ist ein besserer Weg, die Kernel-Images zu verwalten,
verglichen mit der Nicht-&debian;-Methode, einen Kernel zu erzeugen;
<filename>/boot</filename> enthält den Kernel, die dazugehörige
System.map und ein Log der aktiven Konfigurationsdatei für den Bau des
Kernel.
</para><para>
Beachten Sie, dass Sie Ihren Kernel nicht auf <quote>&debian;-Art</quote> kompilieren
<emphasis>müssen</emphasis>, aber wir meinen, dass es erheblich sicherer
und einfacher ist, das Paketsystem zur Verwaltung der Kernel zu verwenden.
Sie können Ihre Kernel-Quellen auch direkt von Linus beziehen statt aus
dem Paket <classname>linux-source-2.6</classname>
und trotzdem die <classname>kernel-package</classname>-Methode zum
Kompilieren nutzen.
</para><para>
Sie finden eine komplette Dokumentation zur Nutzung von
<classname>kernel-package</classname> unter
<filename>/usr/share/doc/kernel-package</filename>. Hier im
Installationshandbuch geben wir nur eine kurze Einführung.
</para><para>
Wir gehen davon aus, dass Sie freien Zugriff auf Ihren Rechner haben
und die Kernel-Quellen irgendwo in Ihr Home-Verzeichnis entpacken werden<footnote>
<para>
Es gibt auch andere Verzeichnisse, in die Sie die Kernelquellen entpacken und
wo Sie Ihren eigenen Kernel bauen können, aber dies ist der einfachste Weg,
da er keine speziellen Berechtigungen erfordert.
</para>
</footnote>. Ebenso gehen wird davon aus, dass Ihre zu bauende Kernel-Version
&kernelversion; ist. Vergewissern Sie sich, dass Sie sich in dem Verzeichnis
befinden, in das Sie die Kernel-Quellen entpacken möchten und extrahieren Sie
sie mittels
<userinput>tar xjf /usr/src/linux-source-&kernelversion;.tar.bz2</userinput>.
Wechseln Sie in das neu erstellte Verzeichnis
<filename>linux-source-&kernelversion;</filename>.
</para><para>
Sie können jetzt Ihren Kernel konfigurieren. Führen Sie <userinput>make
xconfig</userinput> aus, wenn X11 installiert, konfiguriert und gestartet ist;
andernfalls nehmen Sie <userinput>make menuconfig</userinput> (hierzu muss
das Paket <classname>libncurses5-dev</classname> installiert sein). Nehmen Sie sich
die Zeit, die Onlinehilfe zu lesen, und wählen Sie sorgfältig die Optionen aus.
Wenn Sie Zweifel haben, ist es typischerweise am besten, den zweifelhaften
Gerätetreiber mit in den Kernel zu integrieren (ein Gerätetreiber ist ein
Stück Software, das Hardware-Peripherie verwaltet, wie z.B. Ethernet-Karten,
SCSI-Controller und so weiter). Seien Sie vorsichtig: andere Optionen, die nicht
zu einer bestimmten Hardware-Komponente gehören, sollten Sie auf dem Standardwert
belassen, wenn Sie sie nicht verstehen. Vergessen Sie nicht, den
<quote>Kernel module loader</quote> unter <quote>Loadable module support</quote>
zu aktivieren (diese Option ist standardmäßig nicht aktiv). Tun Sie dies nicht, wird
Ihr &debian;-System Probleme machen.
</para><para>
Säubern Sie den Kernel-Quellbaum und setzen Sie die
<classname>kernel-package</classname>-Parameter zurück. Dies erledigen Sie mit
<userinput>make-kpkg clean</userinput>.
</para><para>
Kompilieren Sie jetzt den Kernel mit:
<userinput>fakeroot make-kpkg --initrd --revision=custom.1.0 kernel_image</userinput>.
Die Versionsnummer <quote>1.0</quote> können Sie nach Belieben ändern. Sie wird nur
von Ihnen selbst verwendet, um Ihre verschiedenen Kernel zu verwalten.
Ebenso können Sie jedes andere Wort statt <quote>custom</quote> verwenden (z.B. den
Host-Namen des Rechners). Die Kernel-Kompilierung könnte eine ganze Weile dauern,
abhängig von der Leistungsfähigkeit Ihres Rechners.
</para><para>
Sobald die Kompilierung beendet ist, können Sie Ihren eigenen Kernel wie
jedes andere Paket installieren. Tippen Sie als root ein:
<userinput>dpkg -i
../&kernelpackage;-&kernelversion;-<replaceable>subarchitecture</replaceable>_custom.1.0_&architecture;.deb</userinput>.
Der Teil <replaceable>subarchitecture</replaceable> im Dateinamen ist eine
optionale Bezeichnung für die Unterarchitektur,<phrase arch="i386"> wie
z.B. <quote>686</quote>,</phrase> abhängig
davon, welche Kernel-Optionen Sie gesetzt haben.
<userinput>dpkg -i ...</userinput> installiert den Kernel
zusammen mit ein paar anderen dazugehörigen Dateien. Zum Beispiel wird
die <filename>System.map</filename> korrekt installiert
(dies ist nützlich für die Fehlersuche bei Kernel-Problemen) und auch
<filename>/boot/config-&kernelversion;</filename> wird installiert,
sie enthält Ihre aktuelle Konfiguration. Ihr neues Kernel-Paket ist
ebenfalls clever genug, automatisch Ihren Bootloader zu aktualisieren,
so dass der neue Kernel benutzt wird. Falls Sie auch ein Modul-Paket
erstellt haben, müssen Sie auch dieses Paket noch installieren.
</para><para>
Jetzt ist es Zeit, einen Systemneustart zu machen: lesen Sie aufmerksam
alle Warnungen, die die vorherigen Schritte unter Umständen erzeugt haben,
und tippen Sie dann <userinput>shutdown -r now</userinput> ein.
</para><para>
Mehr Infos über &debian;-Kernel und das Kompilieren eines Kernels finden Sie im
<ulink url="&url-kernel-handbook;">Debian Linux Kernel Handbook</ulink>.
Die tolle Dokumentation in <filename>/usr/share/doc/kernel-package</filename>
enthält zusätzliche Informationen über <classname>kernel-package</classname>.
</para>
</sect2>
</sect1>
|