This file is indexed.

/usr/share/doc/HOWTO/de-html/DE-Kernel-HOWTO-7.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
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
<!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: Einige Fu&szlig;angeln  </TITLE>
 <LINK HREF="DE-Kernel-HOWTO-8.html" REL=next>
 <LINK HREF="DE-Kernel-HOWTO-6.html" REL=previous>
 <LINK HREF="DE-Kernel-HOWTO.html#toc7" REL=contents>
</HEAD>
<BODY>
<A HREF="DE-Kernel-HOWTO-8.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-Kernel-HOWTO-6.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-Kernel-HOWTO.html#toc7"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="DE-Kernel-HOWTO-Fussangeln"></A> <A NAME="s7">7.</A> <A HREF="DE-Kernel-HOWTO.html#toc7">Einige Fu&szlig;angeln  </A>      <!--Kernel!Probleme--></H2>



<H2><A NAME="ss7.1">7.1</A> <A HREF="DE-Kernel-HOWTO.html#toc7.1">make clean </A>
</H2>


<P>Wenn sich der neu installierte Kernel seltsam verh&auml;lt, stehen die Chancen
recht hoch, da&szlig; vergessen wurde, vor der Kompilation ein <CODE>make
clean</CODE> durchzuf&uuml;hren. Die typischen Symptome reichen von einem
totalen Systemabsturz &uuml;ber unerkl&auml;rliche I/O-Probleme bis hin zu einer
Verlangsamung des Systems. <CODE>make dep</CODE> sollte man auch nie
vergessen.</P>

<H2><A NAME="ss7.2">7.2</A> <A HREF="DE-Kernel-HOWTO.html#toc7.2">Sehr gro&szlig;e und/oder langsame Kernel        </A>
<!--free-->       <!--dmesg-->       <!--Bootmeldungen--></H2>


<P>Belegt der Kernel zu viel des wertvollen Hauptspeichers, oder dauert die
Kompilierung trotz des nagelneuen 786DX/6-440 viel zu lange, sind
m&ouml;glicherweise einige gar nicht ben&ouml;tigte Dinge (Ger&auml;tetreiber,
Dateisysteme usw.) in den Kernel integriert. Ein typisches Anzeichen f&uuml;r
einen solchen &uuml;berfrachteten Kernel ist eine &uuml;berh&ouml;hte Swap-Aktivit&auml;t.
Dabei werden die jeweils gerade nicht ben&ouml;tigten Speicherbereiche auf
die Festplatte ausgelagert und bei Bedarf wieder zur&uuml;ckgeladen. Ein zu
gro&szlig;er Kernel l&auml;&szlig;t weniger physikalischen Hauptspeicher f&uuml;r die
Anwendungen &uuml;brig, so da&szlig; das Swappen fr&uuml;her einsetzt. Erkennbar ist es
an einer dauernden Festplattenaktivit&auml;t.</P>
<P>Einen solchen Monster-Kernel kann man aber oft vermeiden. Generell
gilt: Was man nicht ben&ouml;tigt, wird nicht konfiguriert; was man nur
selten ben&ouml;tigt, sollte nach M&ouml;glichkeit als ladbares Modul kompiliert
werden.</P>
<P>Den tats&auml;chlich vom Kernel belegten Anteil des Hauptspeichers findet man
folgenderma&szlig;en heraus: Durch den Befehl <CODE>cat /proc/meminfo</CODE> oder
<CODE>free</CODE> erf&auml;hrt man den Betrag des gesamt zur Verf&uuml;gung stehenden
Hauptspeichers (<CODE>Mem: total</CODE> bzw. <CODE>MemTotal</CODE>). Diesen
Wert subtrahiert man einfach vom insgesamt installierten Speicher.
Eine andere M&ouml;glichkeit bietet der Befehl <CODE>dmesg</CODE>, mit dem man
sich die Boot-Meldungen des Kernels ansehen kann. Ziemlich am Anfang
steht dort eine Zeile:</P>
<P>
<BLOCKQUOTE><CODE>
Memory: 15124k/16384k available (552k kernel code, 384k reserved, 324k data)
</CODE></BLOCKQUOTE>
</P>
<P>Wer nun aber dennoch auf einen gro&szlig;en Kernel angewiesen ist, kann 
folgendes versuchen:</P>
<P>
<!--
Kernel!make bzimage
-->
</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# make bzimage
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>In diesem Fall ist es vermutlich
ebenfalls notwendig, eine neuere Version des Linux Loaders LILO zu
installieren.</P>

