This file is indexed.

/usr/share/doc/HOWTO/de-html/DE-Kernel-HOWTO-9.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
<!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: Module       </TITLE>
 <LINK HREF="DE-Kernel-HOWTO-10.html" REL=next>
 <LINK HREF="DE-Kernel-HOWTO-8.html" REL=previous>
 <LINK HREF="DE-Kernel-HOWTO.html#toc9" REL=contents>
</HEAD>
<BODY>
<A HREF="DE-Kernel-HOWTO-10.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-Kernel-HOWTO-8.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-Kernel-HOWTO.html#toc9"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="s9">9.</A> <A HREF="DE-Kernel-HOWTO.html#toc9">Module       </A><!--Kernel!Module-->      <!--Module--></H2>


<P>Ladbare Kernel-Module k&ouml;nnen Hauptspeicher sparen und vereinfachen meist
die Konfiguration eines Systems. Die neue Red Hat-Distribution hat z.B. 
nur noch eine einzige Bootdiskette f&uuml;r alle Konfigurationen.
Inzwischen k&ouml;nnen fast alle optionalen Kernel-Teile als 
Module konfiguriert werden:
Dateisysteme, Netzwerk-Karten, serielle und parallele Schnittstellen,
Bandlaufwerke, Drucker usw.</P>

<H2><A NAME="ss9.1">9.1</A> <A HREF="DE-Kernel-HOWTO.html#toc9.1">Installation der Hilfsprogramme        </A>
<!--insmod-->  <!--rmmod-->     <!--ksyms-->       <!--lsmod-->   <!--genksyms-->  <!--modprobe-->       <!--depmod--></H2>


<P>Das Hinzuf&uuml;gen und Entfernen der Module zum Kernel wird von einigen
externen Programmen erledigt. Diese geh&ouml;ren nicht zur
Standard-Kerneldistribution und m&uuml;ssen extra installiert werden. Man
bekommt sie von denselben Servern wie auch den Kernel unter dem Namen 
<CODE>modules-x.y.z.tar.gz</CODE>. Man sollte dabei dasjenige Paket mit
derselben oder, falls es das nicht gibt, mit der n&auml;chstkleineren
Versionsnummer wie der verwendete Kernel benutzen. Nach dem Auspacken
des Paketes mit</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# tar zxvf modules-x.y.z.tar.gz
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>findet man in dem
neu angelegten Verzeichnis <CODE>modules-x.y.z</CODE> eine
<CODE>README</CODE>-Datei, die man aufmerksam lesen sollte. Darin werden
auch Anweisungen zur Installation gegeben; dies beschr&auml;nkt sich aber
eigentlich immer auf ein einfaches <CODE>make install</CODE>. Dabei sollten
die folgenden Programme im Verzeichnis <CODE>sbin</CODE> installiert werden:
<CODE>insmod</CODE>, <CODE>rmmod</CODE>, <CODE>ksyms</CODE>, <CODE>lsmod</CODE>, 
<CODE>genksyms</CODE>, <CODE>modprobe</CODE> und <CODE>depmod</CODE>.</P>
<P>Im Unterverzeichnis <CODE>insmod</CODE> des Modul-Paketes ist auch ein
kleines Beispiel f&uuml;r einen ladbaren Treiber enthalten (<CODE>/dev/hw</CODE>).
Wer Lust hat, kann damit ein wenig herumspielen, die Datei
<CODE>INSTALL</CODE> gibt dazu ein paar Hinweise.</P>
<P><CODE>insmod</CODE> dient dazu, ein Modul in den laufenden Kernel
einzuf&uuml;gen. Normalerweise handelt es sich bei den Modulen um
Bin&auml;rdateien mit der Endung <CODE>.o</CODE>. Der Beispieltreiber hei&szlig;t z.B. 
<CODE>drv_hello.o</CODE>. Um diesen einzuf&uuml;gen, lautete der Befehl also:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# insmod drv_hello.o
</PRE>
</CODE></BLOCKQUOTE>
  </P>
