This file is indexed.

/usr/share/doc/HOWTO/de-html/DE-Kernel-HOWTO-4.html is in doc-linux-de 2003.10-5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.65">
 <TITLE>Linux Kernel HOWTO: Die Kompilierung </TITLE>
 <LINK HREF="DE-Kernel-HOWTO-5.html" REL=next>
 <LINK HREF="DE-Kernel-HOWTO-3.html" REL=previous>
 <LINK HREF="DE-Kernel-HOWTO.html#toc4" REL=contents>
</HEAD>
<BODY>
<A HREF="DE-Kernel-HOWTO-5.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-Kernel-HOWTO-3.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-Kernel-HOWTO.html#toc4"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="s4">4.</A> <A HREF="DE-Kernel-HOWTO.html#toc4">Die Kompilierung </A></H2>

<H2><A NAME="ss4.1">4.1</A> <A HREF="DE-Kernel-HOWTO.html#toc4.1">clean und depend        </A>
<!--Kernel!make clean-->       <!--Kernel!make depend--></H2>


<P>Am Ende der Konfiguration weist das Skript ebenfalls darauf hin, man
solle ein <CODE>make dep</CODE> sowie ein <CODE>make clean</CODE> durchf&uuml;hren.
Dies sollte man in jedem Fall tun, damit die wechselseitigen
Abh&auml;ngigkeiten der Quell- und Include-Dateien richtig zusammengestellt
werden. Dies dauert nicht sehr lange; auf meinem DX/2-80 aber fast
l&auml;nger als die komplette Kompilierung des Kernels. Danach
l&ouml;scht man mit <CODE>make clean</CODE> alle alten Objekt-Dateien und stellt
so sicher, das sie wirklich neu &uuml;bersetzt werden. Dieser Schritt ist
wirklich wichtig, und einige fehlgeschlagene Kompilierungsversuche
beruhten nur auf einem vergessenen:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# make dep 
# make clean
</PRE>
</CODE></BLOCKQUOTE>
</P>

<H2><A NAME="ss4.2">4.2</A> <A HREF="DE-Kernel-HOWTO.html#toc4.2">make        </A>
<!--Kernel!make zImage-->       <!--Kernel!make zdisk--></H2>


<P>Nun kommt der zeitraubende Teil. </P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# make zImage
</PRE>
</CODE></BLOCKQUOTE>
 </P>
<P>kompiliert den gesamten Kernel und hinterl&auml;&szlig;t die Datei 
<CODE>zImage</CODE> im Verzeichnis <CODE>arch/i386/boot</CODE>. Dies ist der
neue, komprimierte Kernel. </P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# make zdisk
</PRE>
</CODE></BLOCKQUOTE>
 </P>
<P>macht dasselbe,
installiert aber diesen neuen Kernel gleich auf eine Diskette, die man
hoffentlich rechtzeitig in das Laufwerk A: geschoben hat.
Die letztere Methode ist ziemlich praktisch, um neue Kernels relativ
gefahrlos zu testen. Wenn er aus irgendeinem Grund nicht richtig
funktioniert oder gar abst&uuml;rzt, nimmt man einfach die Diskette aus dem
Laufwerk und bootet den alten Kernel. Generell ist es immer eine gute
Idee, eine solche bootf&auml;hige Diskette mit einem funktionierenden Kernel
zur Hand zu haben. Denn irgendwann kommt immer der Tag, an dem man aus
Versehen den Kernel von der Festplatte l&ouml;scht oder eine &auml;hnliche
Dummheit begeht.</P>
<P>Alle halbwegs aktuellen Kernels sind komprimiert, daher das <CODE>z</CODE>
am Anfang der Namen. Ein solcher komprimierter Kernel entpackt sich
automatisch selber, wenn er bootet.</P>

<H2><A NAME="ss4.3">4.3</A> <A HREF="DE-Kernel-HOWTO.html#toc4.3">Andere Optionen (»Targets«) f&uuml;r make        </A>
<!--Kernel!make mrproper-->       <!--Kernel!make oldconfig-->       <!--Kernel!make modules-->       <!--Module!kompilieren--></H2>


