This file is indexed.

/usr/share/doc/HOWTO/de-html/DE-PCMCIA-HOWTO-5.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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.65">
 <TITLE>Linux PCMCIA HOWTO: Anspruchsvollere Themen</TITLE>
 <LINK HREF="DE-PCMCIA-HOWTO-6.html" REL=next>
 <LINK HREF="DE-PCMCIA-HOWTO-4.html" REL=previous>
 <LINK HREF="DE-PCMCIA-HOWTO.html#toc5" REL=contents>
</HEAD>
<BODY>
<A HREF="DE-PCMCIA-HOWTO-6.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-PCMCIA-HOWTO-4.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-PCMCIA-HOWTO.html#toc5"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="s5">5.</A> <A HREF="DE-PCMCIA-HOWTO.html#toc5">Anspruchsvollere Themen</A></H2>


<H2><A NAME="ss5.1">5.1</A> <A HREF="DE-PCMCIA-HOWTO.html#toc5.1">Bereitstellung der ben&ouml;tigten Ressourcen f&uuml;r PCMCIA-Ger&auml;te        </A>
<!--PCMCIA!Ports-->       <!--PCMCIA!Interrupts--></H2>

<P>Theoretisch sollte es egal sein, welcher Interrupt von welchem
Ger&auml;t verwendet wird, solange nicht zwei Ger&auml;te so
konfiguriert sind, da&szlig; sie den gleichen verwenden. In der Datei
<CODE>/etc/pcmcia/config.opts</CODE> k&ouml;nnen bestimmte Interrupts, die
bei nicht-PCMCIA-Ger&auml;ten Verwendung finden, ausgeschlossen
werden.</P>
<P>Es ist nicht m&ouml;glich, eine PCMCIA-Karte anzuweisen, eine bestimmte
I/O-Adresse zu verwenden. Vielmehr erlaubt die Datei
<CODE>/etc/pcmcia/config.opts</CODE> einem, einen Bereich von
verf&uuml;gbaren Adressen f&uuml;r den Gebrauch durch PCMCIA-Ger&auml;te 
anzugeben oder einen Bereich vom Gebrauch auszuschlie&szlig;en.</P>
<P>Nach der Modifizierung der Datei <CODE>/etc/pcmcia/config.opts</CODE> kann
<CODE>cardmgr</CODE> mit dem Befehl 
<BLOCKQUOTE><CODE>
kill -HUP
</CODE></BLOCKQUOTE>
 neu gestartet
werden.</P>
<P>Der Interrrupt, der verwendet wird, um den Kartenstatus zu
&uuml;berwachen, wird von dem Grundmodul (<CODE>i82365</CODE> oder
<CODE>tcic</CODE>) ausgew&auml;hlt, bevor <CODE>cardmgr</CODE> die Datei
<CODE>/etc/pcmcia/config</CODE> durchforstet, so da&szlig; diese
Einstellungen durch diese Datei nicht beeinflu&szlig;t werden.
Um diesen Interrupt zu setzen, mu&szlig; die <CODE>cs_irq=</CODE> Option
verwendet werden, wenn der Slottreiber geladen wird. Dies wird durch
Setzen der Variable <CODE>PCIC_OPTS=</CODE> im Startskript
<CODE>rc.pcmcia</CODE> erreicht.</P>
<P>Alle darauf aufbauenden Kartentreiber haben einen Parameter, der
<CODE>irq_mask=</CODE> genannt wird und mit dem die Interrupts festgelegt
werden, die von dem Treiber verwendet werden k&ouml;nnen. Jedes Bit
von <CODE>irq_mask</CODE> entspricht einem Interrupt: Bit 0 ist IRQ0, 
Bit 1 IRQ1 und so weiter. Eine Maske von 0x1200 w&uuml;rde den
Interrupts 9 und 12 entsprechen. Um einen Treiber derart
einzuschr&auml;nken, da&szlig; dieser nur einen Interrupt verwendet,
darf lediglich ein Bit gesetzt werden. Diese Treiberoptionen
sollten in der Datei <CODE>/etc/pcmcia/config</CODE> angegeben werden. Zum
Beispiel 
<BLOCKQUOTE><CODE>
<PRE>
device "serial_cs"
  module "serial_cs" opts "irq_mask=0x1100"
  ...
</PRE>
</CODE></BLOCKQUOTE>

w&uuml;rde bedeuten, da&szlig; nur die Interrupts 8 und 12 verwendet
werden d&uuml;rfen. Unabh&auml;ngig von der Einstellung der Variablen
<CODE>irq_mask</CODE> wird Card Services niemals einen Interrupt
verwenden, der bereits von einem anderen Ger&auml;t benutzt oder durch
die Datei <CODE>config</CODE> ausgeschlossen wird.</P>