<H2><A NAME="ss7.3">7.3</A> <A HREF="DE-Kernel-HOWTO.html#toc7.3">Die Kernel-Kompilierung schl&auml;gt fehl </A>
</H2>


<P>Eine mi&szlig;lungene Kernel-Kompilierung kann vielerlei Ursachen haben. Die
einfachste ist wieder ein vergessenes <CODE>make dep ; make clean</CODE>.
Ebenfalls kann ein fehlgeschlagener Patch (man suche nach <CODE>.rej</CODE>
Dateien) oder ein anderweitig durcheinandergeratener
Quell-Verzeichnisbaum die Kompilierung verhindern. In diesem Fall ist
es oft die schnellste L&ouml;sung, sich einen kompletten neuen
Kernel-Quellcode zu besorgen und zu installieren.</P>
<P>Die neuen Kernels der 2.0.x Generation bieten die M&ouml;glichkeit, die
Konfiguration men&uuml;gesteuert entweder mit <CODE>make menuconfig</CODE> oder
<CODE>make xconfig</CODE> durchzuf&uuml;hren. Diese sehr komfortablen Programme
hatten zeitweise kleinere Probleme mit dem Soundtreiber. Wer eine
dieser Konfigurationshilfen verwendet und den Kernel nicht ordnungsgem&auml;&szlig;
kompilieren kann, sollte mal versuchen, ein normales <CODE>make config</CODE>
durchzuf&uuml;hren, das hat manchmal geholfen.</P>
<P>Weiterhin kann es sein, da&szlig; man versucht, einen Kernel der Version 1.2.x
mit einem neueren ELF-Compiler (gcc 2.6.3 und h&ouml;her) zu &uuml;bersetzen.
Typischerweise bekommt man dabei haufenweise Fehlermeldungen der Art
<CODE>****** undefined</CODE>. Normalerweise ist dieser Fehler schnell
behoben: Am Anfang der Datei <CODE>arch/i386/Makefile</CODE> m&uuml;ssen die
folgenden Zeilen eingef&uuml;gt werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
AS=/usr/i486-linuxaout/bin/as
LD=/usr/i486-linuxaout/bin/ld -m i386linux
CC=gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Danach sollte sich der Kernel mit</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# make dep 
# make clean 
# make zImage
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>&uuml;bersetzen lassen.</P>
<P>Etwas schwieriger aufzudecken sind falsche oder falsch installierte
Versionen des Compilers <CODE>gcc</CODE>. Das <CODE>README</CODE> von Linus
gibt Hinweise dazu und auch auf einige symbolische Links, deren
Korrektheit man &uuml;berpr&uuml;fen sollte.</P>
<P>
<!--
Signal 11
-->
</P>
<P>In wirklich sehr seltenen F&auml;llen kann <CODE>gcc</CODE> auch aufgrund von
Hardware-Problemen abst&uuml;rzen. Die Fehlermeldung lautet dann in etwa
<CODE>xxx got fatal signal 11</CODE> und man hat keinerlei Ahnung, was das
bedeutet. Insbesondere diese <CODE>Signal 11</CODE> Abst&uuml;rze deuten immer
auf Probleme mit der Speicher-Hardware hin. Dies k&ouml;nnen fehlerhafte
SIMMs oder Cache-Bausteine sein, oder einfach nur zu knapp eingestellte
Timings im BIOS des Mainboards. Oft hilft es z.B., in einem solchen
Fall die Anzahl der Waitstates im »Advanced Chipset Setup« zu
erh&ouml;hen.</P>
<P>Es gibt einen eigenen Hilfetext, der sich speziell mit dieser Art von
Problemen besch&auml;ftigt: 
<BLOCKQUOTE><CODE>
<A HREF="http://www.bitwizard.nl/sig11/">http://www.bitwizard.nl/sig11/</A></CODE></BLOCKQUOTE>
</P>

