/usr/share/doc/HOWTO/de-html/DE-PCMCIA-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 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 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 | <!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: Gebrauch und Eigenschaften</TITLE>
<LINK HREF="DE-PCMCIA-HOWTO-5.html" REL=next>
<LINK HREF="DE-PCMCIA-HOWTO-3.html" REL=previous>
<LINK HREF="DE-PCMCIA-HOWTO.html#toc4" REL=contents>
</HEAD>
<BODY>
<A HREF="DE-PCMCIA-HOWTO-5.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-PCMCIA-HOWTO-3.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-PCMCIA-HOWTO.html#toc4"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="s4">4.</A> <A HREF="DE-PCMCIA-HOWTO.html#toc4">Gebrauch und Eigenschaften</A></H2>
<H2><A NAME="ss4.1">4.1</A> <A HREF="DE-PCMCIA-HOWTO.html#toc4.1">Werkzeuge zur Überwachung der PCMCIA-Geräte </A>
<!--PCMCIA!Werkzeuge--></H2>
<P>Der <CODE>cardmgr</CODE>-Daemon piept normalerweise, wenn eine neue
Karte eingeführt wird. Der Piepton zeigt den Status der neuen
Karte an. Zwei hohe Töne bedeuten, daß die Karte
erkannt und konfiguriert wurde. Ein hoher und ein tiefer Ton zeigen
an, daß die Karte erkannt aber nicht konfiguriert werden
konnte. Lediglich ein tiefer Ton zeigt an, daß die neue Karte
nicht erkannt wurde.</P>
<P>Wenn die Module korrekt geladen wurden, sollte das Kommando
<CODE>lsmod</CODE>, ohne eingeführte Karten, folgende Ausgabe zeigen:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
Module: #pages: Used by:
ds 2
i82365 3
pcmcia_core 7 [ds i82365]
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Alle PCMCIA-Module und der <CODE>cardmgr</CODE>-Daemon senden
Statusmeldungen an den <CODE>syslog</CODE>-Daemon. Diese Meldungen
werden dann gewöhnlich in die Datei <CODE>/var/log/messages</CODE>
oder <CODE>/usr/adm/messages</CODE> geschrieben. Diese Dateien sollten bei
der Fehlersuche als erstes untersucht werden. Wenn ein
Fehlerreport geschrieben wird, sollte der Inhalt dieser Datei
mitgeschickt werden. Wenn Probleme bestehen, die Systemmeldungen zu
finden, sollte die Datei <CODE>/etc/syslogd.conf</CODE> daraufhin
untersucht werden, wie die verschiedenen Nachrichtenklassen behandelt
werden.</P>
<P>
<!--
/var/run/stab
-->
<!--
PCMCIA!/var/run/stab
-->
<CODE>cardmgr</CODE> speichert einige Informationen der aktuell genutzten
Karten in jedem Slot in der Datei <CODE>/var/run/stab</CODE>. Hier ist
ein Beispiel für den Inhalt einer solchen Datei:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
Socket 0: Adaptec APA-1460 SlimSCSI
0 scsi aha152x_cs 0 sda 8 0
0 scsi aha152x_cs 1 scd0 11 0
Socket 1: Serial or Modem Card
1 serial serial_cs 0 ttyS1 5 65
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Im ersten Feld steht der verwendet Slot, das zweite enthält die
Geräteklasse, das dritte den Treibernamen, das vierte wird
verwendet, um die verschiedenen Geräte, die an den gleichen Treiber
angeschlossen sind, durchzunumerieren. Das fünfte Feld ist der
Gerätename und die letzten beiden Felder enthalten die Major- und
Minor-Gerätenummern, falls diese angebbar sind.</P>
<P>
<!--
PCMCIA!cardctl!config
-->
<!--
cardctl!config
-->
Das Kommando <CODE>cardctl</CODE> kann verwendet werden, um den Status der
Slots zu ermitteln oder zu sehen, wie sie konfiguriert sind. Hier ist
eine Beispielausgabe des <CODE>cardctl config</CODE> Kommandos:
<BLOCKQUOTE><CODE>
<PRE>
Socket 0:
Socket 1:
Vcc = 5.0, Vpp1 = 0.0, Vpp2 = 0.0
Card type is memory and I/O
IRQ 3 is dynamic shared, level mode, enabled
Speaker output is enabled
Function 0:
Config register base = 0x0800
Option = 0x63, status = 0x08
I/O window 1: 0x0280 to 0x02bf, auto sized
I/O window 2: 0x02f8 to 0x02ff, 8 bit
</PRE>
</CODE></BLOCKQUOTE>
<!--
PCMCIA!cardinfo
-->
<!--
cardinfo
-->
Wenn X läuft, wird das Programm <CODE>cardinfo</CODE> in einer
grafischen Anzeige den Status aller PCMCIA-Slots anzeigen,
ähnlich wie es <CODE>cardctl config</CODE> tut.</P>
<H2><A NAME="ss4.2">4.2</A> <A HREF="DE-PCMCIA-HOWTO.html#toc4.2">Überblick der PCMCIA-Konfigurationsskripte </A>
<!--PCMCIA!Konfigurationsskripte--></H2>
<P>Jedes PCMCIA-Gerät ist mit einer <EM>Klasse</EM> verknüpft,
welche beschreibt, wie es konfiguriert und gehandhabt werden
soll. Klassen sind mit Gerätetreibern verknüpft, die in
<CODE>/etc/pcmcia/config</CODE> beschrieben sind. Aktuell sind dort
fünf Ein-/Ausgabe-Geräteklassen (Netzwerk, SCSI, CD-ROM,
Festplatten und serielle Geräte) und drei Speicherklassen (FTL,
memory und pcmem) definiert. Zu jeder Klasse existieren zwei Skripte in
<CODE>/etc/pcmcia/config</CODE>: Ein Hauptkonfigurationsskript,
z.B. <CODE>/etc/pcmcia/scsi</CODE> für SCSI-Geräte, und ein
Optionsskript, z.B. <CODE>/etc/pcmcia/scsi.opts</CODE>. Das Hauptskript
für ein Gerät wird aufgerufen, um eine Karte zu
konfigurieren, die gerade eingeschoben wird und um das Gerät
herunterzufahren, wenn die Karte herausgenommen wird. Für Karten
mit mehreren Geräten wird das Skript für jedes Gerät
gestartet.</P>
<P>Das Konfigurationsskript entnimmt als erstes einige Informationen aus
<CODE>/var/run/stab</CODE>. Jedes Skript bildet eine
<EM>Geräteadresse</EM>, welche eindeutig das Gerät
beschreibt, welches es konfiguriert, und speichert sie in der <CODE>ADDRESS</CODE>
Variablen. Diese wird an das <CODE>*.opts</CODE> Skript
weitergegeben. Dieses Skript soll dann die Informationen für die
Konfiguration des Gerätes an dieser Adresse liefern. Bei einigen
Geräten ist diese Adresse lediglich die Slotnummer, bei anderen
enthält sie zusätzliche Informationen, die hilfreich bei der
Konfiguration sein können. Zum Beispiel enthalten die
Geräteadressen von Netzwerkkarten die Ethernetadressen. Auf diese
Weise kann das <CODE>network.opts</CODE>-Skript diese Karte von anderen
Netzwerkkarten unterscheiden und somit zwischen verschiedenen Konfigurationen
wählen.</P>
<P>Der erste Teil aller Geräteadressen ist das aktuelle PCMCIA-Schema.
Dieser Parameter wird verwendet, um zwischen verschiedene
Sätzen von Konfigurationen zu wählen. Eine Anwendung der
Schemata könnte es sein, eine Konfiguration für daheim und eine
für die Arbeit zu haben, welche verschiedene Parameter für
die Netzwerkkonfiguration benötigen. Das aktuelle Schema wird mit dem
Kommando <CODE>cardctl</CODE> ausgewählt. Die Voreinstellung, wenn kein
Schema gesetzt wird, ist <CODE>default</CODE>.</P>
<P>Eine generelle Regel für die Konfiguration von Linux auf
Notebooks ist, daß alle PCMCIA-Geräte nur über die
PCMCIA-Geräte-Skripte konfiguriert werden. Man sollte
nicht versuchen, PCMCIA-Geräte wie permanent angeschlossene
Geräte zu konfigurieren.</P>
<H2><A NAME="ss4.3">4.3</A> <A HREF="DE-PCMCIA-HOWTO.html#toc4.3">PCMCIA-Netzwerkkarten </A>
<!--PCMCIA!Netzwerkkarten--> <!--Netzwerk!Treiber!PCMCIA-Karten--></H2>
<P>Ethernetkarten unter Linux haben normalerweise Namen wie <CODE>eth0</CODE>, <CODE>eth1</CODE>
und so weiter. Token-Ring-Karten werden ähnlich gehandhabt,
allerdings haben sie Namen wie <CODE>tr0</CODE>, <CODE>tr1</CODE> und so weiter. Das Kommando
<CODE>ifconfig</CODE> wird verwendet, um den Status von Netzwerkkarten zu
erfragen oder zu ändern. Eine Besonderheit unter Linux ist,
daß diese Netzwerkkarten keine entsprechenden Gerätedateien
in dem Verzeichnis <CODE>/dev</CODE> besitzen. Daher sollte man sich nicht
wundern, wenn man dort auch keine findet.</P>
<P>
<!--
/etc/pcmcia/network
-->
<!--
PCMCIA!/etc/pcmcia/network
-->
Wenn eine PCMCIA-Ethernetkarte entdeckt wird, so bekommt sie den ersten
verfügbaren Schnittstellennamen; dieser wird wahrscheinlich
<CODE>eth0</CODE> sein. <CODE>cardmgr</CODE> wird das Skript
<CODE>/etc/pcmcia/network</CODE> starten, um die Karte zu konfigurieren.</P>
<P>
<!--
/etc/pcmcia/network.opts
-->
<!--
PCMCIA!/etc/pcmcia/network.opts
-->
Es ist nicht ratsam, die Konfiguration der PCMCIA-Ethernetkarte in die
Startskripte des Linux-Systems einzutragen, da es passieren kann,
daß die Karte noch nicht vorhanden ist, wenn Linux hochgefahren
wird. Wenn das System eine automatische Prozedur zur Konfiguration des
Netzwerks hat, so sollte hier angegeben werden, daß keine
Netzwerkkarte vorhanden ist. Stattdessen sollte die Datei
<CODE>/etc/pcmcia/network.opts</CODE> den Bedürfnissen des Netzwerks
angepaßt werden. Die Skripte <CODE>network</CODE> und
<CODE>network.opts</CODE> werden nur ausgeführt, wenn eine
Ethernetkarte anwesend ist.</P>
<P>Die Geräteadresse, die <CODE>network.opts</CODE> übergeben wird,
besteht aus vier durch Kommata getrennte Felder: Schema, Slotnummer,
Geräteinstanz und die Hardware-Ethernetadresse der Karte. Die
Geräteinstanz wird verwendet, um die Geräte von Karten,
die mehrere Netzwerkschnittstellen enthalten, durchzunumerieren. Sie
wird daher meistens 0 sein. Wenn mehrere Netzwerkkarten für
verschiedene Verwendungen benutzt werden sollen, so besteht eine
Möglichkeit darin, die Karten über ihre verschiedenen
Slotnummern zu konfigurieren wie z.B. hier:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
case "$ADDRESS" in
*,0,*,*)
# Definition der Netzwerkkarte in Slot 0
;;
*,1,*,*)
# Definition der Netzwerkkarte in Slot 1
;;
esac
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Alternativ können diese Karten über ihre Hardware-Adressen
konfiguriert werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
case "$ADDRESS" in
*,*,*,00:80:C8:76:00:B1)
# Definition einer D-Link Karte
;;
*,*,*,08:00:5A:44:80:01)
# Definition einer IBM Karte
esac
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>
<!--
NFS!PCMCIA Netzwerkkarten
-->
Um automatisch NFS-Dateisysteme einzubinden oder zu entfernen, ist es sinnvoll,
alle diese Dateisysteme als ersten Schritt in die Datei <CODE>/etc/fstab</CODE>
einzutragen. Allerdings sollte im Optionsfeld der Eintrag
<CODE>noauto</CODE> stehen. In der Datei <CODE>network.opts</CODE> müssen
dann die Verzeichnisse, in die die NFS-Dateisysteme gemountet werden,
in der Variablen <CODE>MOUNTS</CODE> aufgelistet werden. Es ist besonders wichtig,
entweder <CODE>cardctl</CODE> oder <CODE>cardinfo</CODE> zu verwenden, um eine
Netzwerkverbindung zu unterbrechen, wenn NFS-Dateisysteme auf diese
Weise verwendet werden. Es ist nicht möglich, ein NFS-Dateisystem
sauber abzubauen, wenn lediglich die Karte ohne Warnung herausgenommen
wird.</P>
<P>Zusätzlich zur gewöhnlichen Netzwerkkonfiguration kann das
Skript <CODE>network.opts</CODE> zusätzliche Funktionen ausführen, wenn die
Netzwerkkarte schon konfiguriert worden ist oder bevor die
Netzwerkverbindung abgebaut werden kann. Wenn <CODE>network.opts</CODE>
eine Shellfunktion <CODE>start_fn</CODE> definiert, so wird diese nach der
Konfiguration der Karte aufgerufen. Dabei wird der Schnittstellenname
als einziges Argument übergeben. Analog wird die Funktion
<CODE>stop_fn</CODE>, wenn sie definiert ist, aufgerufen, bevor die
Netzwerkkarte heruntergefahren wird.</P>
<H3>Auswahl des Transceivers <!--PCMCIA!Netzwerkkarten!Transceiver--> <!--ifport--> <!--PCMCIA!ifport--></H3>
<P>Der Transceiver-Typ kann durch Verwendung der Variablen
<CODE>IF_PORT</CODE> bestimmt werden. Dies kann entweder ein numerischer
Wert sein, wie er in früheren PCMCIA-Versionen verwendet wurde,
oder ein Schlüsselwort, das den Transceiver-Typ bestimmt. Das
voreingestellte Verhalten aller Netzwerktreiber ist es, den Typ
automatisch zu erkennen, wenn dies möglich ist, oder
10baseT zu verwenden. Das Kommando <CODE>ifport</CODE> kann verwendet
werden, um den aktuellen Typ zu kontrollieren oder zu ändern. Zum
Beispiel:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# ifport eth0 10base2
# ifport eth0
eth0 2 (10base2)
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Aktuelle Versionen des 3c589-Treibers versuchen, die Netzwerkverbindung
automatisch zu entdecken. Allerdings scheint es so, als ob dies noch
nicht einwandfrei funktioniert. Damit die automatische Erkennung
läuft, sollte das Netzwerkkabel an der Karte angeschlossen sein,
wenn diese konfiguriert wird. Alternativ kann man nach Anschluß
des Netzes den Treiber zwingen, die Verbindung noch einmal zu
überprüfen:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# ifconfig eth0 down up
</PRE>
</CODE></BLOCKQUOTE>
</P>
<H3>Anmerkungen zu speziellen Karten <!--PCMCIA!Netzwerkkarten!Anmerkungen--></H3>
<P>
<UL>
<LI>Bei IBM CCAE und Socket EA Karten muß der Transceiver-Typ
(10base2, 10baseT oder AUI) nach Konfiguration der Netzwerkkarte
festgelegt werden. In der Systemlog-Datei sollte danach der richtige
Transceiver-Typ erscheinen. Dies sollte man überprüfen.
</LI>
<LI>Die Treiber für SMC-, Megahertz-, Ositech- und 3Com-Karten
sollten den angeschlossen Netzwerktyp (10base2 oder 10baseT)
automatisch erkennen. Das Setzen des Transceiver-Typs, wenn der Treiber
geladen wird, hilft der Karte, den richtigen Typ zu erraten.
</LI>
<LI>Die Farallon EtherWave-Karte basiert auf einer 3Com 3c589 mit
einem speziellen Transceiver. Obwohl die EtherWave die
10baseT-Verbindungen verwendet, verlangt der Transceiver, daß
der 3c589-Treiber den 10base2-Modus verwendet.
</LI>
<LI>Wenn Probleme mit den Karten IBM CCAE, NE4100, Thomas Conrad
oder Kingston bestehen, sollte man die Speicherzugriffszeit
erhöhen, indem man die Option <CODE>mem_speed=\#</CODE> beim Modul
<CODE>pcnet_cs</CODE> verwendet. Ein Beispiel, wie dies zu machen ist, findet
man in der Standarddatei <CODE>config.opts</CODE>. Man sollte Zeiten bis zu 1000
Nanosekunden verwenden.
</LI>
<LI>Für die New Media Ethernetkarte kann es bei einigen Systemen
notwendig sein, die Zugriffszeit auf die I/O-Ports zu
erhöhen. Dies geschieht mit der Option <CODE>io_speed=\#</CODE>, wenn
das Modul <CODE>pcmcia_core</CODE> geladen wird. Um diese Option zu setzen,
muß die Variable <CODE>CORE_OPTS</CODE> im Startskript editiert
werden.
</LI>
<LI>Die Multicastunterstützung des New Media Ethernettreibers ist
unvollständig. Der neueste Treiber wird mit den
Multicast-Kerneln funktionieren, aber sämtliche
Multicast-Pakete ignorieren. Der Promiscuous Modus
sollte normal funktionieren.
</LI>
<LI>Der Treiber für IBM und 3Com Token-Ring-Karten scheint sich
sehr schlecht zu verhalten, wenn die Karten bei der Initialisierung
nicht mit einem Ring verbunden sind. Diese Karten sollten
immer mit dem Netz verbunden werden, bevor sie eingeschoben werden.
</LI>
<LI>Neuere Linksys- und D-Link-Karten haben einen einzigartigen Weg,
um den Transceiver-Typ auszuwählen. Bis David einige
Informationen von Linksys erhält, ist der einzig gangbare Umweg
der, daß zuerst DOS gestartet wird und die herstellertypischen
Konfigurationsprogramme verwendet werden, um den Transceiver-Typ
auszuwählen. Danach sollte ein Warmstart zu Linux erfolgen.</LI>
</UL>
</P>
<H3>Untersuchung von Problemen mit Netzwerkkarten <!--PCMCIA!Netzwerkkarten!Probleme--> <!--PCMCIA!Probleme!Netzwerkkarte--></H3>
<P>
<UL>
<LI>Wird die Karte als Ethernetkarte erkannt? Überprüfen Sie
die Systemlog-Dateien, stellen Sie sicher, daß <CODE>cardmgr</CODE>
die Karte korrekt erkennt und die richtigen Netzwerktreiber startet.
Wenn dies nicht geschieht, kann es sein, daß die Karte trotzdem
verwendbar ist, wenn sie mit einer unterstützten Karte baugleich
ist. Dieses ist am einfachsten, wenn die Karte, was häufig der Fall
ist, kompatibel zur NE2000 ist.
</LI>
<LI>Ist die Karte korrekt konfiguriert? Wenn eine unterstützte
Karte verwendet wird und diese von <CODE>cardmgr</CODE> erkannt wird, aber
dennoch nicht funktioniert, so kann ein Interrupt- oder Port-Konflikt
mit einem anderen Gerät vorliegen. Dazu sollte man die Ressourcen,
die die Karte verwendet, mit Hilfe der Systemlog-Datei herausfinden und
versuchen, diese in der Datei <CODE>/etc/pcmcia/config.opts</CODE>
auszuschließen, um die Karte zu zwingen, andere zu verwenden.
</LI>
<LI>Wenn Meldungen wie »network unreachable« bei Zugriff auf
das Netzwerk erscheinen, dann wurde wahrscheinlich die Datei
<CODE>/etc/pcmcia/network.opts</CODE> falsch editiert. Auf der anderen
Seite verursachen falsch konfigurierte Karten keine Meldungen.
</LI>
<LI>Bei der Analyse der Probleme in der Datei
<CODE>/etc/pcmcia/network.opts</CODE> sollte man als erstes mit dem
Kommando <CODE>ping</CODE> ausprobieren, ob andere Rechner im gleichen Subnetz
unter Verwendung ihrer IP-Adresse erreichbar sind. Danach sollte man
versuchen, das Gateway und zum Schluß Rechner innerhalb anderer
Subnetze mittels <CODE>ping</CODE> zu erreichen. Die Verwendung
von <CODE>ping</CODE> mit Computernamen sollte erst nach diesem
simpleren Test erfolgen.
</LI>
<LI>Man sollte sicherstellen, daß das Problem wirklich ein
PCMCIA-Problem ist. Es kann hilfreich sein, zu kontrollieren, ob die
Karte unter DOS mit den Treibern des Herstellers einwandfrei läuft.
Man sollte die Änderungen in dem Skript <CODE>/etc/pcmcia/network.opts</CODE>
doppelt kontrollieren. Der Anschluß des Kabels, das
T-Stück, die Abschlußwiderstände etc. sollten ebenfalls gründlich
überprüft werden.</LI>
</UL>
</P>
<H2><A NAME="ss4.4">4.4</A> <A HREF="DE-PCMCIA-HOWTO.html#toc4.4">Serielle Schnittstellen und Modems </A>
<!--PCMCIA!serielle Schnittstelle--> <!--PCMCIA!Modem--> <!--serielle Schnittstelle!PCMCIA Karte--> <!--Modem!PCMCIA Karte--></H2>
<P>Unter Linux wird auf serielle Schnittstellen über die speziellen Dateien
<CODE>/dev/cua*</CODE> und <CODE>/dev/ttyS*</CODE> zugegriffen. Die
<CODE>ttyS*</CODE> Dateien werden für eingehende Verbindungen
(z.B. angeschlossenes Terminal) und die Dateien <CODE>cua*</CODE> für
ausgehende Verbindungen (z.B. Modem) verwendet. Jeder physische
Anschluß hat sowohl eine <CODE>ttyS*</CODE> als auch eine <CODE>cua*</CODE>
Gerätedatei: Es hängt von einem selber ab, welche man
verwendet. Jedoch ist ein Trend bei Linux zu erkennen, die
<CODE>cua*</CODE> Devices nicht mehr zu benutzen. Debian GNU/Linux wird
bereits ganz ohne die <CODE>cua*</CODE> Devices ausgeliefert. Die Konfiguration
einer seriellen Schnittstelle kann mit dem
Kommando <CODE>setserial</CODE> untersucht und verändert werden.</P>
<P>
<!--
/etc/pcmcia/serial.opts
-->
<!--
PCMCIA!/etc/pcmcia/serial.opts
-->
Wird eine serielle oder Modem-PCMCIA-Karte entdeckt, so erhält
sie die erste freie Geräteadresse. Dies wird gewöhnlich,
abhängig von der Zahl der im Computer bereits eingebauten seriellen
Schnittstellen, <CODE>/dev/ttyS1</CODE> (<CODE>cua1</CODE>) oder <CODE>/dev/ttyS2</CODE>
(<CODE>cua2</CODE>) sein. Die <CODE>ttyS*</CODE> Geräte sind diejenigen, die in
<CODE>/var/run/stab</CODE> angegeben sind. Das Standardskript für
serielle Geräte, <CODE>/etc/pcmcia/serial.opts</CODE>, wird das
entsprechende <CODE>cua*</CODE> Gerät auf die Datei
<CODE>/dev/modem</CODE> linken.</P>
<P>Man sollte nicht versuchen, das Systemstartskript für serielle
Geräte zur Konfiguration von PCMCIA-Modems zu verwenden. Dieses
Skript sollte nur zur Konfiguration nicht-entfernbarer Geräte
benutzt werden. Für die spezielle Konfiguration eines Modems
dient die Datei <CODE>/etc/pcmcia/serial.opts</CODE>. Auch sollte
nicht das Kommando <CODE>setserial</CODE> verwendet werden, um die
I/O-Adresse oder den Interrupt eines seriellen PCMCIA-Gerätes
zu verändern. Dies würde den seriellen Treiber anweisen, das
Gerät an einer anderen Stelle zu suchen. Dies würde aber nichts
an der aktuellen Einstellung der PCMCIA-Karte ändern. Das
serielle Konfigurationsskript erlaubt einem, sowohl
<CODE>setserial</CODE>-Optionen anzugeben, als auch festzulegen, ob eine
Zeile für diese Schnittstelle in die Datei <CODE>/etc/inittab</CODE>
eingefügt werden soll.</P>
<P>Die Geräteadresse, die dem Skript <CODE>serial.opts</CODE>
übergeben wird, besteht aus drei durch Kommata getrennte Felder:
Das erste enthält das Schema, das zweite die Slotnummer und das
dritte die Geräteinstanz. Letztere kann für Karten, die
mehrere serielle Anschlüsse unterstützen, verschiedene Werte
annehmen. Für Karten, die nur einen Anschluß haben, ist
dieser Wert immer 0. Wenn gewöhnlich mehrere PCMCIA-Modemkarten
verwendet werden, können diese durch die Slotnummer
unterschiedlich konfiguriert werden, wie z.B.:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
case "$ADDRESS" in
*,0,*)
# Optionen Modem in Slot 0
LINK=/dev/modem0
;;
*,1,*)
# Optionen Modem in Slot 1
LINK=/dev/modem1
;;
esac
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Wenn ein PCMCIA-Modem bereits konfiguriert ist, wenn Linux gestartet
wird, kann es passieren, daß das Modem fälschlicherweise
als eine gewöhnliche fest eingebaute serielle Schnittstelle identifiziert
wird. Dies ist harmlos. Wenn der
PCMCIA-Treiber Kontrolle über das Modem übernimmt, wird diesem eine
andere Gerätedatei zugewiesen. Es ist daher gut, entweder die
Datei <CODE>/var/run/stab</CODE> zu durchforsten oder <CODE>/dev/modem</CODE>
zu verwenden, anstatt zu erwarten, daß ein PCMCIA-Modem stets der
gleichen Gerätedatei zugeordnet wird.</P>
<P>Wenn der Kernel konfiguriert wurde, die Grundtreiber für die
seriellen Geräte als ein Modul zu laden, so muß die Datei
<CODE>/etc/pcmcia/config</CODE> editiert werden, damit diese Module
geladen werden. Ändern Sie in diesem Fall den seriellen
Geräteeintrag auf diese Weise:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
device "serial_cs"
class "serial" module "char/serial", "serial_cs"
</PRE>
</CODE></BLOCKQUOTE>
</P>
<H3>Analyse von Problemen mit seriellen Geräten <!--PCMCIA!Probleme!serielle Schnittstelle--> <!--PCMCIA!Probleme!Modem--></H3>
<P>
<UL>
<LI>Ist die Karte als ein Modem erkannt worden? Kontrollieren Sie die
Systemlog-Dateien und stellen Sie sicher, daß <CODE>cardmgr</CODE> die
Karte korrekt erkennt und den <CODE>serial_cs</CODE> Treiber startet. Wenn
dies nicht funktioniert, muß eventuell ein neuer Eintrag in der
Datei <CODE>/etc/pcmcia/config</CODE> gemacht werden, so daß die Karte richtig
erkannt wird. Siehe Abschnitt
<A HREF="#DE-PCMCIA-HOWTO-unerkannt">PCMCIA Speicherkarten</A> für mehr Details.
</LI>
<LI>Wurde das Modem erfolgreich durch <CODE>serial_cs</CODE>
konfiguriert? Erneut sollte die Systemlog-Datei untersucht
werden. Sind Meldungen vom <CODE>serial_cs</CODE> Treiber vorhanden? Wenn
Einträge wie <CODE>register_serial() failed</CODE> erfolgt sind, kann
es sein, daß Konflikte in der I/O-Adresse mit anderen
Geräten vorliegen. Ein anderer Hinweis auf ein Problem ist die
Meldung, daß die Karte eine <CODE>8250</CODE> sei. Die meisten
modernen Modemkarten sollten als ein <CODE>16550A UART</CODE> erkannt
werden. Bei dem Verdacht auf einen Adressenkonflikt sollte die Datei
<CODE>/etc/pcmcia/config.opts</CODE> editiert werden und der
Adressenbereich, den das Modem belegt, ausgeschlossen werden.
</LI>
<LI>Besteht ein Interruptkonflikt? Wenn die Systemlog-Datei gut
aussieht, aber das Modem trotzdem nicht zu funktionieren scheint, sollte
man versuchen, über das <CODE>setserial</CODE> Programm den Interrupt
auf Null zu setzen und zu kontrollieren, ob das Modem so
läuft. Dies veranlaßt das Modem, den langsameren
Polling-Modus anstelle des Interrupt-Modus zu verwenden. Wenn
dies das Problem zu lösen scheint, ist es wahrscheinlich,
daß ein anderes Gerät den gleichen Interrupt wie das PCMCIA-Gerät verwendet.
In diesem Fall sollte
eine Zeile in <CODE>/etc/pcmcia/config.opts</CODE> eingefügt werden,
die diesen Interrupt ausschließt.
</LI>
<LI>Wenn es scheint, daß das Modem wirklich sehr langsam
läuft, ist dies meist ein sicheres Kennzeichen für einen
Interruptkonflikt.
</LI>
<LI>Man sollte sicherstellen, daß es sich wirklich um ein
PCMCIA-Problem handelt. Es kann hilfreich sein, sich zu vergewissern, ob die
Karte unter DOS mit den Herstellertreibern funktioniert. Ebenso sollte
die Karte nicht gleich mit derart komplexen Dingen wie SLIP getestet
werden, bis man sicher ist, daß man einfache Verbindungen
herstellen kann. Wenn einfache Verbindungen gelingen und SLIP
fehlschlägt, so liegt das Problem wahrscheinlich bei SLIP und
nicht bei PCMCIA.</LI>
</UL>
</P>
<H2><A NAME="ss4.5">4.5</A> <A HREF="DE-PCMCIA-HOWTO.html#toc4.5">PCMCIA SCSI-Controller </A>
<!--PCMCIA!SCSI Karten--> <!--SCSI!Host-Adapter!PCMCIA Karte--></H2>
<P>Alle derzeit unterstützten PCMCIA-Karten funktionieren genauso wie
folgende ISA-Bus-Karten: Qlogic, Adaptec 152x oder Future
Domain TMC-16x0. Die PCMCIA-Treiber werden durch Einbindung von
einigem PCMCIA-spezifischen Programmcode (in <CODE>qlogic_cs.c</CODE>,
<CODE>toaster_cs.c</CODE> oder <CODE>fdomain_cs.c</CODE>) aus den normalen
Linux SCSI-Treibern gebildet.</P>
<P>Wenn ein SCSI-Controller entdeckt wird, wird von dem SCSI-Treiber nach
neuen SCSI-Geräten gesucht. Die Systemlog-Dateien sollten Auskunft
darüber geben, ob ein Gerät ordentlich erkannt wird. Den neuen
SCSI-Geräten werden die ersten verfügbaren SCSI-Devices zugewiesen.
Die erste SCSI-Festplatte wird
<CODE>/dev/sda</CODE>, das erste Bandlaufwerk <CODE>/dev/st0</CODE> und das
erste CD-ROM-Laufwerk wird <CODE>/dev/scd0</CODE> sein.</P>
<P>
<!--
PCMCIA!/etc/pcmcia/scsi
-->
<!--
/etc/pcmcia/scsi
-->
Mit Kernel 1.3.x und späteren Versionen sind die PCMCIA-Kerntreiber
fähig, vom Kernel aus herauszufinden, welche SCSI-Geräte an
der Karte angeschlossen sind. Diese werden in der Datei
<CODE>/var/run/stab</CODE> aufgelistet und das SCSI-Konfigurationsskript,
<CODE>/etc/pcmcia/scsi</CODE>, wird für jedes angeschlossene
Gerät aufgerufen und zwar entweder um das Gerät zu
konfigurieren oder um es herunterzufahren. Das Standardskript
unternimmt nichts, um SCSI-Geräte zu konfigurieren, aber gemountete
Dateisysteme werden ordentlich aus dem Verzeichnisbaum entfernt,
wenn die PCMCIA-Karte aus dem Rechner genommen wird.</P>
<P>Mit Kernel 1.2.x können die PCMCIA-Treiber nicht automatisch erkennen,
welches Gerät an welchem SCSI-Controller angeschlossen ist. Wenn man
eine normale SCSI-Gerätekonfiguration hat, so kann
man diese Geräte in der Datei <CODE>/etc/pcmcia/scsi.opts</CODE> auflisten. Zum
Beispiel, wenn man normalerweise nur eine Festplatte und ein
CD-ROM-Laufwerk verwendet, würde man folgendes verwenden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
# Kernel 1.2.x: Liste der angeschlossenen Komponenten
SCSI_DEVICE="sda scd0"
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Die Geräteadressen, die dem Skript <CODE>scsi.opts</CODE>
übergeben werden, sind kompliziert, da eine große Zahl
verschiedenartiger Geräte an einen SCSI-Controller angeschlossen
werden kann. Die Adressen bestehen entweder aus sechs oder
sieben durch Kommata getrennte Felder: Das aktuelle Schema, der
Gerätetyp, die Slotnummer, der SCSI-Kanal, die ID, die logische
Einheitennummer (LUN) und eventuell die Partitionsnummer. Der Gerätetyp
wird <CODE>sd</CODE> für Festplatten, <CODE>st</CODE> für
Bandlaufwerke, <CODE>sr</CODE> für CD-ROM-Laufwerke und <CODE>sg</CODE>
für generische SCSI-Geräte sein. Bei den meisten
Einstellungen wird der SCSI-Kanal und die Einheitennummer 0
sein. Für Festplatten mit verschiedenen Partitionen wird
<CODE>scsi.opts</CODE> erst für das gesamte Gerät mit einer
fünf Felder enthaltenden Adresse aufgerufen. Das Skript sollte
dann die Variable <CODE>PARTS</CODE> als eine Liste anlegen, die die
Partitionen enthält. Danach wird <CODE>scsi.opts</CODE> mit einer
sieben Felder enthaltenden Adresse für jede Partition
aufgerufen. Hier ist zum Beispiel ein Skript zur Konfiguration einer
Festplatte an SCSI ID 3 mit zwei Partitionen und einem
CD-ROM-Laufwerk an SCSI ID 6:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
case "$ADDRESS" in
*,sd,*,0,3,0)
# diese Festplatte hat zwei Partitionen
PARTS="1 2"
;;
*,sd,*,0,3,0,1)
# Optionen Partition 1:
# aktualisiere /etc/fstab und mounte ein ext2 fs
# auf /usr1
DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
FSTYPE="ext2"
OPTS=""
MOUNTPT="/usr1"
;;
*,sd,*,0,3,0,2)
# Optionen Partition 2:
# aktualisiere /etc/fstab und mounte ein MS-DOS fs
# auf /usr2
DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
FSTYPE="msdos"
OPTS=""
MOUNTPT="/usr2"
;;
*,sr,*,0,6,0)
# Optionen CD-ROM an SCSI ID 6
PARTS=""
DO_FSTAB="y" ; DO_FSCK="n" ; DO_MOUNT="y"
FSTYPE="iso9660"
OPTS="ro"
MOUNTPT="/cdrom"
;;
esac
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Wenn der Kernel keine Grundtreiber für besondere SCSI-Geräte
wie Festplatten, Bandlaufwerke, etc. enthält, dann wird das
Gerät nicht vom PCMCIA-Treiber konfiguriert. Als ein Nebeneffekt
wird der Gerätename in <CODE>var/run/stab</CODE> etwas wie
<CODE>sd\#nnnn</CODE> sein, wobei <CODE>nnnn</CODE> eine vierstellige
Hexadezimalzahl ist. Dies passiert, wenn <CODE>cardmgr</CODE> nicht in der
Lage ist, die SCSI-ID-Nummer in einen entsprechenden
Linux-Gerätenamen zu übersetzen.</P>
<P>Es ist möglich, die SCSI-Grundtreiber für den Kernel zu
modularisieren, so daß diese nur geladen werden, wenn ein
PCMCIA-SCSI-Controller entdeckt wird. Um dies zu erreichen, muß die
Datei <CODE>/etc/pcmcia/config</CODE> editiert werden, damit
<CODE>cardmgr</CODE> weiß, welche zusätzlichen Module geladen
werden müssen, um den Controller zu konfigurieren. Zum Beispiel</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
device "aha152x_cs"
class "scsi" module "scsi/scsi_mod", "scsi/sd_mod",
"aha152x_cs"
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>würde das SCSI-Kernmodul und die Grundmodule für SCSI-Festplatten vor
dem regulären PCMCIA-Treiber laden. Das PCMCIA-Konfigurationsskript
wird nicht automatisch modularisierte SCSI-Module
entdecken, so daß die SCSI-Unterstützung manuell in die
Konfigurationsskripte eingetragen werden muß.</P>
<P>SCSI-Geräte sollten immer als erstes, vor dem Notebook oder dem
Einführen der Karte, eingeschaltet werden, so daß der
SCSI-Bus ordentlich terminiert ist, wenn der Controller konfiguriert
wird. Man sollte auch äußerst vorsichtig sein, bevor man eine
SCSI-Controllerkarte entfernt. In diesem Fall sollte man sicher sein,
daß alle angeschlossenen SCSI-Geräte
ordnungsgemäß heruntergefahren wurden. Der sicherste Weg
dies zu erreichen ist es, entweder <CODE>cardctl</CODE> oder
<CODE>cardinfo</CODE> zu verwenden und eine Kartenentfernung anzufordern,
bevor man die Karte physisch entfernt. Bis jetzt müssen alle
SCSI-Geräte eingeschaltet sein, bevor der SCSI-Controller
eingeführt wird und sollten solange angeschlossen bleiben, bis
der Controller wieder entfernt wird oder das Notebook ausgeschaltet
wird. </P>
<P>
<!--
SCSI!Termination Power
-->
<!--
SCSI!Terminator
-->
Es besteht die Möglichkeit von Komplikationen bei Karten, die bei
normalen ISA-Bus-Controllern nicht bestehen. Der SCSI-Bus enthält
eine »Termination Power« Leitung, welche für den
ordentlichen Betrieb von passiven SCSI Terminatoren notwendig ist.
PCMCIA-SCSI-Controller speisen diese Leitung nicht. Falls die Leitung
benötigt wird, muß sie von einem anderen SCSI-Geräte gespeist werden.
Einige externe SCSI-Geräte können so konfiguriert
werden, daß sie diese Leitung speisen. Andere, wie z.B. das
ZIP-Laufwerk oder das Syquest EZ-Laufwerk verwenden aktive Terminierungen
und benötigen diese Leitung daher nicht. In einigen Fällen kann es
notwendig sein, einen speziellen externen Termininator wie den <EM>APS SCSI
Sentry 2</EM> zu verwenden, der über ein eigenes Netzteil verfügt.</P>
<P>
<!--
SCSI!Host-Adapter!Adaptec
-->
<!--
Adaptec!APA-460 SlimSCSI
-->
<!--
Trantor!SlimSCSI
-->
Der <EM>Adaptec APA-460 SlimSCSI</EM>-Controller wird nicht
unterstützt. Diese Karte wurde ursprünglich unter dem Namen
<EM>Trantor</EM> verkauft. Nach der Übernahme von
Trantec durch Adaptec wurde dieser Controller als Teil der
Adaptec-Produktserie verkauft. Der <EM>APA-460</EM> ist
mit keinem existierenden Linuxtreiber kompatibel. David ist sich nicht
sicher, wie schwer es sein wird, einen Treiber für diesen
Controller zu schreiben. Er vermutet, daß niemand die dazu
notwendigen technischen Informationen von Adaptec erhalten
wird.</P>
<P>Der nicht unterstützte <EM>Trantor SlimSCSI</EM>-Controller kann auf
folgende Weise erkannt werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
Trantor / Adaptec APA-460 SlimSCSI
FCC ID: IE8T460
Shipped with SCSIworks! driver software
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Der nicht unterstützte <EM>Adaptec SlimSCSI</EM>-Controller kann auf
folgende Weise erkannt werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
Adaptec APA-1460 SlimSCSI
FCC ID: FGT1460
P/N: 900100
Shipped with EZ-SCSI driver software
</PRE>
</CODE></BLOCKQUOTE>
</P>
<H3>Untersuchung von Problemen mit SCSI-Controllern <!--PCMCIA!Probleme!SCSI-Controller--></H3>
<P>
<UL>
<LI>Bei dem <CODE>aha152x_cs</CODE> Treiber, dieser wird von Adaptec, New
Media und ein paar anderen verwendet, scheint die Unterstützung
von Disconnect/Reconnect eine häufige Fehlerquelle bei
Bandlaufwerken zu sein. Um diese Eigenschaft abzuschalten, muß
folgendes in der Datei <CODE>/etc/pcmcia/config.opts</CODE>
hinzugefügt werden:
<BLOCKQUOTE><CODE>
<PRE>
module "aha152x_cs" opts "reconnect=0"
</PRE>
</CODE></BLOCKQUOTE>
</LI>
</UL>
</P>
<H2><A NAME="DE-PCMCIA-HOWTO-unerkannt"></A> <A NAME="ss4.6">4.6</A> <A HREF="DE-PCMCIA-HOWTO.html#toc4.6">PCMCIA Speicherkarten </A>
<!--PCMCIA!Speicherkarte--></H2>
<P>Das Standardstartskript für Speicherkarten erzeugt <EM>Block-</EM> und
<EM>zeichenorientierte</EM> Geräte für den Zugriff auf alle
Bereiche der Speicherkarte. Es gibt zwei Treiber für
Speicherkarten. Einen älteren Treiber <CODE>pcmem_cs</CODE>, der gut mit
einfachen statischen RAM-Karten zusammenarbeitet, und einen neueren
Treiber <CODE>memory_cs</CODE>, der meistens für den direkten Zugriff
auf Flashkarten verwendet wird. Für eine genauere
Beschreibung der Gerätenamen sollte man die Manual Pages befragen.
Beide, sowohl Block- als auch zeichenorientierte Gerätedateien,
werden erzeugt. Die Blockgeräte werden für einen
Festplattenähnlichen Zugriff verwendet (Erzeugung und Mounten
von Dateisystemen etc.). Die zeichorientierten Gerätedateien
werden für <EM>rohe</EM> (raw), nichtgepufferte Lese- und
Schreiboperationen an beliebigen Stellen verwendet.</P>
<P>
<!--
/etc/pcmcia/ftl.opts
-->
<!--
/etc/pcmcia/memory.opts
-->
<!--
PCMCIA!/etc/pcmcia/ftl.opts
-->
<!--
PCMCIA!/etc/pcmcia/memory.opts
-->
Bei den <EM>FTL</EM> und dem <EM>neuen</EM> Speichertreibern besteht
die Geräteadresse, die an die Skripte <CODE>ftl.opts</CODE> und
<CODE>memory.opts</CODE> weitergegeben wird, aus zwei Feldern,
der Slotnummer und der Partitionsnummer. Gewöhnliche
Speicherpartitionen werden vor Attributspeicherpartitionen numeriert.
Allgemein ist die interessanteste Partition die mit der Nummer 0. Dieses
ist die Hauptpartition, auf der die Daten gespeichert werden. Hier ist ein
Beispiel eines Skriptes, das automatisch, abhängig vom
verwendeten Slot, eine Flashspeicherkarte in das System integriert:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
case "$ADDRESS" in
*,0,0)
# Integriere Dateisystem, aber aktualisiere nicht
# /etc/fstab
DO_FSTAB="n" ; DO_FSCK="y" ; DO_MOUNT="y"
FSTYPE="ext2" ; OPTS=""
MOUNTPT="/ftl0"
;;
*,1,0)
# Integriere Dateisystem, aber aktualisiere nicht
# /etc/fstab
DO_FSTAB="n" ; DO_FSCK="y" ; DO_MOUNT="y"
FSTYPE="ext2" ; OPTS=""
MOUNTPT="/ftl1"
;;
esac
</PRE>
</CODE></BLOCKQUOTE>
</P>
<H3>Einfache Speicherkarten <!--PCMCIA!Card Information Structure--></H3>
<P>Einige ältere Speicherkarten und die meisten einfachen statischen
RAM-Karten besitzen keine <EM>Card Information Structure</EM> (CIS),
welche das Schema ist, das PCMCIA-Karten verwenden, um sich selbst zu
identifizieren. Normalerweise wird <CODE>cardmgr</CODE> annehmen,
daß Karten, die keine CIS aufweisen, einfache Speicherkarten
sind und wird den <CODE>pcmem_cs</CODE> Treiber laden. Auf diese Weise
erhält man den Nebeneffekt, daß andere
unerkannte Karten fälschlicherweise als Speicherkarten erkannt werden.</P>
<P>Der <CODE>pcmem_cs</CODE> Treiber erzeugt drei logische Gerätedateien
für eine Karte: <CODE>pcmem?a</CODE> ist eine Zeichengerätedatei zum
Zugriff auf Attributspeicher, <CODE>pcmem?b</CODE> ist eine
Blockgerätedatei und <CODE>pcmem?c</CODE> ist eine
Zeichengerätedatei. Da alle PCMCIA-Karten eine
Speicherschnittstelle neben allen anderen Funktionen benötigen,
kann der <CODE>pcmem_cs</CODE> Treiber mit allen Karten verwendet werden,
um direkten Zugriff auf den Attribut- und allgemeinen Speicherraum zu
erhalten.</P>
<P>Der <CODE>pcmem_cs</CODE> Treiber verwendet ein Verfahren, um die
Kapazität einer Karte zu raten. Dieses Verfahren schlägt bei
schreibgeschützten Karten fehl und kann in einigen anderen
Fällen zu Fehlern führen. Wenn eine Karte falsch erkannt
wurde, sollte ihre Größe explizit angegeben werden, wenn man
Kommandos wie <CODE>dd</CODE> oder <CODE>mkfs</CODE> verwendet.</P>
<H3>Verwendung von Flashspeicherkarten <!--PCMCIA!Flashspeicherkarten--> <!--Flashspeicher--> <!--ftl_format--> <!--PCMCIA!ftl_format--></H3>
<P>Um eine Flashspeicherkarte wie ein gewöhnliches
festplattenähnliches Blockgerät zu verwenden, muß als
erstes eine <EM>Flash Translation Layer</EM> Partition auf diesem
Gerät mit dem Kommando <CODE>ftl_format</CODE> erstellt werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
ftl_format -i /dev/mem0c0c
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Man beachte, daß dieses Kommando auf die Karte über die <EM>rohe</EM>
Speicherkartenschnittstelle zugreift. Einmal formatiert, kann die Karte
wie ein normales Blockgerät über den <CODE>ftl_cs</CODE> Treiber
verwendet werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
mke2fs /dev/ftl0
mount -t ext2 /dev/ftl0 /mnt
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Es gibt zwei wesentliche Formate für Blitzspeicherkarten: Das
<EM>Flash Translation Layer</EM> und das <EM>Microsoft Flash File
System</EM>. Das FTL-Format is generell flexibler, weil es erlaubt,
irgendein gewöhnliches, anspruchsvolles Dateisystem wie ext2 oder
MS-DOS FAT auf dieser Karte zu verwenden, genauso als ob es eine
normale Festplatte wäre. Das FFS ist ein komplett neuer Typ von
Dateisystem. Linux kann zur Zeit keine Karten handhaben, die mit
diesem Dateityp formatiert sind.</P>
<H2><A NAME="ss4.7">4.7</A> <A HREF="DE-PCMCIA-HOWTO.html#toc4.7">PCMCIA ATA-/IDE-Karten </A>
<!--PCMCIA!IDE-Karte--> <!--IDE!PCMCIA-Karte--> <!--EIDE!PCMCIA-Karte--></H2>
<P>Die Unterstützung von ATA-/IDE-Treibern verlangt einen Kernel der
Verison 1.3.72 oder höher. Der PCMCIA spezifische Teil des
Treibers ist <CODE>fixed_cs</CODE>. Man sollte sicherstellen, daß
<CODE>cardctl</CODE> oder <CODE>cardinfo</CODE> verwendet werden, um
ATA-/IDE-Karten herunterzufahren, bevor sie entnommen werden.</P>
<P>
<!--
/etc/pcmcia/fixed.opts
-->
<!--
PCMCIA!/etc/pcmcia/fixed.opts
-->
Die Geräteadressen, die an <CODE>fixed.opts</CODE> weitergeleitet
werden, bestehen aus drei oder vier Feldern: Das aktuelle Schema, die
Slotnummer, die Seriennummer des Laufwerks und ebentuell die
Partitionsnummer. So wie bei SCSI-Geräten wird
<CODE>fixed.opts</CODE> zuerst für das gesamte Gerät aufgerufen.
Wenn <CODE>fixed.opts</CODE> eine Liste von Partitionen in
der Variablen <CODE>PARTS</CODE> enthält, wird das Skript noch einmal
für jede Partition aufgerufen.</P>
<P>Hier ist eine Beispieldatei <CODE>fixed.opts</CODE>, die die erste
Partition einer ATA-/IDE-Karte auf <CODE>/mnt</CODE> abbildet:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
case "$ADDRESS" in
*,*,*)
PARTS="1"
;;
*,*,*,1)
DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
FSTYPE="msdos"
OPTS=""
MOUNTPT="/mnt"
;;
esac
</PRE>
</CODE></BLOCKQUOTE>
<!--
IDE!ide_info
-->
<!--
EIDE!ide_info
-->
<!--
PCMCIA!ide_info
-->
Beachten Sie, daß die vorgegebene Datei <CODE>fixed.opts</CODE> diese
Zeilen in auskommentierter Form enthält. Wenn es gewünscht
wird, können verschiedene Konfigurationen, basierend auf
den Seriennummern der Karten, verwendet werden. Um die Seriennummer
einer Karte herauszufinden, kann das Kommando <CODE>ide_info</CODE>
verwendet werden. Danach kann ein Teil von <CODE>fixed.info</CODE> wie
folgt aussehen:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
case "$ADDRESS" in
*,*,Z4J60542)
# Dies ist eine DOS Platte
PARTS="1"
;;
*,*,Z4J60542,1)
DO_FSTAB="y" ; DO_FSCK="y" ; DO_MOUNT="y"
FSTYPE="msdos"
OPTS=""
MOUNTPT="/mnt"
;;
esac
</PRE>
</CODE></BLOCKQUOTE>
</P>
<H2><A NAME="ss4.8">4.8</A> <A HREF="DE-PCMCIA-HOWTO.html#toc4.8">Multifunktionskarten </A>
<!--PCMCIA!Multifunktionskarten--></H2>
<P>Beginnend mit dem Linux-Kernel 1.3.73 kann ein einzelner Interrupt mit
mehreren verschiedenen Treibern, wie z.B. dem seriellen Treiber und
einem Ethernettreiber, geteilt werden. Wenn eine Multifunktionskarte
unter einem neueren Kernel verwendet wird, können alle
Funktionen ohne ein Ein- und Ausladen von Treibern verwendet werden.</P>
<P>Simultaner Gebrauch von zwei Kartenfunktionen ist trickreich, und
verschiedene Hardwarehersteller haben das Teilen von Interrupts auf
ihre eigene, nicht kompatible Weise verwirklicht. Die Treiber für
einige Karten (<EM>Ositech Jack of Diamonds </EM>, <EM>3Com
3c562</EM>, <EM>Linksys</EM>) unterstützen den gleichzeitigen
Zugriff ordentlich, während andere (besonders <EM>Megahertz</EM>)
dies nicht tun.</P>
<P>Frühere Kernelversionen unterstützen das Teilen von
Interrupts nicht, so daß es für PCMCIA-Treiber nicht
möglich ist, gleichzeitig auf eine Ethernetkarte und ein Modem
zuzugreifen. Die Treiber für das Ethernet und die serielle
Schnittstelle werden automatisch geladen. Wie dem auch sei, der
Treiber für das Ethernet besitzt per Voreinstellung den Interrupt
der Karte. Um das Modem zu verwenden, muß der Ethernettreiber
ausgeladen werden und der serielle neu konfiguriert werden
wie z.B. hier:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
ifconfig eth0 down
rmmod 3c589_cs
setserial /dev/modem autoconfig auto_irq
setserial /dev/modem
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Das zweite <CODE>setserial</CODE> Aufruf soll überprüfen, ob
der Treiber für das Modem jetzt den Interrupt verwendet, der
vorher von dem Ethernettreiber verwendet worden ist.</P>
<H2><A NAME="ss4.9">4.9</A> <A HREF="DE-PCMCIA-HOWTO.html#toc4.9">Wann ist es sicher, eine PCMCIA-Karte einzuführen oder zu entfernen?</A>
</H2>
<P>Theoretisch kann eine PCMCIA-Karte jederzeit eingeführt oder
entfernt werden. Es ist jedoch eine gute Idee, eine Karte, die gerade
von einem Programm in Gebrauch ist, nicht zu entfernen. Kernel die
älter sind als Version 1.1.77 bleiben oft hängen, wenn eine
serielle Schnittstellenkarte bzw. Modemkarte entfernt wird. Doch dies
sollte mittlerweile behoben sein.</P>
<H2><A NAME="ss4.10">4.10</A> <A HREF="DE-PCMCIA-HOWTO.html#toc4.10">Card Services und Advanced Power Management </A>
<!--PCMCIA!APM--> <!--PCMCIA!Power Management--> <!--APM--></H2>
<P><EM>Card Services</EM> kann mit Unterstützung von APM kompiliert
werden, wenn das Paket auf dem System installiert wurde. APM ist
Bestandteil von Kernel 1.3.46 und neuer. Es wird derzeit von Rick
Faith (<CODE>
<A HREF="mailto:faith@cs.unc.edu">faith@cs.unc.edu</A></CODE>) betreut. APM-Werkzeuge können via FTP von
<BLOCKQUOTE><CODE>
<A HREF="ftp://ftp.cs.unc.edu/pub/users/faith/linux">ftp.cs.unc.edu:/pub/users/faith/linux</A></CODE></BLOCKQUOTE>
bezogen werden. Die PCMCIA-Module werden automatisch für APM
konfiguriert, falls eine kompatible Version auf dem System erkannt wird.</P>
<P>
<!--
cardctl!suspend
-->
<!--
PCMCIA!cardctl!suspend
-->
Ohne auf APM zurückzugreifen, kann der Befehl <CODE>cardctl
suspend</CODE> vor dem Anhalten des Notebooks und der Befehl <CODE>cardctl
resume</CODE> nach dem erneuten Anfahren des Notebooks verwendet werden, um
die PCMCIA-Karten herunter- und wieder hochzufahren. Dies funktioniert
nicht mit einem PCMCIA-Modem zusammen, das in Betrieb ist, da
der serielle Treiber nicht in der Lage ist, die Arbeitsparameter des
Modems zu sichern und wiederherzustellen.</P>
<P>APM scheint auf einigen System instabil zu sein. Wenn solche
Beobachtungen im Zusammenhang mit APM und PCMCIA gemacht werden,
sollte versucht werden, den Fehler auf eines dieser beiden Pakete
einzuschränken, bevor ein Fehlerreport erstellt wird.</P>
<P>
<!--
cardctl!eject
-->
<!--
PCMCIA!cardctl!eject
-->
Einige Treiber, ganz besonders PCMCIA-SCSI-Treiber, können aus
einem Anhalte- und Wiederanfahrzyklus nicht zurückkehren. Wenn
eine PCMCIA-SCSI-Karte verwendet wird, sollte daher das Kommando
<CODE>cardctl eject</CODE> vor einem Anhalten des Systems ausgeführt
werden.</P>
<H2><A NAME="ss4.11">4.11</A> <A HREF="DE-PCMCIA-HOWTO.html#toc4.11">Wie wird eine PCMCIA-Karte abgeschaltet, ohne sie zu entnehmen?</A>
</H2>
<P>Dazu kann entweder das Kommando <CODE>cardctl</CODE> oder
<CODE>cardinfo</CODE> verwendet werden. <CODE>cardctl suspend \#</CODE> wird
einen Slot anhalten und herunterfahren. Das entsprechende
<CODE>resume</CODE> Kommando wird die Karte wieder in den
ursprünglichen Zustand zurückversetzen.</P>
<H2><A NAME="ss4.12">4.12</A> <A HREF="DE-PCMCIA-HOWTO.html#toc4.12">Wie wird ein PCMCIA-Treiber entfernt?</A>
</H2>
<P>Um das vollständige PCMCIA-Paket zu entfernen, muß das Skript
<CODE>rc.pcmcia</CODE> folgendermaßen aufgerufen werden:</P>
<P>
<BLOCKQUOTE><CODE>
<PRE>
/etc/pcmcia/rc.pcmcia stop
</PRE>
</CODE></BLOCKQUOTE>
</P>
<P>Dieses Skript benötigt mehrere Sekunden, um zu laufen, da jedem
Treiber Zeit gelassen wird, sanft herunterzufahren. Wenn ein
PCMCIA-Gerät gerade in Benutzung ist, wird das Herunterfahren
unvollständig sein und einige Module können im Kernel
verbleiben. Um dieses zu vermeiden, sollten mit
<BLOCKQUOTE><CODE>
cardctl eject
</CODE></BLOCKQUOTE>
alle Slots heruntergefahren werden, bevor <CODE>rc.pcmcia</CODE> aufgerufen
wird. Der Endestatus des <CODE>cardctl</CODE> Kommandos zeigt an, ob
irgendein Slot nicht heruntergefahren werden konnte.</P>
<HR>
<A HREF="DE-PCMCIA-HOWTO-5.html"><IMG SRC="next.png" ALT="Weiter"></A>
<A HREF="DE-PCMCIA-HOWTO-3.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-PCMCIA-HOWTO.html#toc4"><IMG SRC="toc.png" ALT="Inhalt"></A>
</BODY>
</HTML>
|