15.3. SCSI-Treiber
Detaillierte Informationen zu SCSI-Treibern finden Sie in SCSI-2.4-HOWTO.
Die SCSI-Funktion von Linux ist in drei Schichten implementiert, und für alle gibt es LKMs.
In der Mitte befindet sich der mittlere Treiber oder SCSI-Kern. Dies besteht aus der scsi_mod LKM. Es erledigt alle Dinge, die unter SCSI-Geräten üblich sind, unabhängig davon, welchen SCSI-Adapter Sie verwenden und welche Geräteklasse (Datenträger, Scanner, CD-ROM-Laufwerk usw.) es ist.
Für jede Art von SCSI-Adapter gibt es einen Low-Level-Treiber - normalerweise einen anderen Treiber für jede Marke. Zum Beispiel wird der Low-Level-Treiber für Advansys-Adapter (von der Firma Connect.com) benannt Advansys . (Wenn Sie ATA- (aka IDE-) und SCSI-Festplattengeräte vergleichen, ist dies ein wesentlicher Unterschied - ATA ist so einfach und standardmässig, dass ein Treiber mit allen Adaptern aller Unternehmen zusammenarbeitet weniger Vertrauen in einen bestimmten Adapter, der perfekt mit Ihrem System kompatibel ist.
Treiber der höheren Ebene bieten dem Rest des Kernels eine Schnittstelle, die für eine bestimmte Klasse von Geräten geeignet ist. Der SCSI-High-Level-Treiber für Bandgeräte, st hat zum Beispiel Ioctls zum Zurückspulen. Der High-Level-SCSI-Treiber für CD-ROM-Laufwerke sr , nicht.
Beachten Sie, dass Sie selten einen High-Level-Treiber benötigen, der für eine bestimmte Gerätemarke spezifisch ist. Auf dieser Ebene gibt es wenig Raum für eine Marke, um sich von einer anderen unterscheiden zu können.
Ein SCSI-High-Level-Treiber, der besonders erwähnt werden muss, ist sg . Dieser Treiber, der als "generischer SCSI-Treiber" bezeichnet wird, ist eine ziemlich dünne Schicht, die dem Rest des Kernels eine ziemlich rohe Darstellung des mittleren SCSI-Treibers darstellt. Benutzerraumprogramme, die über den generischen SCSI-Treiber ausgeführt werden (weil sie auf spezielle Gerätedateien zugreifen, deren Hauptnummer diejenige ist, die von registriert wird) sg (zu 21) verfügen über ein detailliertes Verständnis der SCSI-Protokolle, wohingegen Benutzerraumprogramme, die über andere SCSI-High-Level-Treiber laufen, normalerweise nicht einmal wissen, was SCSI ist. SCSI-Programming-HOWTO enthält eine vollständige Dokumentation des generischen SCSI-Treibers.
Die Reihenfolge der Schichten der SCSI-Module hängt davon ab, wie die LKMs voneinander abhängig sind und in welcher Reihenfolge sie geladen werden müssen. Sie laden immer den Mid-Level-Treiber zuerst und entladen ihn zuletzt. Die Low-Level- und High-Level-Treiber können danach in beliebiger Reihenfolge geladen und entladen werden. Sie haken sich an beiden Enden des Mid-Level-Treibers ein und stellen eine Abhängigkeit davon her. Wenn Sie nicht über ein vollständiges Set verfügen, wird beim Versuch, auf ein Gerät zuzugreifen, die Fehlermeldung "Gerät nicht gefunden" angezeigt.
Die meisten SCSI-Low-Level-Treiber (Adapter) verfügen nicht über LKM-Parameter. Sie führen im Allgemeinen eine automatische Probeaufnahme für Karteneinstellungen durch. Wenn Ihre Karte auf eine unkonventionelle Portadresse reagiert, müssen Sie den Treiber an den Basiskernel binden und die "Befehlszeilenoptionen" des Kernels verwenden. Siehe BootPrompt-HOWTO. Oder Sie können The Source drehen und neu kompilieren.
Viele SCSI-Low-Level-Treiber verfügen über eine Dokumentation im Treiber / Scsi Verzeichnis in der Linux-Quellstruktur, in Dateien namens README. *.
15.3.1. scsi_mod: SCSI-Treiber auf mittlerer Ebene
Beispiel:
modprobe scsi_mod
Es gibt keine Modulparameter.
15.3.2. sd_mod: SCSI-High-Level-Treiber für Plattengeräte
Beispiel:
modprobe sd_mod
Es gibt keine Modulparameter.
15.3.3. st: SCSI-High-Level-Treiber für Bandgeräte
Beispiel:
modprobe st
Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Boot-Parameter übergeben. Siehe BootPrompt-HOWTO.
15.3.4. sr_mod: SCSI-High-Level-Treiber für CD-ROM-Laufwerke
Beispiel:
modprobe sr_mod
Es gibt keine Modulparameter.
15.3.5. sg: SCSI-High-Level-Treiber für generische SCSI-Geräte
Siehe die Erklärung zu diesem speziellen High-Level-Treiber weiter oben.
Beispiel:
modprobe sg
Es gibt keine Modulparameter.
* Lizenz
* Loadable Kernel Module How-To-Index
Parameter.
15.3.6. wd7000: SCSI-Low-Level-Treiber für 7000FASST
Beispiel:
Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Boot-Parameter übergeben. Siehe BootPrompt-HOWTO. Dieser Treiber prüft die Karte und erfordert ein installiertes BIOS. Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. Dieser Treiber prüft die Karte und erfordert ein installiertes BIOS. Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. Dieser Treiber prüft die Karte nur bei 0x330 und 0x334. Beispiel: Es gibt keine Modulparameter. Dieser Treiber prüft die Karte automatisch. Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. Dieser Treiber zeigt automatisch die Karte und das BIOS an. Beispiel: Modulparameter: Wenn Sie diesen Treiber in den Basiskernel einbinden, können Sie ihm über die Kernel-Boot-Parameter Parameter übergeben. Siehe BootPrompt-HOWTO. Beispiel: Es gibt keine Modulparameter. Dieser Treiber prüft die Karte automatisch. Es ist kein BIOS erforderlich. Die Liste der BusLogic-Karten, die dieser Treiber fahren kann, ist lang. Datei lesen Treiber / scsi / README.BusLogic im Linux-Quellbaum, um das Gesamtbild zu erhalten. Beispiel: Es gibt keine Modulparameter. Wenn Sie diesen Treiber in den Basiskernel einbinden, können Sie ihm über die Kernel-Boot-Parameter Parameter übergeben. Siehe BootPrompt-HOWTO. Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. Dieser Treiber prüft die Karte automatisch. Dieser Treiber ist für DPT PM2011 / 021/012/022/122/322 zuständig. Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. Dieser Treiber unterstützt DPT, NEC, AT & T, SNI, AST, Olivetti und Alphatronix. Dieser Treiber unterstützt DPT Smartcache, Smartcache III und SmartRAID. Beispiel: Es gibt keine Modulparameter. Autoprobe funktioniert in allen Konfigurationen. Dieser Treiber behandelt alte DPT PM2001, PM2012A. Beispiel: Es gibt keine Modulparameter. Beispiel: Es gibt keine Modulparameter. Dieser Treiber testet die Karte automatisch und erfordert ein installiertes BIOS. Beispiel: für eine NCR5380-Karte mit Portzuordnung: für eine speicherzugeordnete NCR53C400-Karte mit deaktivierten Interrupts: Parameter: Wenn Sie diesen Treiber in den Basiskernel einbinden, können Sie ihm über die Kernel-Bootparameter Parameter übergeben. Siehe BootPrompt-HOWTO. Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. Dieser Treiber testet die Karte automatisch und erfordert ein installiertes BIOS. Beispiel: Es gibt keine Modulparameter. Siehe die Datei Treiber / scsi / README.ppa Weitere Informationen finden Sie im Linux-Quellbaum. Beispiel: Parameter: Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. Dieser Treiber prüft die Karte automatisch. Es ist kein BIOS erforderlich. Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. Benötigt Firmware. Dieser Treiber ist für Seagate ST-02 und Future Domain TMC-8xx bestimmt. Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. Dieser Treiber zeigt automatisch nur Adressen an. Der IRQ ist auf 5 festgelegt. Der Treiber erfordert ein installiertes BIOS. Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. Dieser Treiber prüft die Karte automatisch. Der Treiber erfordert ein installiertes BIOS. Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. Dieser Treiber prüft die Karte jedoch automatisch nicht der 0x310-Port. Es ist kein BIOS erforderlich. Beispiel: Es gibt keine Modulparameter für das LKM. Wenn Sie dieses Modul jedoch in den Basiskern binden, können Sie einige Parameter über die Linux-Bootparameter übergeben. Siehe BootPrompt-HOWTO. modprobe wd7000
15.3.7. aha152x: SCSI-Low-Level-Treiber für Adaptec AHA152X / 2825
modprobe aha152x
15.3.8. aha1542: SCSI-Low-Level-Treiber für Adaptec AHA1542
modprobe aha1542
15.3.9. aha1740: SCSI-Low-Level-Treiber für Adaptec AHA1740 EISA
modprobe aha1740
15.3.10. aic7xxx: SCSI-Low-Level-Treiber für Adaptec AHA274X / 284X / 294X
modprobe aic7xxx
15.3.11. advansys: Low-Level-SCSI-Treiber für AdvanSys / Connect.com
modprobe advansys asc_iopflag = 1 asc_ioport = 0x110,0x330 asc_dbglvl = 1
15.3.12. in2000: SCSI-Low-Level-Treiber für Always IN2000
modprobe in2000
15.3.13. BusLogic: Low-Level-SCSI-Treiber für BusLogic
modprobe BusLogic
15.3.14. dtc: SCSI-Low-Level-Treiber für DTC3180 / 3280
modprobe dtc
15.3.15. eata: SCSI-Low-Level-Treiber für EATA ISA / EISA
modprobe eata
15.3.16. eata_dma: SCSI-Low-Level-Treiber für EATA-DMA
modprobe eata_dma
15.3.17. eata_pio: SCSI-Low-Level-Treiber für EATA-PIO
modprobe eata_pio
15.3.18. fdomain: SCSI-Low-Level-Treiber für Future Domain 16xx
modprobe fdomain
15.3.19. NCR5380: SCSI-Low-Level-Treiber für NCR5380 / 53c400
modprobe NCR5380 ncr_irq = xx ncr_addr = xx ncr_dma = xx ncr_5380 = 1 ncr_53c400 = 1
modprobe g_NCR5380 ncr_irq = 5 ncr_addr = 0x350 ncr_5380 = 1
modprobe g_NCR5380 ncr_irq = 255 ncr_addr = 0xc8000 ncr_53c400 = 1
15.3.20. NCR53c406a: SCSI-Low-Level-Treiber für NCR53c406a
modprobe NCR53c406a
15.3.21. 53c7,8xx.o: SCSI-Low-Level-Treiber für NCR53c7,8xx
modprobe 53c7,8xx
15.3.22. ncr53c8xx: SCSI-Low-Level-Treiber für die PCI-SCS NCR538xx-Familie
modprobe ncr53c8xx
15.3.23. ppa: Low-Level-SCSI-Treiber für ein ZIP-Laufwerk mit IOMEGA-Parallelanschluss
modprobe ppa ppa_base = 0x378 ppa_nybble = 1
15.3.24. pas16: SCSI-Low-Level-Treiber für PAS16
modprobe pas16
15.3.25. qlogicfas: SCSI-Low-Level-Treiber für Qlogic FAS
modprobe qlogicfas
15.3.26. qlogicisp: SCSI-Treiber auf niedriger Ebene für Qlogic ISP
modprobe qlogicisp
15.3.27. seagate: SCSI-Low-Level-Treiber für Seagate, Future Domain
modprobe seagate
15.3.28. t128: SCSI-Low-Level-Treiber für Trantor T128 / T128F / T228
modprobe t128
15.3.29. u14-34f: Low-Level-SCSI-Treiber für UltraStor 14F / 34F
modprobe u14-34f
15.3.30. Ultrastor: Low-Level-SCSI-Treiber für UltraStor
Modprobe Ultrastor