<H2><A NAME="ss7.4">7.4</A> <A HREF="DE-Kernel-HOWTO.html#toc7.4">Der neu installierte Kernel bootet nicht </A>
</H2>


<P><CODE>lilo</CODE> wurde nach der Installation nicht ausgef&uuml;hrt. Wurde
z.B. der alte Kernel nur umbenannt, so bootet LILO in diesem
Fall trotzdem noch die alte Version, da es den Kernel nur &uuml;ber seine
Position auf der Festplatte l&auml;dt, nicht &uuml;ber seinen Namen. Erst bei
einem erneuten Lauf von <CODE>lilo</CODE> wird dieser Positionszeiger auf
den neu installierten Kernel gesetzt.</P>
<P>Eventuell ist auch die Konfigurationsdatei fehlerhaft. Ein oft
auftretender Fehler, den man nur zu leicht &uuml;bersieht, ist z.B. wenn man
anstelle von <CODE>boot = /dev/hda</CODE> die Zeile <CODE>boot = /dev/hda1</CODE>
eingetragen hat.</P>
<P>Ein weiterer Grund f&uuml;r Probleme mit LILO k&ouml;nnen gro&szlig;e Festplatten mit
mehr als 1024 Zylindern sein. Das <EM>
<A HREF="mini/DE-LILO-HOWTO.html">LILO mini-HOWTO</A></EM> oder die
Dokumentation von LILO selber geben dazu n&auml;here Informationen.</P>

<H2><A NAME="ss7.5">7.5</A> <A HREF="DE-Kernel-HOWTO.html#toc7.5">LILO vergessen: Das System bootet nicht mehr </A>
</H2>


<P>Wohl dem, der sich beizeiten eine Rettungsdiskette oder zumindest eine
Bootdiskette (<CODE>make zdisk</CODE>) erstellt hat. Mit einer Bootdiskette
kann man einfach das System von der Floppy starten und dann <CODE>lilo</CODE>
aufrufen.</P>
<P>Besitzt man nur eine Rettungsdiskette, wird es etwas komplizierter; man
mu&szlig; den neuen Kernel von der Festplatte auf eine weitere Diskette
&uuml;bertragen. Dazu mu&szlig; man einiges &uuml;ber sein System wissen:  
<UL>
<LI>Auf welcher Partition befindet sich das Root-Verzeichnis
(<CODE>/</CODE>) des Systems?
</LI>
<LI>Auf welcher Partition steht der kompilierte Kernel? Dies kann
entweder ebenfalls das Root-Verzeichnis sein, wenn man den
Kernel bereits dorthin kopiert hat, oder aber die Partition, auf der
sich das Verzeichnis <CODE>/usr/src/linux</CODE> befindet.
</LI>
<LI>Den Typ des Dateisystems, auf dem sich der Kernel befindet, also 
z.B. <CODE>ext2</CODE> oder <CODE>minix</CODE>.</LI>
</UL>
</P>
<P>Im folgenden Beispiel ist <CODE>/</CODE> auf <CODE>/dev/hda1</CODE>, und das
gesamte <CODE>/usr</CODE>-Verzeichnis - also auch <CODE>/usr/src/linux</CODE> -
befindet sich auf der Partition <CODE>/dev/hda3</CODE> und ist vom Typ
<CODE>ext2</CODE>.</P>
<P>Zun&auml;chst bootet man also die Rettungsdiskette. Dann mu&szlig; das
Dateisystem, welches den Kernel enth&auml;lt, gemounted werden. Hierf&uuml;r
ben&ouml;tigt man einen <EM>Mount Point</EM>, meist wird daf&uuml;r <CODE>/mnt</CODE>
verwendet. Falls dieses Verzeichnis auf der Rettungsdiskette bereits
existiert - was sehr wahrscheinlich ist - wird der erste Befehl eine
Fehlermeldung verursachen, die aber ignoriert werden kann:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# mkdir /mnt
# mount -t ext2 /dev/hda3 /mnt
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Nun wechselt man in das Verzeichnis mit dem neuen Kernel. Dabei mu&szlig; im
angegebenen Fall ber&uuml;cksichtigt werden, da&szlig; das Verzeichnis nicht wie
gewohnt unter <CODE>/usr</CODE> gemounted wurde. F&uuml;r den Pfadnamen gilt
also folgendes:</P>
<P>
<BLOCKQUOTE><CODE>
/mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/boot
</CODE></BLOCKQUOTE>
</P>
<P>Man legt eine formatierte Diskette (<EM>nicht</EM> die Boot-/Root-Diskette
der Rettungsdiskette!) in das erste Laufwerk (DOS A:),
&uuml;bertr&auml;gt den Kernel auf diese Diskette und konfiguriert ihn f&uuml;r das
richtige Root-Dateisystem:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# cd /mnt/src/linux/arch/i386/boot
# dd if=zImage of=/dev/fd0
# rdev /dev/fd0 /dev/hda1
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Nachdem man in das Hauptverzeichnis zur&uuml;ckgewechselt ist und die
Festplattenpartition wieder ent-mounted ist, kann das System mit der so
erstellten Bootdiskette neu gestartet werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# cd /
# umount /mnt
# shutdown -r now
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Nach dem Reboot sollte in jedem Fall die erste Aktion ein Lauf von
<CODE>lilo</CODE> sein!</P>