<H2><A NAME="ss5.2">5.2</A> <A HREF="DE-PCMCIA-HOWTO.html#toc5.2">Wie k&ouml;nnen verschiedene Ger&auml;teeinstellungen f&uuml;r zu Hause und f&uuml;rs B&uuml;ro verwendet werden?        </A>
<!--PCMCIA!Schemata--></H2>

<P>Dies ist wirklich eine einfache Anwendung der Unterst&uuml;tzung von
PCMCIA-<EM>Schemata</EM>. Dazu verwendet man am besten zwei
Konfigurationsschemata, genannt <EM>Arbeit</EM> und <EM>Heim</EM>. Hier
ist ein Beispiel eines <CODE>network.opts</CODE> Skriptes mit
schemaspezifischen Einstellungen:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
case "$ADDRESS" in
Arbeit,*,*,*)
    # Definition der Netzwerkkarte im Arbeit Schema
    ...
    ;;
Heim,*,*,*|default,*,*,*)
    # Definition der Netzwerkkarte im zu Hause Schema
    ...
    ;;
esac
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Der erste Teil einer PCMCIA-Ger&auml;teadresse ist immer das
Konfigurationsschema. In diesem Beispiel wird der zweite Fall sowohl
f&uuml;r das <EM>Heim</EM>, als auch f&uuml;r das <EM>default</EM> Schema
verwendet. Wenn also das Schema aus irgendeinem Grund nicht gesetzt
ist, wird automatisch das <EM>Heim</EM> Schema verwendet.</P>
<P>Um jetzt zwischen diesen beiden S&auml;tzen von Einstellungen zu
w&auml;hlen, kann man eines dieser Kommandos starten:</P>
<P>
<!--
PCMCIA!cardctl!scheme
-->

<!--
cardctl!scheme
-->
</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
cardctl scheme home
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>oder</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
cardctl scheme work
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Das Kommando <CODE>cardctl</CODE> f&auml;hrt alle Karten herunter und
startet diese neu. Dieses Kommando kann sicher verwendet werden,
unabh&auml;ngig davon, ob das PCMCIA-System geladen ist. Es kann aber
fehlschlagen, wenn zur gleichen Zeit andere Ger&auml;te verwendet
werden. Dies ist unabh&auml;ngig davon, ob diese Ger&auml;te von der
Einstellung des aktuellen Schemas abh&auml;ngen oder nicht.</P>
<P>Um das gerade eingestellte Schema herauszufinden, kann dieses Kommando
verwendet werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
cardctl scheme
</PRE>
</CODE></BLOCKQUOTE>
</P>

<H2><A NAME="ss5.3">5.3</A> <A HREF="DE-PCMCIA-HOWTO.html#toc5.3">Booten von einem PCMCIA-Ger&auml;t        </A>
<!--PCMCIA!Booten-->       <!--PCMCIA!initrd-->       <!--initrd--></H2>

<P>Das Root-Dateisystem auf einem PCMCIA-Ger&auml;t zu haben, ist
trickreich, da das PCMCIA-System von Linux nicht dazu gedacht ist, in 
den Kernel fest eingebunden zu werden. Die Kernkomponenten, 
die ladbaren Kernelmodule und der <CODE>cardmgr</CODE> Daemon h&auml;ngen von 
einem bereits laufenden System ab. Die <CODE>initrd</CODE> M&ouml;glichkeit des Kernels
umgeht diese Voraussetzungen dadurch, da&szlig; Linux erlaubt wird,
vor&uuml;bergehend ein RAM-Laufwerk als minimales Root-Dateisystem zu verwenden, 
die Treiber zu laden und dann ein anderes Root-Dateisystem an dessen 
Stelle zu mounten. Das tempor&auml;re Root-Dateisystem kann dazu verwendet werden,
PCMCIA zu konfigurieren und dann ein PCMCIA-Ger&auml;t als 
Root-Dateisystem einzurichten.</P>
<P>Einige Linuxdistributionen erlauben eine direkte Installation auf
Ger&auml;ten, die direkt an einem PCMCIA-SCSI-Controller h&auml;ngen,
als unbeabsichtigten Nebeneffekt der Unterst&uuml;tzung der
Installation von einem PCMCIA-SCSI-CD-ROM-Laufwerk. Kein
Installationsprogramm unterst&uuml;tzt die Konfiguration von
<CODE>initrd</CODE>, um Linux mit einem PCMCIA-Root-Dateisystem zu
booten. Um so ein System einzurichten, ben&ouml;tigt man ein anderes
Linuxsystem, um ein <CODE>initrd</CODE> Startprogramm zu erzeugen. Wenn ein
anderes Linuxsystem nicht ver&uuml;gbar ist, kann eine andere Option
die tempor&auml;re Installation eines minimalen Linuxsystems auf einem
Nicht-PCMCIA-Laufwerk, die Erzeugung eines <CODE>initrd</CODE> Startprogramms
und dann die Neuinstallation auf einem PCMCIA-Laufwerk sein.</P>
<P>Das Linux <EM>
<A HREF="http://metalab.unc.edu/LDP/HOWTO/Bootdisk-HOWTO.html">Bootdisk HOWTO</A></EM> enth&auml;lt einige generelle 
Hinweise zur Erstellung von Bootdisketten aber nichts spezielles
zu <CODE>initrd</CODE>. Die Hauptdokumentation zu <CODE>initrd</CODE> ist im
Quellcode aktueller Kernelversionen in der Datei
<CODE>linux/Documentation/initrd.txt</CODE> enthalten. Bevor man
anf&auml;ngt, sollte man diese Dokumentation lesen. Eine Vertrautheit
mit LILO ist ebenfalls hilfreich. Die Verwendung von
<CODE>initrd</CODE> erfordert, da&szlig; der Kernel mit den aktivierten
Optionen <CODE>CONFIG_BLK_DEV_RAM</CODE> und <CODE>CONFIG_BLK_DEV_INITRD</CODE>
&uuml;bersetzt wurde.</P>

