/usr/share/doc/HOWTO/de-html/DE-PCMCIA-HOWTO-3.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 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 | <!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: Kompilierung, Installation und Konfiguration</TITLE>
<LINK HREF="DE-PCMCIA-HOWTO-4.html" REL=next>
<LINK HREF="DE-PCMCIA-HOWTO-2.html" REL=previous>
<LINK HREF="DE-PCMCIA-HOWTO.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="DE-PCMCIA-HOWTO-4.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-PCMCIA-HOWTO-2.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-PCMCIA-HOWTO.html#toc3"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="s3">3.</A> <A HREF="DE-PCMCIA-HOWTO.html#toc3">Kompilierung, Installation und Konfiguration</A></H2>
<H2><A NAME="ss3.1">3.1</A> <A HREF="DE-PCMCIA-HOWTO.html#toc3.1">Vorbemerkungen und Kernelkonfiguration </A>
<!--Kernel!PCMCIA--></H2>
<P>Vor dem Beginn sollte man darüber nachdenken, ob es wirklich
erforderlich ist, das PCMCIA-Paket selber zu kompilieren. Die meisten
Linux Distributionen werden mit einem vorkompilierten
PCMCIA-Treiberpaket ausgeliefert. Im allgemeinen muß das
Paket nur dann selbst kompiliert werden, wenn man eine
neuere Version des PCMCIA-Paketes benötigt, weil erst diese einen
bestimmten Treiber oder eine bestimmte Funktionalität besitzt, oder
man eine andere Kernelversion installiert hat, als die, die mit der
Distribution ausgeliefert worden ist. Das Kompilieren des
PCMCIA-Pakets ist technisch nicht schwierig, setzt allerdings eine
gewisse Vertrautheit mit Linux voraus.</P>
<P>Die folgenden Dinge müssen installiert sein, bevor man mit der
Installation des Paketes beginnen kann:</P>
<P>
<UL>
<LI>Einer der folgenden Kernel: 1.2.8 bis 1.2.13, 1.3.30, 1.3.37,
1.3.39 bis 1.3.99, 2.0.x oder 2.1.x.
</LI>
<LI>Die passende Version der Programme für Module.
</LI>
<LI>Optional die <EM>XForms</EM> Bibliothek für ein X11
User Interface</LI>
</UL>
</P>
<P>Die neueste Version verlangt einen Kernel der Version 1.2.18 oder
höher, oder ein Entwickler-Kernel 1.3.30 oder neuer. Version 1.3.38
funktioniert nicht und die Versionen 1.3.31 bis 1.3.36 sind nicht
getestet worden. Es werden auch relativ neue Modulprogramme
benötigt. Es gibt keine Kernel-Patches speziell für PCMCIA.</P>
<P>Man benötigt einen kompletten Quellbaum des Linux-Kernels. Ein
bereits übersetzter Kernel allein genügt nicht. Das PCMCIA Modul enthält
einige Referenzen auf Kernel-Quelltexte. Während man einen neuen
Kernel übersetzen will, um unnötige Treiber zu entfernen, ist
dies für die Installation von PCMCIA nicht notwendig.</P>
<P>Aktuelle stabile Kernelquellen und Patches sind unter
folgenden Adressen erhältlich:</P>
<P>
<UL>
<LI><CODE>
<A HREF="http://metalab.unc.edu/pub/Linux/kernel/v2.0">http://metalab.unc.edu/pub/Linux/kernel/v2.0</A></CODE>
</LI>
<LI><CODE>
<A HREF="http://tsx-11.mit.edu/pub/linux/sources/system/v2.0">http://tsx-11.mit.edu/pub/linux/sources/system/v2.0</A></CODE></LI>
</UL>
</P>
<P>Aktuelle Modulwerkzeuge sind dort unter <CODE>modules-2.0.0.tgz</CODE>
zu finden. Entwicklungskernel sind in den entsprechenden <CODE>v2.1</CODE>
Verzeichnissen zu finden. Einige aktuelle Entwicklungskernel und
Compiler arbeiten schlecht mit älteren Modulwerkzeugen
zusammen. Bei der Verwendung von 2.1-Kerneln muß man sicherstellen,
daß man die richtige Kombination an Libraries und
Modulwerkzeugen einsetzt. Die neuesten Modulwerkzeuge sowie Versionen
für ältere Kernel sind unter </P>
<P>
<BLOCKQUOTE><CODE>
<A HREF="http://www.pi.se/blox/modules">http://www.pi.se/blox/modules</A></CODE></BLOCKQUOTE>
</P>
<P>zu finden. </P>
<P>
<!--
PCMCIA!Ethernetkarte
-->
Wird der Einsatz einer PCMCIA Ethernetkarte geplant, so ist bei der
Konfiguration des Kernels die Unterstützung für Netzwerke zu
aktivieren und die normalen Linux Ethernettreiber einschließlich
der Treiber für »Pocket« und portable Adapter
zu deaktivieren. Die PCMCIA-Netzwerkkartentreiber sind alle als
ladbare Module implementiert. Jeder unnötig in den Kernel
einkompilierte Treiber verschwendet nur Platz.</P>
<P>Wenn SLIP, PPP oder PLIP verwendet werden sollen, müssen die
entsprechenden Treiber entweder in den Kernel einkompiliert
werden oder die Treiber als Module geladen werden. In der
Kernelkonfiguration der 1.2.x-Kernel ist es nicht möglich,
Optionen wie SLIP-Kompression für ladbare Module zu
aktivieren. Daher wird es hier wohl besser sein, SLIP direkt in den
Kernel zu binden, wenn diese Funktionalität benötigt wird.</P>
<P>
<!--
PCMCIA!Token Ring
-->
<!--
Token Ring!PCMCIA
-->
Soll ein PCMCIA-Token Ring Karte verwendet werden, so muß der
Kernel mit der Option »Token Ring driver support« übersetzt worden
sein, wobei die Option <CODE>CONFIG_IBMTR</CODE> ausgeschaltet sein
sollte.</P>
<P>
<!--
PCMCIA!IDE-Karte
-->
<!--
IDE!PCMCIA Karte
-->
<!--
EIDE!PCMCIA Karte
-->
Sollen PCMCIA IDE-Karten verwendet werden, so sollte im Kernel
<CODE>CONFIG_BLK_DEV_IDE_PCMCIA</CODE> aktiviert sein. Diese Funktion gibt
es nur bei den Kerneln 1.3.72 bis 2.1.7. Ältere Kernel haben
keine Unterstützung für wechselbare IDE-Geräte; neuere
Kernel benötigen keine spezielle Konfiguration.</P>
<P>
<!--
PCMCIA!SCSI-Karten
-->
<!--
SCSI!PCMCIA
-->
Bei der Verwendung von PCMCIA SCSI-Karten sollte in der
Kernelkonfiguration <CODE>CONFIG_SCSI</CODE> aktiviert sein. Ebenso
sollten die Haupttreiber für die geplanten SCSI-Geräte wie
Festplatten, Bandlaufwerke, CD-ROMs oder generische Devices
aktiviert sein, wohingegen die Treiber für spezielle
SCSI-Controller-Karten nicht benötigt werden.</P>
<P>
<!--
/etc/pcmcia/config
-->
Wenn Treiber des Kernels, die für die PCMCIA-Geräte benötigt werden,
als Module übersetzt wurden, so ist die Datei
<CODE>/etc/pcmcia/config</CODE> entsprechend zu modifizieren, so daß
jeweils die benötigten Module für eine Karte geladen werden. Wenn zum
Beispiel ein serieller Treiber modularisiert wurde, muß die
serielle Gerätedefinition wie folgt geändert werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
device "serial_cs"
class "serial" module "misc/serial", "serial_cs"
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Wenn der Kernel mit der Option <CODE>CONFIG_MODVERSIONS</CODE> (Kontrolle
der Versionsnummer von Modulen) kompiliert wurde, so wird das
Konfigurationsskript nach der Existenz der Datei
<CODE>/usr/include/linux/modversions.h</CODE>, der Moduldatenbank,
suchen. Diese wird erstellt, wenn im Kernelquellverzeichnis der Befehl
<CODE>make dep</CODE> ausgeführt wird.</P>
<P>
<!--
cardinfo
-->
<!--
PCMCIA!cardinfo
-->
Dieses Paket enthält eine auf X11 basierte Kartenstatusanzeige mit
dem Namen <CODE>cardinfo</CODE>. Dieses Programm basiert auf der kostenlos
vertriebenen Widgetbibliothek XForms,
welche installiert sein muß, wenn man <CODE>cardinfo</CODE>
verwenden will. Eine binäre Version ist unter </P>
<P>
<BLOCKQUOTE><CODE>
<A HREF="ftp://hyper.stanford.edu/pub/pcmcia/extras">hyper.stanford.edu:/pub/pcmcia/extras</A></CODE></BLOCKQUOTE>
</P>
<P>sowohl im <EM>a.out</EM> als auch im <EM>ELF</EM> Format
erhältlich. Es müssen zusätzlich alle gewöhnlichen X11 Headerdateien
und Bibliotheken installiert sein.</P>
<H2><A NAME="ss3.2">3.2</A> <A HREF="DE-PCMCIA-HOWTO.html#toc3.2">Installation </A>
<!--PCMCIA!Kompilierung--> <!--PCMCIA!pcmcia-cs--></H2>
<P>Hier ist ein Übersicht des Installationsprozesses:</P>
<P>
<UL>
<LI>Entpacken von <CODE>pcmcia-cs-2.9.?.tar.gz</CODE> in <CODE>/usr/src</CODE>.
</LI>
<LI>Starte <CODE>make config</CODE> in dem neu entstandenen Verzeichnis
<CODE>pcmcia-cs-2.9.?</CODE>.
</LI>
<LI>Starte <CODE>make all</CODE>, danach <CODE>make install</CODE>.
</LI>
<LI>Anpassen des PCMCIA-Startskripts und der Optionsdatei in
<CODE>/etc/pcmcia</CODE> an die eigenen Bedürfnisse.</LI>
</UL>
</P>
<P>Während des Laufs von <CODE>make config</CODE> werden einige
Konfigurationseinstellungen abgefragt und es wird überprüft,
ob das System für die Installation der PCMCIA-Unterstützung
entsprechend vorbereitet ist. In den meisten Fällen können
die Standardeinstellungen verwendet werden. Für den Fall, daß
Probleme auftreten, ist es ratsam, auf die Ausgaben dieses Programmes zu
achten.</P>
<P>Wird das PCMCIA-Paket für den Gebrauch auf einem anderen Computer
kompiliert, so sollte ein anderes Installationsverzeichnis angegeben
werden, wenn danach gefragt wird. Dies sollte ein absoluter Pfad
sein. Alle PCMCIA-Dateien werden relativ zu diesem Pfad
installiert. Danach ist man in der Lage, das ganze Unterverzeichnis
in eine tar Datei zu schreiben und zum Zielcomputer zu kopieren, wo das
Archiv dann im Root-Verzeichnis entpackt werden muß, um das
PCMCIA-Paket an der richtigen Stelle zu installieren.</P>
<P>Wenn das Paket für einen andere Architektur, z.B. für einen Linux
Rechner mit einer Alpha CPU, crosskompiliert werden
soll, so kann ein anderer Compiler und Linker
angegeben werden. Dies kann auch auf Systemen mit gemischtem
<EM>a.out</EM>- und <EM>ELF</EM>-Formaten hilfreich sein.
Auch wird das Skript nach zusätzlichen Optionen des Compilers
für's Debugging fragen. </P>
<P>Einige der Programme (<CODE>cardctl</CODE> und <CODE>cardinfo</CODE>)
können entweder in der <EM>safe</EM>- oder <EM>trusting</EM>-Form
kompiliert werden. Die <EM>safe</EM>-Form verhindert, daß
Nicht-Root-Anwender die Kartenkonfiguration ändern
können. Die <EM>trusting</EM>-Form erlaubt normalen Anwendern,
Befehle abzusetzen, um Karten anzuhalten, wiederanzufahren,
zurückzusetzen und die aktuelle Konfiguration zu ändern. Das
Konfigurationsskript wird nach einer der beiden Formen fragen. Die
Voreinstellung ist <EM>safe</EM>.</P>
<P>Es gibt ein paar Einstellungen der Kernelkonfiguration, die
Auswirkungen auf die PCMCIA-Werkzeuge haben. Das Konfigurationsskript
kann diese meistens aus dem laufenden Kernel
herauslesen. Alternativ, wenn für einen anderen Computer
kompiliert wird, kann diese Konfiguration aus einem
Kernelquellcode-Verzeichnisbaum herausgelesen werden oder sie
können interaktiv abgefragt werden.</P>
<P>Das Durchlaufen von <CODE>make all</CODE> gefolgt von <CODE>make
install</CODE> wird die Kernelmodule und Anwendungsprogramme erzeugen und
installieren. Die Kernelmodule werden in
<CODE>/lib/modules/</CODE>{<EM>version</EM>}<CODE>/pcmcia</CODE> installiert.
Die Programme <CODE>cardmgr</CODE> und <CODE>cardctl</CODE> werden in <CODE>/sbin</CODE>
installiert. Wenn <CODE>cardinfo</CODE> erstellt wird, so wird es in
<CODE>/usr/bin/X11</CODE> installiert.</P>
<P>Die Konfigurationsdateien werden in das Verzeichnis
<CODE>/etc/pcmcia</CODE> kopiert. Wird über eine alte Version
installiert, so werden die alten Kofigurationsdateien umbenannt, bevor
die neuen installiert werden. Die alten Skriptdateien bekommen
Endungen wie *.~1~, *.~2~ und so weiter.</P>
<P>
<!--
PCMCIA!probe
-->
Wenn nicht bekannt ist, welcher PCMCIA Controller Chip in den Rechner
eingebaut ist, so kann die <CODE>probe</CODE> Funktion im Unterverzeichnis von
<CODE>cardmgr/</CODE> verwendet werden, um den Chiptyp zu ermitteln. Es
gibt zwei Hauptarten an Chips: der Databook TCIC-2 Typ und der Intel
i82365SL kompatible Typ.</P>
<P>
<!--
cardmgr
-->
<!--
PCMCIA!cardmgr
-->
Ein Daemon auf Anwenderebene überwacht, ob eine Karte
eingeschoben oder entfernt wird. Dieser Daemon heißt
<CODE>cardmgr</CODE>. Dieser ist ähnlich in der Funktion wie Barry
Jaspans <CODE>pcmdiad</CODE> in früheren Versionen. <CODE>cardmgr</CODE>
liest die Konfigurationsdatei <CODE>/etc/pcmcia/config</CODE>,
welche die bekannten PCMCIA Karten beschreibt. Es werden darin ebenso die
zusätzlichen Module erwähnt, die für den Gebrauch der
PCMCIA-Karte notwendig sind und eventuell auf das eigene
System angepaßt werden müssen. Sollten weitere Informationen benötigt
werden, sollte die Manual Page weiterhelfen.</P>
<H2><A NAME="ss3.3">3.3</A> <A HREF="DE-PCMCIA-HOWTO.html#toc3.3">Abschluß der Installation bei Systemen, die BSD Initskripte verwenden </A>
<!--PCMCIA!Initskripte!BSD--> <!--/etc/rc.d/rc.pcmcia--></H2>
<P>Einige Linux Distributionen, wie z.B. Slackware, verwenden eine
BSD-Anordnung der Systemstartskripte. Wenn die Datei
<CODE>/etc/rc.d/rc.M</CODE> existiert, gehört das System zu dieser
Gruppe. Das Skript <CODE>rc.pcmcia</CODE>, das in <CODE>/etc/rc.d</CODE>
installiert ist, kontrolliert den Start und Stopp des
PCMCIA-Systems. <CODE>make install</CODE> verwendet das Kommando <CODE>probe</CODE>,
um den Chiptyp zu ermitteln und das Skript <CODE>rc.pcmcia</CODE>
entsprechend anzupassen. Es sollte dann eine Zeile in der Startdatei
<CODE>/etc/rc.d/rc.M</CODE> eingefügt werden, die das
PCMCIA-Startskript aufruft:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
/etc/rc.d/rc.pcmcia start
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Es ist nicht wichtig, wo diese Zeile erscheint, solange sie nach dem Start
von <CODE>syslogd</CODE> steht.</P>
<H2><A NAME="ss3.4">3.4</A> <A HREF="DE-PCMCIA-HOWTO.html#toc3.4">Abschluß der Installation bei Systemen, die den System V Startskripts folgen </A>
<!--PCMCIA!Initskripte!System V--> <!--/etc/init.d/rc.pcmcia--> <!--/etc/rc.d/init.d/rc.pcmcia--></H2>
<P>RedHat, Caldera und Debian Linux haben Startskripts, die dem <EM>System V</EM>
folgen. Wenn ein Verzeichnis mit dem Namen <CODE>/etc/init.d</CODE> oder
<CODE>/etc/rc.d/init.d</CODE> existiert, gehört die Distribution zu
dieser Gruppe. Das <CODE>rc.pcmcia</CODE> Skript wird dann entsprechend in
<CODE>/etc/init.d</CODE> oder <CODE>/etc/rc.d/init.d</CODE> installiert. Es
besteht hier keine Notwendigkeit, irgendeine Startdatei zu editieren, um
PCMCIA zu aktivieren: Dies geschieht automatisch.</P>
<P>Wenn das Verzeichnis <CODE>/etc/sysconfig</CODE> existiert, wird eine
separate Konfigurationsdatei zum Starten als <CODE>/etc/sysconfig</CODE>
installiert. Wenn in diesem Fall irgendwelche Moduloptionen, wie
z.B. <CODE>PCIC=</CODE> oder <CODE>PCIC_OPTS=</CODE> Einstellungen, geändert werden sollen,
so ist dies in dieser Datei einzutragen und nicht im Startskript. Bei
nachfolgenden Installationen wird diese Datei nicht
überschrieben. Einige Systeme werden mit
Systemkonfigurationsdateien ausgeliefert, die PCMCIA per Voreinstellung
deaktivieren (wie z.B. S.u.S.E.). Daher sollte der Inhalt solcher
Dateien vorher überprüft werden (bei S.u.S.E.:
<CODE>/etc/rc.config</CODE>).</P>
<P>Einige frühere Versionen verwendeten die PCMCIA-Skripte in
<CODE>/etc/sysconfig</CODE> anstelle von <CODE>/etc/pcmcia</CODE>. Die
aktuelle Version und zukünftige werden das Verzeichnis
<CODE>/etc/pcmcia</CODE> auf allen Systemen verwenden. Existierende
PCMCIA-Skripte in <CODE>/etc/sysconfig</CODE> werden nach
<CODE>/etc/pcmcia</CODE> verschoben.</P>
<H2><A NAME="ss3.5">3.5</A> <A HREF="DE-PCMCIA-HOWTO.html#toc3.5">Computerspezifische Konfigurationsoptionen </A>
<!--PCMCIA!Probleme!Interrupts--> <!--PCMCIA!Probleme!Ports--> <!--/etc/pcmcia/config.opts--></H2>
<P><EM>Card Services</EM> sollte es automatisch vermeiden, auf Ports und
Interrupts zuzugreifen, die von anderen Geräten verwendet
werden. Es wird ebenfalls versucht, Konflikte mit anderen unbekannten
Geräten zu entdecken. Allerdings ist dies nicht absolut
zuverlässig. In einigen Fällen müssen bestimmte
Bereiche für einen Treiber explizit ausgeschlossen werden. Dies
erreicht man über die Datei <CODE>/etc/pcmcia/config.opts</CODE>.</P>
<P>Hier sind einige Einstellungen für spezielle Notebooks:</P>
<P>
<UL>
<LI>Beim AMS SoundPro vermeide IRQ 10.
</LI>
<LI>Bei einigen AMS TravelPro 5300 Modellen sollte der Speicherbereich
0x8000-0xcffff verwendet werden.
</LI>
<LI>Beim Chicony NB5 sollten die IRQs 5 und 9 nicht verwendet werden.
</LI>
<LI>Die Ports 0x2f8-0x2ff, IRQ 3 und IRQ 5 sollten beim Compaq
Presario 1020 ausgeschlossen werden.
</LI>
<LI>Die Ports 0x300-0x30f sollten beim HP Omnibook 4000C vermieden
werden.
</LI>
<LI>Die IRQs 5 und 9 sollten beim Micron Millenia Transport nicht
verwendet werden.
</LI>
<LI>Beim NEC Versa M schließe die Ports 0x2e0-0x2ff und IRQ 9
aus.
</LI>
<LI>Beim NEC Versa P/75 sollten die IRQs 5 und 9 ausgeschlossen werden.
</LI>
<LI>Bei der NEC Versa 6000 Serie sollten die IRQs 9 und 12
ausgeschlossen werden.
</LI>
<LI>Beim ProStar 9200, Altima Virage und Acquiline Hurricane DX4-100
vermeide IRQ 5, Port 0x330-0x35f. Versuche eventuell den
Speicherbereich 0xd8000-0xdffff.
</LI>
<LI>Verwende auf dem TI TravelMate 5000 den Speicherbereich
0xd4000-0xdffff.
</LI>
<LI>Bei dem Toshiba T4900 CT schließe IRQ5 und die Ports
0x2e0-0x2e8 und 0x330-0x338 aus.
</LI>
<LI>Bei dem Twinhead 5100, HP 4000, Sharp PC-8700 und PC-8900
schließe IRQ 9 (Sound) und IRQ 12 aus.
</LI>
<LI>Bei der MPC 800 Serie sollten IRQ 5 und der Port 0x300-0x30f
für das CD-ROM-Laufwerk vermieden werden.</LI>
</UL>
</P>
<P>Einige PCMCIA-Controller haben optionale Eigenschaften, die bei
einigen Systemen eventuell implementiert sind. Es ist generell
unmöglich, für einen PCMCIA-Treiber festzustellen, ob diese
speziellen Eigenschaften eingebaut sind. Man lese daher die
Manual Page des eingebauten Treibers für die möglicherweise
implementierten und aktivierbaren Eigenschaften.</P>
<P>In wenigen Fällen ist das <CODE>probe</CODE> Kommando nicht in der
Lage, den Controllertyp automatisch zu ermitteln. Bei Halikan NBD
486-Systemen, die einen TCIC-2-Controller an einer ungewöhnlichen
Stelle haben, muß die Datei <CODE>rc.pcmcia</CODE> editiert
werden, damit das <CODE>tcic</CODE> Modul geladen wird. Dabei muß der
Parameter <CODE>PCIC_OPTS</CODE> auf <CODE>tcic_base=0x02c0</CODE> gesetzt werden.</P>
<P>
<!--
PCMCIA!Probleme!Busgeschwindigkeit
-->
Die Treibermodule <EM>tcic</EM> und <EM>i82365</EM> haben zahlreiche
Parameter zur Behandlung der Busgeschwindigkeit, welche für
besonders schnelle Prozessoren angepaßt werden müssen. Symptome
für Geschwindigkeitsprobleme sind unter anderem Probleme der
Kartenerkennung, Blockierung bei hoher Prozessorbelastung, große
Fehlerraten oder schlechte Übertragungsraten der
Geräte. Man kontrolliere die entsprechenden Manual Pages für
nähere Informationen. Hier ist eine kurze Zusammenfassung:</P>
<P>
<UL>
<LI>Cirrus Controller haben zahlreiche anpaßbare
Geschwindigkeitsparameter. Der wichtigste scheint die
<CODE>cmd_time</CODE> Option, die die Dauer von PCMCIA-Buszyklen festlegt,
zu sein. Schnelle 486-Systeme (insbesondere DX4-100) scheinen oft von
einer Erhöhung von 6 (Voreinstellung) auf 12 oder 16 zu
profitieren.
</LI>
<LI>Der Cirrus PD6729 PCI Controller hat eine <CODE>fast_pci</CODE>
Einstellung, welche gesetzt werden sollte, falls die
PCI-Busgeschwindigkeit größer als 25 MHz ist.
</LI>
<LI>Bei Vadem VG-468- und Databook TCIC-2-Controllern
ändert die <CODE>async_clock</CODE> Option die relative
Geschwindigkeit des PCMCIA-Busses zum Hauptbus. Wird diese Option
gesetzt, so werden extra Wartezyklen bei einigen Operationen
eingefügt werden. David hat von einem Notebook
gehört, das diese Option benötigte.
</LI>
<LI>Das <CODE>pcmcia_core</CODE> Modul besitzt einen <CODE>cis_speed</CODE>
Parameter zum Ändern der Geschwindigkeit, mit der auf den Speicher
der Card Information Structure (CIS) zugegriffen wird. Bei einigen
Systemen mit schnellen Busgeschwindigkeiten kann die Erhöhung
dieses Parameters, d.h. Verlangsamung des Kartenzugriffs, die
Erkennung einzelner Karten begünstigen.
</LI>
<LI>Dies ist keine Geschwindigkeitseigenschaft, ist aber hilfreich,
wenn sich mehr als ein PCMCIA-Controller im System befindet oder
mehrere Einschübe sich in einer »Docking Station«
befinden. In diesem Fall hilft es, wenn beim Laden des <EM>i82365</EM> Moduls
die Option <CODE>extra_sockets=1</CODE> gesetzt ist. </LI>
</UL>
</P>
<P>Alle diese Optionen sollten durch Modifizierung der Datei
<CODE>rc.pcmcia</CODE> konfiguriert werden. Zum Beispiel:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# sollte entweder i82365 oder tcic sein
PCIC=i82365
# Geschwindigkeitsparameter des Treibers sollten hier
# stehen
PCIC_OPTS="cmd_time=12"
# pcmcia_core Optionen werden hier angegeben
CORE_OPTS="cis_speed=500"
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Hier sind ein paar Geschwindigkeitseinstellungen für spezielle
Systeme:</P>
<P>
<UL>
<LI>Beim ARM Pentium-90 oder Midwest Micro Soundbook Plus sollten
die Optionen <CODE>"freq_bypass=1 cmd_time=8"</CODE> verwendet werden.
</LI>
<LI>Beim Midwest Micro Soundbook Elite verwendet man
<CODE>"cmd_time=12"</CODE>.
</LI>
<LI>Beim Gateway Liberty versuche man die Option <CODE>"cmd_time=16"</CODE>.</LI>
</UL>
</P>
<P>Bei einigen Systemen, die den Cirrus-Controller verwenden, wie z.B. der
NEC Versa M, versetzt das BIOS den Controller in einen speziellen
Ruhemodus während des Einschaltens. Auf solchen Systemen wird das
<CODE>probe</CODE>-Kommando keinen PCMCIA-Controller entdecken. Wenn dies
geschieht, muß die Datei <CODE>rc.pcmcia</CODE> von Hand wie folgt
abgeändert werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# sollte entweder i82365 oder tcic sein
PCIC=i82365
# Geschwindigkeitsparameter des Treibers sollten hier
# stehen
PCIC_OPTS="wakeup=1"
</PRE>
</CODE></BLOCKQUOTE>
</P>
<H2><A NAME="ss3.6">3.6</A> <A HREF="DE-PCMCIA-HOWTO.html#toc3.6">Probleme beim Laden der Kernelmodule </A>
<!--PCMCIA!Probleme!Laden der Kernelmodule--></H2>
<P>Das Konfigurationsskript stellt normalerweise sicher, daß die
PCMCIA-Module mit dem installierten Kernel funktionieren. Daher
lassen sich Probleme mit dem Laden der Module meist darauf
zurückführen, daß der Installationsvorgang nicht
korrekt durchgeführt worden ist. Einige solcher Fehlermeldungen
werden direkt auf der Linuxkonsole ausgegeben, andere werden in der
Systemlogdatei aufgezeichnet. Diese heißt normalerweise
<CODE>/usr/adm/messages</CODE> oder <CODE>/var/log/messages</CODE>. Dies
hängt von der Konfiguration des <CODE>syslogd</CODE> Daemons ab
und wird in der Datei <CODE>/etc/syslog.conf</CODE> festgelegt. Um den
Fehler einzugrenzen, sollten dieses Log-Dateien genau untersucht
werden. Auf diese Weise kann auch herausgefunden werden, welches Modul
das Problem verusacht.</P>
<P>Einige der PCMCIA-Module benötigen Kerneldienste, die nur dann vorhanden
sind, wenn der Kernel entsprechend konfiguriert wurde.
Zum Beispiel verlangt der SCSI-Kartentreiber, daß der Kernel mit
SCSI-Unterstützung übersetzt wurde. Analog benötigt der
Netzwerktreiber die Netzwerkunterstützung des Kernels. Wenn dem Kernel
die notwendigen Treiber fehlen, kann es sein, daß sich <CODE>insmod</CODE>
mit der Begründung von undefinierten Symbolen weigert, ein
Modul zu laden. </P>
<P>Wenn <CODE>insmod</CODE> von »wrong version«-Fehlern berichtet, so
bedeutet dies, daß die Module für eine andere Kernelversion als die
aktuell auf dem System laufende übersetzt worden sind. Dieses kann
passieren, wenn die Module auf einem anderen Computer mit anderer
Konfiguration übersetzt worden sind und auf den eigenen kopiert
wurden oder wenn der Kernel nach der Installation der PCMCIA-Module
neu konfiguriert wurde.</P>
<P>Eine andere Fehlerquelle besteht darin, daß die Module und der
Kernel mit unterschiedlichen Einstellungen von
<CODE>CONFIG_MODVERSIONS</CODE> übersetzt worden sind. Wenn ein Modul
mit Versionskontrolle in ein Kernel ohne diese Kontrolle geladen wird, so wird
<CODE>insmod</CODE> sich über undefinierte Symbole beschweren.</P>
<P>Zum Schluß sind noch relativ neue Versionen der <EM>binutils</EM>
inkompatibel mit den älteren Versionen der Modulwerkzeuge. Dies
kann Inkompatibilitäten der Module verursachen. Eine übliche
Fehlermeldung in einem solchen Fall ist die Meldung, daß
<CODE>gcc_compiled</CODE> nicht definiert sei. Wenn diese Fehlermeldungen
erscheinen, sollte man auf die neuesten Modulwerkzeuge
aufrüsten. Diese sind unter
<BLOCKQUOTE><CODE>
<A HREF="http://www.pi.se/blox/modules">http://www.pi.se/blox/modules</A></CODE></BLOCKQUOTE>
zu bekommen.</P>
<H2><A NAME="ss3.7">3.7</A> <A HREF="DE-PCMCIA-HOWTO.html#toc3.7">Interruptprobleme beim Wechsel des Kartenstatus </A>
<!--PCMCIA!Probleme!Interrupts--></H2>
<P>In den meisten Fällen wird der Treiber (<EM>i82365</EM> oder
<CODE>tcic</CODE>) automatisch einen Interrupt suchen und auswählen,
um den Kartenstatus anzuzeigen. Diese automatische Interruptsuche
funktioniert bei einigen Intel-kompatiblen Controllern nicht, wie
z.B. Cirrus Chips und einige in IBM ThinkPads verwendeten Chips. Wenn
ein Gerät während des Testvorgangs inaktiv ist, kann es
passieren, daß der Interrupt dieses Gerätes als frei
erscheint. In solchen Fällen kann es passieren, daß dieser
Interrupt vom Treiber verwendet wird.</P>
<P>Bei den <EM>i82365</EM> und dem <CODE>tcic</CODE> Treibern kann die Option
<CODE>irq_mask</CODE> verwendet werden, um die möglichen Interrupts
einzuschränken. Diese Maske schränkt den Satz der
möglichen Interrupts, die für den Gebrauch mit PCMCIA-Karten
oder für die Anzeige von Kartenstatusänderungen verwendet
können, ein. Die Option <CODE>cs_irq</CODE> kann ebenfalls verwendet
werden, um explizit den Interrupt festzulegen, mit welchem der Wechsel
des Kartenstatus überwacht wird.</P>
<P>Wenn ein funktionierender Interrupt nicht gefunden werden kann, so
besteht die Möglichkeit, einen Pollingmodus zu verwenden. Sowohl der
<EM>i82365</EM> als auch der <CODE>tcic</CODE> Treiber akzeptieren die
Option <CODE>poll_intervall=100</CODE>, durch welche festgelegt wird,
daß sie jede Sekunde Kartenstatus pollen. Diese Option
sollte auch verwendet werden, wenn der Spielraum für freie
Interrupts für den Gebrauch durch PCMCIA stark eingeschränkt
ist. Insbesondere für Systeme mit mehreren PCMCIA Controllern
ist die Zahl der Interrupts zur Anzeige der Statusinformationen der
Karten stark eingeschränkt.</P>
<P>Alle diese Optionen sollten in der <CODE>PCIC_OPTS=</CODE> Zeile in der
Datei <CODE>rc.pcmcia</CODE> gesetzt werden.</P>
<H2><A NAME="ss3.8">3.8</A> <A HREF="DE-PCMCIA-HOWTO.html#toc3.8">Probleme mit der Konfiguration des Speicherfensters </A>
<!--PCMCIA!Probleme!Speicherfenster--></H2>
<P>Per Voreinstellung reservieren sich die PCMCIA-Treiber
Speicherfenster im Bereich 0xc0000-0xfffff nach der
Überprüfung dieses Bereiches auf den Gebrauch durch ROM oder
andere Geräte. Dieses Fenster wird in der Datei
<CODE>/etc/pcmcia/config.opts</CODE> definiert. Die Überprüfung
dieses Bereichs wird durchgeführt, wenn ein Treiber versucht, eine
neue Karte zu konfigurieren. Dieser Prüfvorgang ist nicht
Narrensicher, so daß Probleme auftreten
können. Wenn ein Speicherbereich erkannt wurde, der von einem
anderen Gerät verwendet wird, so kann es passieren, daß die
Karte nicht korrekt erkannt wird. Durch das von einigen Chipsätzen
unterstützte BIOS »Shadowing« können ebenfalls Fehler
entstehen. Wenn man feststellt, daß alle Karten
fälschlicherweise immer als Speicherkarten erkannt werden, sollte
man sichergehen, daß das BIOS »Shadowing« beim Computer
ausgeschaltet ist. Ein gutes Fenster zu finden, erfordert manchmal
einiges Herumexperimentieren. Einige gute Fensteralternativen, die man
versuchen kann, sind die Bereiche 0xd8000-0xdffff, 0xc0000-0xcffff und
0xc8000-0xcffff.</P>
<P>Wenn man DOS PCMCIA Treiber besitzt, kann man versuchen, anhand dieser
einen guten Speicherbereich herauszufinden. Es ist jedoch zu beachten,
daß diese Adressen oft in Segmentform angegeben sind. Es fehlt
in diesem Fall die letzte hexadezimale Ziffer. Die absolute Adresse
0xd0000 würde also z.B. als 0xd000 angegeben werden. Man sollte also
darauf achten, diese letzte Ziffer hinzuzufügen, falls man solche
Werte übernimmmt.</P>
<P>Wenn das Anpassen des Fensters im Speicherbereich das Problem der
Kartenerkennung nicht löst, so liegt wahrscheinlich ein
Geschwindigkeitsproblem (»timing«) vor.</P>
<H2><A NAME="ss3.9">3.9</A> <A HREF="DE-PCMCIA-HOWTO.html#toc3.9">Warum werden die PCMCIA-Treiber nicht binär vertrieben?</A>
</H2>
<P>Das Vertreiben von binären Treibern ist schwierig, da einige
Eigenschaften erst beim Übersetzen der Dateien angegeben werden
können. Die PCMCIA-Module hängen auch von der richtigen
Kernelkonfigutation und -version ab. Daher müssten binäre
Versionen zusammen mit passenden Kerneln vertrieben werden. Der
größte Bedarf an vorübersetzten Modulen besteht bei
der Installation einer Linux-Distribution. In diesem Fall werden die
PCMCIA-Module zum Teil direkt für die Installation benötigt, um z.B. über
eine PCMCIA-Netzwerkkarte die Pakete der Distribution von einem Server
zu beziehen.</P>
<P>PCMCIA ist heute Bestandteil der meisten Linux-Distributionen.</P>
<H2><A NAME="ss3.10">3.10</A> <A HREF="DE-PCMCIA-HOWTO.html#toc3.10">Warum ist das PCMCIA-Paket so groß?</A>
</H2>
<P>Eigentlich ist das Paket nicht so groß. Alle Treibermodule
zusammen benötigen weniger als 200 KB an Speicherplatz auf der
Festplatte. Mit den zusätzlichen Werkzeugen werden es
zusätzlich weitere 70 KB und das Verzeichnis <CODE>/etc/pcmcia</CODE>
belegt ungefähr 30 KB. Im Betrieb benötigen die Hauptmodule
ungefähr 48 KB Hauptstpeicher. Der <CODE>cardmgr</CODE>-Daemon wird
generell direkt ausgelagert und nur beim Kartenwechsel aktiv. Das
gesamte Paket belegt nicht mehr Platz als die DOS-Varianten.</P>
<HR>
<A HREF="DE-PCMCIA-HOWTO-4.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-PCMCIA-HOWTO-2.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-PCMCIA-HOWTO.html#toc3"><IMG SRC="toc.png" ALT="Inhalt"></A>
</BODY>
</HTML>
|