<H2><A NAME="ss7.6">7.6</A> <A HREF="DE-Kernel-HOWTO.html#toc7.6">»warning: bdflush not running«        </A>
<!--bdflush-->       <!--update--></H2>


<P>Dies ist nur noch f&uuml;r sehr alte Installationen ein Problem, dort aber
ein schwerwiegendes. Dieses Programm schreibt in regelm&auml;&szlig;igen Abst&auml;nden
die Dateisystem-Buffer auf die Festplatte zur&uuml;ck. Mit dem Release der
Kernelversion 1.0 (April 1994) wurde das Programm durch eine neue
Version ersetzt. Man mu&szlig; sich die aktuelle Version von <CODE>bdflush</CODE>
besorgen; man sollte sie von derselben Quelle bekommen, von der auch die
Kernel-Quellen stammen. Diese Version installiert sich dann unter dem
Namen <CODE>update</CODE>. Nach einem Reboot sollten die Fehlermeldungen
verschwinden.</P>

<H2><A NAME="ss7.7">7.7</A> <A HREF="DE-Kernel-HOWTO.html#toc7.7">Mein IDE-/ATAPI-CD-ROM-Laufwerk wird nicht erkannt        </A>
<!--CD-ROM!IDE-Schnittstelle--></H2>


<P>Obwohl mit der Einf&uuml;hrung des ATAPI-Standards der Anschlu&szlig; von 
CD-ROM-Laufwerken stark vereinheitlicht wurde, treten noch recht h&auml;ufig
Probleme auf, da immer noch einige Dinge beachtet werden m&uuml;ssen.</P>
<P>Ist das CD-ROM-Laufwerk das einzige Ger&auml;t am jeweiligen IDE-Interface,
so mu&szlig; es als <CODE>master</CODE> oder <CODE>single</CODE> konfiguriert sein.
Dies ist ein sehr oft vorkommender Fehler.</P>
<P>Viele Hersteller von Soundkarten (z.B. Creative Labs) haben heutzutage
eine IDE-Schnittstelle auf der Karte integriert. Dieses kann unter
Umst&auml;nden zu Problemen f&uuml;hren. Denn auf einigen Mainboards sind bereits
zwei IDE-Schnittstellen vorhanden (die zweite meist auf IRQ 15), so da&szlig;
diejenige auf der Soundkarte als dritte IDE-Schnittstelle konfiguriert
wird (oft &uuml;ber IRQ 11). Die 1.2.x Versionen des Linux-Kernels
unterst&uuml;tzen jedoch nur maximal zwei IDE-Schnittstellen. Wer noch
diesen alten Kernel verwendet, hat mehrere M&ouml;glichkeiten zur Auswahl:</P>
<P>Nur in den seltensten F&auml;llen sind an beiden IDE-Schnittstellen auf dem
Mainboard bereits zwei Ger&auml;te angeschlossen. In diesem Fall kann man
das ATAPI-CD-ROM dort anschlie&szlig;en und die Schnittstelle auf der
Soundkarte ausschalten. Dies hat au&szlig;erdem den positiven Nebeneffekt,
das ein IRQ frei wird.</P>
<P>Wer sowieso nur eine IDE-Schnittstelle auf dem Mainboard besitzt, kann
die auf der Soundkarte als Nummer zwei (IRQ 15) umkonfigurieren; sie
sollte dann von Linux korrekt erkannt werden.</P>
<P>Die Kernel der neuen 2.0 Generation (genauer bereits seit der fr&uuml;hen
1.3.x Phase) haben solche Probleme nicht mehr. Ihr neuer IDE-Treiber
unterst&uuml;tzt bis zu vier IDE-Schnittstellen. Wer also wirklich drei 
IDE-Schnittstellen verwenden will oder mu&szlig;, sollte auf diese Version
umsteigen, was sowieso eine gute Idee ist.</P>