<H3>Das Hilfsskript pcinitrd        <!--PCMCIA!pcinitrd-->       <!--pcinitrd--></H3>

<P>Das Skript <CODE>pcinitrd</CODE> erzeugt ein <CODE>initrd</CODE>
Grundstartprogramm zum Booten mit einem PCMCIA-Root-Dateisystem. 
Dies enth&auml;lt eine minimale Verzeichnishierarchie, ein
paar Ger&auml;tedateien, einige ausf&uuml;hrbare Programme, Bibliotheken
und einen Satz von PCMCIA-Treibermodulen. Wenn
<CODE>pcinitrd</CODE> aufgerufen wird, m&uuml;ssen die Treibermodule
angegeben werden, die verwendet werden sollen. Die 
Kern-PCMCIA-Komponenten, <CODE>pcmcia_core</CODE> und <CODE>ds</CODE>, sind 
automatisch enthalten. </P>
<P>Als ein Beispiel f&uuml;r den Fall, da&szlig; das Notebook einen
<CODE>i82365</CODE>-kompatiblen PCMCIA-Controller besitzt und Linux mit
dem Root-Dateisystem auf einer Festplatte installiert werden
soll, die an einem <EM>Adaptec SlimSCSI</EM> Controller angeschlossen
ist, w&uuml;rde man folgenden Befehl verwenden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
pcinitrd -v initrd pcmcia/i82365.o pcmcia/aha152x_cs.o
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Um die Startsequenz von <CODE>initrd</CODE> anzupassen, kann das
Dateisystem mittels des <CODE>loopback</CODE> Ger&auml;tes eingef&uuml;gt
werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
mount -o loop -t ext2 initrd /mnt
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Danach sollte das Skript <CODE>linuxrc</CODE> editiert werden. Die 
PCMCIA-Konfigurationsdateien werden hierauf im Verzeichnis <CODE>/etc</CODE>
installiert und k&ouml;nnen ebenfalls angepa&szlig;t werden. Dazu
sollte die Manual Page von <CODE>pcinitrd</CODE> f&uuml;r weitere Informationen
gelesen werden.</P>

<H3>Erstellen einer initrd Bootdiskette</H3>

<P>Nach der Erstellung durch <CODE>pcinitrd</CODE> kann durch Kopieren des
Kernels, des gepackten <CODE>initrd</CODE> Startprogramms und einiger
Hilfsdateien f&uuml;r LILO auf eine leere Diskette eine
Bootdiskette erstellt werden. Im folgenden Beispiel nehmen wir an,
da&szlig; das ben&ouml;tigte PCMCIA-Root-Dateisystem auf
<CODE>/dev/sda1</CODE> liegen soll:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
mke2fs /dev/fd0
mount /dev/fd0 /mnt
mkdir /mnt/etc /mnt/boot /mnt/dev
cp -a /dev/fd0 /dev/sda1 /mnt/dev
cp [kernel-image] /mnt/vmlinuz
gzip &lt; [initrd-image] > /mnt/initrd
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Erzeuge dann <CODE>/mnt/etc/lilo.conf</CODE> mit diesem Inhalt:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
boot=/dev/fd0
compact
image=/vmlinuz
    label=linux
    initrd=/initrd
    read-only
    root=/dev/sda1
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Zum Schlu&szlig; mu&szlig; <CODE>lilo</CODE> aufgerufen werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
/sbin/lilo -r /mnt
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Wenn <CODE>lilo</CODE> mit der Option <CODE>-r</CODE> aufgerufen wird, so wird
es alle Aktionen relativ zu dem alternativ angegebenen 
Root-Dateisystem durchf&uuml;hren. Der Grund f&uuml;r das Erzeugen der
Dateien unter <CODE>/mnt/dev</CODE> ist der, da&szlig; <CODE>lilo</CODE> nicht
in der Lage ist, die Dateien in <CODE>/dev</CODE> zu verwenden, wenn es in
diesem alternativen <EM>root</EM> Modus l&auml;uft.</P>

