1
<!-- retain these comments for translator revision tracking -->
2
<!-- original version: 28672 -->
4
<sect1 id="kernel-baking"><title>Einen neuen Kernel kompilieren</title>
7
Warum sollte jemand einen neuen, eigenen Kernel kompilieren wollen?
8
Es ist oft nicht nötig, da der Standardkernel in Debian die meisten
9
Konfigurationen bedient. Allerdings kann es unter folgenden Umständen nützlich
10
sein, einen neuen Kernel zu kompilieren:
15
spezielle Hardwareanforderungen bewältigen oder Hardwarekonflikte mit den
16
vorkompilierten Kernel
21
Hardware oder zusätzliche Optionen unterstützen, die im Standardkernel nicht
22
enthalten sind, wie z.B. APM oder SMP
27
den Kernel optimieren durch Entfernen von nicht benötigten Treibern,
28
um die Bootzeit zu verkürzen
33
Optionen des Kernels nutzen, die vom Standardkernel nicht unterstützt werden,
34
wie z.B. Unterstützung für viel Arbeitsspeicher (high memory support)
39
einen aktualisierten oder Entwicklerkernel verwenden
44
seine Freunde beeindrucken, neue Sachen ausprobieren
51
<sect2><title>Kernel-Image-Verwaltung</title>
54
Sie brauchen keine Angst davor zu haben, auszuprobieren, einen eigenen Kernel
55
zu kompilieren. Es macht Spaß und lohnt sich.
59
Um auf die debiansche Art einen Kernel zu kompilieren, benötigen
60
Sie ein paar Pakete: <classname>kernel-package</classname>,
61
<classname>kernel-source-&kernelversion;</classname> (dies war die neueste Version
62
zum Zeitpunkt, als dies geschrieben wurde), <classname>fakeroot</classname>
63
und ein paar weitere, die vielleicht schon installiert sind
64
(<filename>/usr/share/doc/kernel-package/README.gz</filename> enthält die
69
Diese Methode erstellt ein .deb-Paket aus den Kernelquellen und, falls
70
Sie Nicht-Standard-Module verwenden, auch ein synchrones abhängiges .deb für diese
71
Module. Es ist ein besserer Weg, um die Kernel-Images zu verwalten
72
(verglichen mit der Nicht-Debian-Methode, einen Kernel zu erzeugen);
73
<filename>/boot</filename> enthält den Kernel, die dazugehörige
74
System.map und ein Log der aktiven Konfigurationsdatei für den Bau des
79
Beachten Sie, dass Sie Ihren Kernel nicht auf <quote>Debian-Art</quote> kompilieren
80
<emphasis>müssen</emphasis>, aber wir meinen, dass es erheblich sicherer
81
und einfacher ist, das Paketsystem zur Verwaltung der Kernel zu verwenden.
82
Sie können auch Ihre Kernelquellen direkt von Linus beziehen statt aus
83
dem <classname>kernel-source-&kernelversion;</classname>-Paket, aber
84
trotzdem die <classname>kernel-package</classname>-Methode zum
89
Sie finden eine komplette Dokumentation zur Nutzung von
90
<classname>kernel-package</classname> unter
91
<filename>/usr/share/doc/kernel-package</filename>. Dieses Kapitel gibt
92
nur eine kurze Einführung.
96
Wir gehen hier davon aus, dass Sie freien Zugriff auf Ihren Rechner haben
97
und die Kernelquellen irgendwo in Ihr Home-Verzeichnis entpacken werden<footnote>
101
Es gibt auch andere Verzeichnisse, in die Sie die Kernelquellen entpacken und
102
wo Sie Ihren eigenen Kernel bauen können, aber dieses ist der einfachste Weg,
103
da er keine speziellen Berechtigungen erfordert.
107
</footnote>. Ebenso gehen wird davon aus, dass Ihre zu bauende Kernel-Version
108
&kernelversion; ist. Vergewissern Sie sich, dass Sie sich in dem Verzeichnis
109
befinden, in das Sie die Kernelquellen entpacken möchten und extrahieren Sie
110
sie mittels <userinput>tar xjf /usr/src/kernel-source-&kernelversion;.tar.bz2</userinput>.
111
Wechseln Sie in das Verzeichnis <filename>kernel-source-&kernelversion;</filename>,
116
Sie können jetzt Ihren Kernel konfigurieren. Führen Sie <userinput>make
117
xconfig</userinput> aus, wenn X11 installiert, konfiguriert und gestartet ist;
118
andernfalls nehmen Sie <userinput>make menuconfig</userinput> (hierzu muss
119
das Paket <classname>libncurses5-dev</classname> installiert sein). Nehmen Sie sich
120
die Zeit, die Onlinehilfe zu lesen, und wählen Sie sorgfältig die Optionen aus.
121
Wenn Sie Zweifel haben, ist es typischerweise besser, den zweifelhaften
122
Gerätetreiber mit in den Kernel zu integrieren (ein Gerätetreiber ist ein
123
Stück Software, das Hardware-Peripherie verwaltet, wie z.B. Ethernetkarten,
124
SCSI-Controller und so weiter). Seien Sie vorsichtig: andere Optionen, die nicht
125
zu einer bestimmten Hardwarekomponente gehören, sollten Sie auf dem Standardwert
126
belassen, wenn Sie sie nicht verstehen. Vergessen Sie nicht, den
127
<quote>Kernel module loader</quote> unter <quote>Loadable module support</quote>
128
zu aktivieren (diese Option ist standardmäßig nicht aktiv). Tun Sie dies nicht, wird
129
Ihr Debian-System Probleme machen.
133
Säubern Sie den Kernelquellen-Baum und setzen Sie die
134
<classname>kernel-package</classname>-Parameter zurück. Dies erledigen Sie mit
135
<userinput>make-kpkg clean</userinput>.
139
Kompilieren Sie jetzt den Kernel mit:
140
<userinput>fakeroot make-kpkg --revision=custom.1.0 kernel_image</userinput>.
141
Die Versionsnummer <quote>1.0</quote> können Sie nach Belieben ändern. Sie wird nur
142
von Ihnen selbst verwendet, um Ihre verschiedenen Kernel zu verwalten.
143
Ebenso können Sie jedes andere Wort statt <quote>custom</quote> verwenden (z.B. den
144
Host-Namen des Rechners). Die Kernelkompilierung könnte eine ganze Weile dauern,
145
abhängig von der Leistungsfähigkeit Ihres Rechners.
147
</para><para condition="supports-pcmcia">
149
Wenn Sie PCMCIA-Support benötigen, müssen Sie ebenfalls das
150
<classname>pcmcia-source</classname>-Paket installieren. Entpacken Sie die
151
gzip-tar-Datei als root in das Verzeichnis <filename>/usr/src</filename>
152
(es ist wichtig, dass die Module dort gefunden werden, wo sie gesucht werden,
153
nämlich in <filename>/usr/src/modules</filename>). Führen Sie dann als root
154
<userinput>make-kpkg modules_image</userinput> aus.
158
Sobald die Kompilierung beendet ist, können Sie Ihren eigenen Kernel wie
159
ein Paket installieren. Tippen Sie als root <userinput>dpkg -i
160
../kernel-image-&kernelversion;-<replaceable>subarchitecture</replaceable>_custom.1.0_&architecture;.deb</userinput>
161
ein. Der Teil <replaceable>subarchitecture</replaceable> im Dateinamen ist eine
162
optionale Bezeichnung für die Unterarchitektur, <phrase arch="i386"> wie
163
z.B. <quote>i586</quote>, </phrase>
164
abhängig davon, welche Kerneloptionen Sie gesetzt haben.
165
<userinput>dpkg -i kernel-image...</userinput> installiert den Kernel
166
zusammen mit ein paar anderen dazugehörigen Dateien. Zum Beispiel wird
167
die <filename>System.map</filename> korrekt installiert
168
(dies ist nützlich für die Fehlersuche bei Kernelproblemen) und
169
<filename>/boot/config-&kernelversion;</filename> wird installiert,
170
sie enthält Ihre aktuelle Konfiguration. Ihr neues
171
<classname>kernel-image-&kernelversion;</classname>-Paket ist ebenfalls
172
clever genug, automatisch eine Aktualisierung Ihres Bootloaders zu starten,
173
die es Ihnen erlaubt, den neuen Kernel zu booten, ohne den Bootloader manuell
174
neu konfigurieren zu müssen. Wenn Sie auch ein Modul-Paket erzeugt
175
haben, weil Sie z.B. PCMCIA benötigen, müssen Sie auch dieses Paket noch
180
Jetzt ist es Zeit, einen Systemneustart zu machen: lesen Sie aufmerksam
181
alle Warnungen, die die vorherigen Schritte unter Umständen erzeugt haben,
182
und tippen Sie dann <userinput>shutdown -r now</userinput> ein.
186
Mehr Informationen über <classname>kernel-package</classname> enthält
187
die tolle Dokumentation in <filename>/usr/share/doc/kernel-package</filename>.