<H2><A NAME="ss7.8">7.8</A> <A HREF="DE-Kernel-HOWTO.html#toc7.8">»obsolete routing requests«       </A>
<!--route--></H2>


<P>Wer nach einem Kernel-Upgrade derartige seltsame Meldungen bekommt, wenn
er sein Netzwerk konfiguriert, hat eine zu alte Version des
<CODE>route</CODE> Programmes und einiger damit zusammenh&auml;ngender Routinen.
Die Include-Datei <CODE>/usr/include/linux/route.h</CODE> hat sich in
neueren Versionen des Kernels ver&auml;ndert. Man sollte eine neuere
Version dieser Programme installieren. <CODE>route</CODE> ist Bestandteil
des <CODE>NetKit-A</CODE> Paketes, das man ebenfalls von derselben Quelle
wie den Kernel beziehen kann:</P>
<P>
<BLOCKQUOTE><CODE>
<A HREF="ftp://ftp.funet.fi/pub/OS/Linux/PEOPLE/Linus/net-source/base">ftp.funet.fi:/pub/OS/Linux/PEOPLE/Linus/net-source/base</A></CODE></BLOCKQUOTE>
</P>


<H2><A NAME="ss7.9">7.9</A> <A HREF="DE-Kernel-HOWTO.html#toc7.9">»Not a compressed kernel Image file« </A>
</H2>


<P>Wer beim Booten diese Meldung bekommt, hat den falschen Kernel
installiert. Der richtige Kernel ist <EM>nicht</EM> <CODE>vmlinux</CODE>
in <CODE>/usr/src/linux</CODE> sondern <CODE>arch/i386/boot/zImage</CODE>.</P>

<H2><A NAME="ss7.10">7.10</A> <A HREF="DE-Kernel-HOWTO.html#toc7.10">Console-Probleme nach dem Upgrade auf 1.3.x oder sp&auml;ter        </A>
<!--termcap--></H2>


<P>Die neuen Versionen verwenden eine andere Kennung f&uuml;r die Konsole. In
der Datei <CODE>/etc/termcap</CODE> sollte entweder im
<CODE>termcap</CODE>-Eintrag f&uuml;r <CODE>console</CODE> das Wort <CODE>dumb</CODE>
durch <CODE>linux</CODE> ersetzt werden oder aber ein kompletter neuer
Eintrag f&uuml;r <CODE>linux</CODE> erstellt werden. Siehe dazu auch das
<EM>
<A HREF="http://metalab.unc.edu/LDP/HOWTO/Keyboard-HOWTO.html">Keyboard HOWTO</A></EM>.</P>

<H2><A NAME="ss7.11">7.11</A> <A HREF="DE-Kernel-HOWTO.html#toc7.11">Seit dem Kernel-Upgrade kann ich nichts mehr kompilieren </A>
</H2>