<P><CODE>make mrproper</CODE> macht etwas &auml;hnliches wie <CODE>clean</CODE>, aber
sehr viel umfassender. Manchmal ist das notwendig, um ein wirklich
»sauberen« Verzeichnisbaum zu generieren.
Dabei werden aber auch die alten Einstellungen der Konfiguration gel&ouml;scht;
eventuell sollte man sich deshalb eine Sicherungskopie der Datei 
<CODE>.config</CODE> aufheben, um bei Bedarf die alten Einstellungen 
nachsehen zu k&ouml;nnen.</P>
<P><CODE>make oldconfig</CODE> versucht, die Kernel-Konfiguration automatisch
anhand einer alten Konfigurationsdatei durchzuf&uuml;hren. Wer noch nie einen
Kernel kompiliert hat, sollte diese Option besser nicht benutzen, da
sicherlich die eine oder andere Einstellung ver&auml;ndert werden mu&szlig;.</P>
<P><CODE>make modules</CODE> wird in einem eigenen Abschnitt beschrieben.</P>

<H2><A NAME="ss4.4">4.4</A> <A HREF="DE-Kernel-HOWTO.html#toc4.4">Installation des neuen Kernels        </A>
<!--LILO-->       <!--Kernel!Installation--></H2>


<P>Jetzt, nachdem der Kernel erfolgreich den eigenen W&uuml;nschen entsprechend
kompiliert wurde, ist es an der Zeit, ihn zu installieren. Die meisten
Leute benutzen LILO, den <B>Li</B>nux <B>Lo</B>ader, um Linux und eventuell
auch einige weitere Betriebssysteme zu booten. F&uuml;r diesen Fall gen&uuml;gt
meist ein einfaches <CODE>make zlilo</CODE>. Dabei wird der Kernel
kompiliert, installiert und <CODE>lilo</CODE> aufgerufen. Danach sollte
alles f&uuml;r einen Reboot des neuen Kernels bereit sein.</P>
<P>Das funktioniert aber nur dann, wenn <CODE>lilo</CODE>
folgenderma&szlig;en eingestellt und installiert ist: Der Kernel ist
<CODE>/vmlinuz</CODE>, <CODE>lilo</CODE> befindet sich in <CODE>/sbin</CODE> und die
Konfigurationsdatei f&uuml;r <CODE>lilo</CODE> (<CODE>/etc/lilo.conf</CODE>) stimmt
mit dieser Einstellung &uuml;berein. Ist dies nicht der Fall, mu&szlig; man
<CODE>lilo</CODE> selber aufrufen, nachdem der neue Kernel an die richtige
Stelle kopiert wurde.</P>
<P>Eigentlich ist 
<CODE>lilo</CODE> ein Paket, das sehr einfach zu installieren und auch zu
benutzen ist. Dennoch lassen sich manche von der Konfigurationsdatei 
(<CODE>/etc/lilo.conf</CODE> oder, bei &auml;lteren Versionen,
<CODE>/etc/lilo/config</CODE>) verwirren. Ein typischer Eintrag in dieser
Datei sieht so aus:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
image = /vmlinuz
    label = Linux
    root = /dev/hda1
    ...
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Der Eintrag <CODE>image =</CODE> gibt den vollen Pfad des gegenw&auml;rtig
installierten Kernels an; die meisten verwenden <CODE>/vmlinuz</CODE>.
<CODE>label</CODE> gibt einen Namen, unter dem man diesen Eintrag, wenn
mehrere Eintr&auml;ge vorhanden sind, ansprechen kann, und <CODE>root</CODE> gibt
diejenige Partition der Festplatte an, die als <CODE>/</CODE> gemountet
werden soll. Um f&uuml;r das hier beschriebene System den neuen Kernel zu
installieren, sollte man also vom alten Kernel eine Sicherheitskopie
machen, den neuen Kernel an die angegebene Stelle kopieren und <CODE>lilo</CODE>
aufrufen:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# mv /vmlinuz /Old_Kernel
# mv /usr/src/linux/arch/i386/boot/zImage /vmlinuz
# lilo
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Bei &auml;lteren Versionen von <CODE>lilo</CODE> mu&szlig; die letzte Zeile eventuell 
<BLOCKQUOTE><CODE>
<PRE>
# /etc/lilo/install
</PRE>
</CODE></BLOCKQUOTE>
 oder sogar 