<P>Um zu sehen, welche Module gerade im Kernel geladen sind, dient der
Befehl <CODE>lsmod</CODE>:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# lsmod
Module:        #pages:  Used by:
drv_hello          1
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P><CODE>drv_hello</CODE> ist der Name des Modules; es belegt eine »Page«
(Seite, entspricht 4&nbsp;kB) im Speicher. Keine weiteren Module des
Kernels sind von ihm abh&auml;ngig.  </P>
<P>Um das Modul wieder zu entfernen, wird folgender Befehl verwendet:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# rmmod drv_hello
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Wichtig ist hierbei, da&szlig; <CODE>rmmod</CODE> den <EM>Namen
des Modules</EM>, so wie er von <CODE>lsmod</CODE> angezeigt wird, und
<EM>nicht</EM> den Dateinamen als Argument ben&ouml;tigt.</P>
<P>Die Manual Pages der Modul-Programme geben weitere
Informationen &uuml;ber deren Zweck und Optionen.</P>

<H2><A NAME="ss9.2">9.2</A> <A HREF="DE-Kernel-HOWTO.html#toc9.2">Die Module der Standard-Kerneldistribution </A>
</H2>


<P>Zum gegenw&auml;rtigen Zeitpunkt (2.0.30) k&ouml;nnen folgende Bestandteile des
Kernels als Modul kompiliert werden:
<UL>
<LI>alle Dateisysteme (au&szlig;er <CODE>/proc</CODE>)</LI>
<LI>die meisten Treiber f&uuml;r Ethernet sowie ISDN-Karten</LI>
<LI>Unterst&uuml;tzung f&uuml;r SCSI-Ger&auml;te (Festplatten, CD-ROM, Tape)</LI>
<LI>alle unterst&uuml;tzten SCSI-Karten au&szlig;er AM53C974</LI>
<LI>der Sound-Treiber</LI>
<LI>alle unterst&uuml;tzten IDE-CD-ROMs</LI>
<LI>Disketten, Drucker, Loopback und RAM-Disk</LI>
<LI>serielle und parallele Schnittstelle (Drucker), BUS- und PS/2
M&auml;use</LI>
</UL>

Um diese zu benutzen, darf man sie nicht in den eigentlichen Kernel
einbinden, d.h. w&auml;hrend des <CODE>make config</CODE> darf man die
entsprechenden Fragen nicht mit <CODE>y</CODE> beantworten, sondern mit
<CODE>m</CODE> f&uuml;r Modul. Nachdem der Kernel wie bereits beschrieben
kompiliert und installiert wurde, m&uuml;ssen die Module dann extra mit dem
Befehl </P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# make modules
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>&uuml;bersetzt werden. Mit </P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# make install
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>werden die &uuml;bersetzten Module dann im Verzeichnis
<CODE>/lib/modules/x.y.z</CODE> installiert, wobei <CODE>x.y.z</CODE> die
verwendete Kernel-Version ist. Von dort k&ouml;nnen sie dann mit dem Befehl
<CODE>lsmod</CODE> oder <CODE>modprobe</CODE> geladen werden. Der Vorteil von
<CODE>modprobe</CODE> gegen&uuml;ber <CODE>lsmod</CODE> ist dabei, da&szlig; der volle Pfad
des Modules nicht angegeben werden mu&szlig;. <CODE>modprobe</CODE> sucht
automatisch in <CODE>/lib/modules/x.y.z</CODE>. Au&szlig;erdem wird immer die
richtige Version des Moduls, passend zum gerade laufenden Kernel,
gelesen. Wer gerne mit verschiedenen Kernels experimentiert, wird
das schnell zu sch&auml;tzen wissen.</P>
<P>Ladbare Module sind ganz besonders f&uuml;r nur selten benutzte Dinge
praktisch, ein gutes Beispiel sind Dateisysteme. Wer nur ab und zu mal
eine Diskette mit dem MSDOS FAT-Dateisystem mounten mu&szlig;, kann das
entsprechende Modul (<CODE>msdos.o</CODE>) nur bei Bedarf laden und so unter
Normalbedingungen etwa 50&nbsp;kB an RAM einsparen. Noch komfortabler wird das
Ganze, wenn man <CODE>kerneld</CODE> verwendet. Dies ist ein automatischer
Modul-Lader, der ben&ouml;tigte Module selbstt&auml;tig in den Kernel l&auml;dt, sobald
das entsprechende Ger&auml;t oder Protokoll ben&ouml;tigt wird, und es, wenn es
nicht mehr in Benutzung ist, auch wieder entfernt.</P>
<P>Diese und viele weitere Feinheiten im Umgang mit den Modulen werden im
<EM>
<A HREF="http://metalab.unc.edu/LDP/HOWTO/Module-HOWTO.html">Module-HOWTO</A></EM>
beschrieben.</P>

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