<P>Manche Programme ben&ouml;tigen gewisse Informationen und Definitionen aus
dem Linux-Kernel. Diese bekommen sie, indem in den
<EM>Include-Dateien</EM>, das sind die Dateien mit der Endung
<CODE>.h</CODE>, die entsprechenden Dateien aus den Kernel-Quellen
eingebunden werden:
<BLOCKQUOTE><CODE>
#include &lt;linux/xyzzy.h>
</CODE></BLOCKQUOTE>

Die Datei <CODE>xyzzy.h</CODE> wird dann in dem Verzeichnis
<CODE>/usr/include/linux</CODE> gesucht. Dieses Verzeichnis ist aber nur
ein symbolischer Link auf das <CODE>include</CODE>-Verzeichnis der
Kernel-Quellen; normalerweise lautet der Name des Verzeichnisses
<CODE>/usr/src/linux/include/linux</CODE>.
Es gibt mehrere M&ouml;glichkeiten, warum der Compiler die gesuchten Dateien
nicht findet:</P>
<P>
<OL>
<LI>Der Link existiert nicht. Dies l&auml;&szlig;t sich einfach beheben:

<BLOCKQUOTE><CODE>
<PRE>
# ln -s /usr/src/linux/include/linux /usr/include/linux
</PRE>
</CODE></BLOCKQUOTE>

</LI>
<LI>Der Link zeigt an eine falsche Stelle. Dies kann geschehen, wenn
der Kernel-Verzeichnisbaum nicht an der Standard-Stelle befindet. In
diesem Fall mu&szlig; er entsprechend »umgebogen« werden, 
also z.B. f&uuml;r den Fall, da&szlig; der Kernel im Verzeichnis 
<CODE>/opt/Sources</CODE> ausgepackt wurde:

<BLOCKQUOTE><CODE>
<PRE>
# cd /usr/include
# rm -f linux
# ln -s /opt/Sources/linux/include/linux linux
</PRE>
</CODE></BLOCKQUOTE>

</LI>
<LI>Die Kernel-Quellen sind nicht installiert. Oft wird aus
Platzmangel der gesamte Kernel-Verzeichnisbaum gel&ouml;scht. Hier hilft es
nur, die <CODE>include</CODE>-Dateien wieder zu installieren:

<BLOCKQUOTE><CODE>
<PRE>
# tar zxvpf linux.x.y.z.tar.gz linux/include
</PRE>
</CODE></BLOCKQUOTE>

</LI>
<LI>Die Rechte der Dateien sind falsch gesetzt.
Wer z.B. als <CODE>root</CODE> eine <CODE>umask</CODE> verwendet, die anderen
Benutzern den Lesezugriff auf Dateien verwehrt, mu&szlig; beim Auspacken des
Kernels unbedingt die Option <CODE>p</CODE> f&uuml;r <CODE>tar</CODE> verwenden oder
zumindest f&uuml;r das <CODE>include</CODE>-Verzeichnis den lesenden Zugriff
f&uuml;r alle erm&ouml;glichen, da sonst nur <CODE>root</CODE> den Compiler benutzen
kann. Dieses geschieht nachtr&auml;glich mit dem Befehl:

<BLOCKQUOTE><CODE>
<PRE>
# cd /usr/src/linux
# chmod -R go+r include
</PRE>
</CODE></BLOCKQUOTE>

</LI>
</OL>
</P>

<H2><A NAME="ss7.12">7.12</A> <A HREF="DE-Kernel-HOWTO.html#toc7.12">Erh&ouml;hung von Systembeschr&auml;nkungen</A>
</H2>


<P>Die folgenden <EM>Beispiele</EM> sind vielleicht ein Hinweis f&uuml;r all
diejenigen, die sich fragen, wie man die diversen ver&auml;nderbaren
Schrankenwerte (»Soft Limits«) im Kernel ver&auml;ndern kann:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# echo 4096 > /proc/sys/kernel/file-max
# echo 12288 > /proc/sys/kernel/inode-max
# echo 300 400 500 > /proc/sys/vm/freepages
</PRE>
</CODE></BLOCKQUOTE>
</P>


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