<H3>Installierung eines initrd Startprogramms auf einem        Nicht-Linux-Laufwerk</H3>

<P>Eine h&auml;ufige Verwendung der <CODE>initrd</CODE> M&ouml;glichkeit ist
der Gebrauch auf Systemen, wo die eingebaute Festplatte einem anderen
Betriebssystem gewidmet ist. Der Linux-Kernel und das <CODE>initrd</CODE>
Startprogramm k&ouml;nnen auf einer Nicht-Linux-Partition
untergebracht werden und LILO oder LOADLIN
k&ouml;nnen so konfiguriert werden, da&szlig; sie Linux von dort
starten k&ouml;nnen.</P>
<P>Ausgehend von der Annahme, da&szlig; der Kernel f&uuml;r das
entsprechende Root-Laufwerk konfiguriert wurde und das
<CODE>initrd</CODE> Startprogramm auf einem anderen System erstellt wurde,
ist der einfachste Weg, Linux mit LOADLIN zu starten: </P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
LOADLIN &lt;kernel> initrd=&lt;initrd-image>
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Wenn Linux erst einmal auf der Zielmaschine gestartet wurde,
dann kann LILO installiert werden, um Linux direkt zu starten.
Als Beispiel sei <CODE>/dev/hda1</CODE> die Nicht-Linux-Zielpartition und
<CODE>/mnt</CODE> ein freies Verzeichnis zum Mounten der Partition.
Als erstes mu&szlig; ein Unterverzeichnis f&uuml;r Linux auf dieser
Partition geschaffen werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
mount /dev/hda1 /mnt
mkdir /mnt/linux
cp [kernel-image] /mnt/linux/vmlinuz
cp [initrd-image] /mnt/linux/initrd
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Wenn in diesem Beispiel <CODE>/dev/sda1</CODE>, ein SCSI-Laufwerk, auf welches
&uuml;ber einen PCMCIA-Controller zugegriffen wird, die 
Root-Partition von Linux enthalten soll, so mu&szlig; zur Installation von
LILO eine Datei <CODE>lilo.conf</CODE> mit folgendem Inhalt
erstellt werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
boot=/dev/hda
map=/mnt/linux/map
compact
image=/mnt/linux/vmlinuz
        label=linux
        root=/dev/sda1
        initrd=/mnt/linux/initrd
        read-only
other=/dev/hda1
        table=/dev/hda
        label=windows
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Die <CODE>boot=</CODE> Zeile besagt, da&szlig; LILO im <EM>Master
Boot Record</EM> (MBR) des angegebenen Ger&auml;tes installiert werden soll. Die
<CODE>root=</CODE> Zeile kennzeichnet das gew&uuml;nschte 
Root-Dateisystem, welches sp&auml;ter f&uuml;r den Gebrauch des
<CODE>initrd</CODE> Startprogramms verwendet werden soll, und kann
&uuml;berfl&uuml;ssig sein, wenn der Kernel schon entsprechend
konfiguriert worden ist. Der <CODE>other=</CODE> Abschnitt beschreibt das
andere Betriebssystem, das auf <CODE>/dev/hda1</CODE> liegt.</P>
<P>Um LILO in diesem Fall zu installieren, sollte dies verwendet
werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
lilo -C lilo.conf
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Beachten Sie, da&szlig; in diesem Fall die Datei <CODE>lilo.conf</CODE>
absolute Pfadnamen verwendet, die <CODE>/mnt</CODE> enthalten. David tat
dies in diesem Beispiel, da das Zieldateisystem eventuell die
Einrichtung von Linux Ger&auml;tedateien f&uuml;r die <CODE>boot=</CODE>
und <CODE>root=</CODE> Optionen nicht unterst&uuml;tzt.</P>

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