<BLOCKQUOTE><CODE>
<PRE>
# /etc/lilo/lilo -C /etc/lilo/config
</PRE>
</CODE></BLOCKQUOTE>
 lauten.</P>

<H3>Beispiel f&uuml;r eine LILO-Konfiguration </H3>


<P>LILO kann im Prinzip beliebig viele verschiedene Systeme booten, deshalb
kann man es auch sehr gut dazu verwenden, neuen und alten Kernel
gleichzeitig bootf&auml;hig zu machen. Hierzu ein Beispiel, wobei Zeilen, die mit
einem <CODE>#</CODE> beginnen, als Kommentare verstanden werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# LILO Konfigurationsdatei       
#            von Peter S&uuml;tterlin, September 1996
#
# Start des globalen Abschnittes

boot = /dev/hda
message=/etc/lilo.bootmenue
compact
prompt
timeout = 100
image = /vmlinuz
        label = 1
        root = /dev/hda2
image = /vmlinuz_old
        label = 2
        root = /dev/hda2
other = /dev/hda1
        label = 3
        table = /dev/hda
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Der erste Eintrag gibt an, wo LILO installiert werden soll;
hier auf der ersten Festplatte. In der zweiten Zeile wird eine Datei
angegeben, deren Inhalt LILO beim Laden am Bildschirm ausgibt.
In dieser Datei steht etwa folgendes:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
^LBitte eine der angegebenen Konfigurationen auswaehlen:

Def. --> 1  Linux (neuer Kernel)

         2  Linux (alter Kernel)

         3  MSDOS 6.0
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Das <CODE>^L</CODE> (<CODE>CONTROL-L</CODE>) am Anfang bewirkt dabei, da&szlig; der
Bildschirm gel&ouml;scht wird. Der dritte Eintrag (<CODE>compact</CODE>)
optimiert den Ladevorgang. Das <CODE>prompt</CODE> in der n&auml;chsten Zeile
bewirkt, da&szlig; LILO auf eine Eingabe des Benutzers wartet, der nun
ausw&auml;hlen kann, welche der drei Konfigurationen er starten will. Auf
diese Eingabe wartet LILO 10 Sekunden (<CODE>timeout = 100</CODE>)
und l&auml;dt dann automatisch den ersten Eintrag der folgenden Liste.
Diese Liste enth&auml;lt hier drei Eintr&auml;ge. Die ersten beiden beginnen mit 
<CODE>image =</CODE> und weisen damit auf Linux-Systeme hin. Der dritte
Eintrag (<CODE>other = /dev/hda1</CODE>) betrifft ein nicht n&auml;her
spezifiziertes Betriebssystem, dessen Boot-Partition <CODE>/dev/hda1</CODE>
ist; in diesem Fall ist es eine DOS-Partition.</P>
<P>Aus diesen drei M&ouml;glichkeiten kann man nun, wie in der Meldung
angegeben, durch Dr&uuml;cken der Tasten <CODE>1</CODE>, <CODE>2</CODE> oder
<CODE>3</CODE>, entsprechend den Eintr&auml;gen <CODE>label=</CODE> in den einzelnen
Abschnitten, eine ausw&auml;hlen.</P>
<P>Dies beschreibt nur &auml;u&szlig;erst knapp die unz&auml;hligen M&ouml;glichkeiten, die LILO
bietet. Wer sich n&auml;her dar&uuml;ber informieren will, sollte die sehr
ausf&uuml;hrliche Dokumentation, die mit LILO mitgeliefert wird, studieren.</P>

<HR>
<A HREF="DE-Kernel-HOWTO-5.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-Kernel-HOWTO-3.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-Kernel-HOWTO.html#toc4"><IMG SRC="toc.png" ALT="Inhalt"></A>
</BODY>
</HTML>