Skip to main content

De Linux Loadable Kernel Module How-To - 15.3. SCSI-stuurprogramma's

How to build a Linux loadable kernel module that Rickrolls people (Juni- 2026)

How to build a Linux loadable kernel module that Rickrolls people (Juni- 2026)

:

Anonim

15.3. SCSI-stuurprogramma's

Gedetailleerde informatie over SCSI-stuurprogramma's vindt u in SCSI-2.4-HOWTO.

De SCSI-functie van Linux is geïmplementeerd in drie lagen en er zijn LKM's voor allemaal.

In het midden bevindt zich de mid-level driver of SCSI-core. Dit bestaat uit de scsi_mod LKM. Het doet al die dingen die gebruikelijk zijn bij SCSI-apparaten, ongeacht welke SCSI-adapter je gebruikt en welke klasse apparaat (schijf, scanner, CD-ROM-station, etc.) dat is.

Er is een stuurprogramma op laag niveau voor elk type SCSI-adapter - meestal een andere driver voor elk merk. Bijvoorbeeld, de low-level driver voor Advansys-adapters (gemaakt door het bedrijf dat nu Connect.com is) wordt genoemd Advansys . (Als u ATA (ook bekend als IDE) en SCSI-schijfapparaten vergelijkt, is dit een groot verschil - ATA is eenvoudig en standaard genoeg dat één stuurprogramma werkt met alle adapters van alle bedrijven SCSI is minder standaard en dient daarom te worden uitgevoerd minder vertrouwen in een bepaalde adapter die perfect compatibel is met uw systeem).

High-level drivers presenteren de rest van de kernel een interface die geschikt is voor een bepaalde klasse apparaten. De SCSI-driver op hoog niveau voor bandstations, st , bijvoorbeeld, heeft ioctlen om terug te spoelen. Het high-level SCSI-stuurprogramma voor CD-ROM-stations, sr , doet niet.

Merk op dat je zelden een driver op hoog niveau nodig hebt die specifiek is voor een bepaald merk apparaat. Op dit niveau is er weinig ruimte om een ​​merk te onderscheiden van een ander merk.

Eén SCSI-driver op hoog niveau die een speciale vermelding verdient, is sg . Deze driver, de "SCSI-generieke" driver genoemd, is een vrij dunne laag die een tamelijk onbewerkte weergave van de SCSI-driver op het middenniveau naar de rest van de kernel presenteert. Gebruikersruimteprogramma's die werken via het SCSI-generieke stuurprogramma (omdat ze speciale apparaatbestanden gebruiken waarvan het hoofdnummer het nummer is dat is geregistreerd door sg (te weten, 21)) hebben een gedetailleerd begrip van SCSI-protocollen, terwijl gebruikersruimteprogramma's die werken via andere SCSI-stuurprogramma's van hoog niveau, meestal niet eens weten wat SCSI is. SCSI-programmering-HOWTO heeft volledige documentatie van de generieke SCSI-driver.

De gelaagdheid van de SCSI-modules logenstraft de manier waarop de LKM's van elkaar afhankelijk zijn en de volgorde waarin ze moeten worden geladen. U laadt altijd eerst de mid-level driver en laadt deze als laatste uit. De stuurprogramma's op laag niveau en op hoog niveau kunnen daarna in willekeurige volgorde worden geladen en gelost, en ze koppelen zichzelf aan en vestigen afhankelijkheid van de bestuurder op het middenniveau aan beide uiteinden. Als u niet over een volledige set beschikt, krijgt u de fout 'Apparaat niet gevonden' wanneer u een apparaat probeert te openen.

De meeste SCSI low-level (adapter) stuurprogramma's hebben geen LKM-parameters; ze doen over het algemeen een autoprobe voor kaartinstellingen. Als uw kaart reageert op een onconventioneel poortadres, moet u de driver in de basis-kernel binden en de kernel "command line" -opties gebruiken. Zie BootPrompt-HOWTO. Of je kunt de bron twiddle en opnieuw compileren.

Veel SCSI low-level drivers hebben documentatie in de drivers / scsi map in de Linux source tree, in bestanden genoemd LEESMIJ. *.

15.3.1. scsi_mod: SCSI mid-level stuurprogramma

Voorbeeld:

modprobe scsi_mod

Er zijn geen moduleparameters.

15.3.2. sd_mod: SCSI-stuurprogramma op hoog niveau voor schijfstations

Voorbeeld:

modprobe sd_mod

Er zijn geen moduleparameters.

15.3.3. st: SCSI-stuurprogramma op hoog niveau voor bandstations

Voorbeeld:

modprobe st

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

15.3.4. sr_mod: SCSI-stuurprogramma op hoog niveau voor CD-ROM-stations

Voorbeeld:

modprobe sr_mod

Er zijn geen moduleparameters.

15.3.5. sg: SCSI-stuurprogramma op hoog niveau voor generieke SCSI-apparaten

Zie hierboven de uitleg van deze speciale hoogstaande driver.

Voorbeeld:

modprobe sg

Er zijn geen moduleparameters.

* Licentie

* Laadbare kernmodule Instructie-index

parameters.

15.3.6. wd7000: SCSI-stuurprogramma voor laag niveau voor 7000FASST

Voorbeeld:

modprobe wd7000

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

Deze driver blokkeert de kaart en vereist geïnstalleerd BIOS.

15.3.7. aha152x: SCSI-stuurprogramma met laag niveau voor Adaptec AHA152X / 2825

Voorbeeld:

modprobe aha152x

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

Deze driver blokkeert de kaart en vereist geïnstalleerd BIOS.

15.3.8. aha1542: SCSI-stuurprogramma met laag niveau voor Adaptec AHA1542

Voorbeeld:

modprobe aha1542

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

Deze driver autoprobes de kaart alleen op 0x330 en 0x334.

15.3.9. aha1740: SCSI-stuurprogramma met laag niveau voor Adaptec AHA1740 EISA

Voorbeeld:

modprobe aha1740

Er zijn geen moduleparameters.

Deze driver autoprobes de kaart.

15.3.10. aic7xxx: SCSI low-level stuurprogramma voor Adaptec AHA274X / 284X / 294X

Voorbeeld:

modprobe aic7xxx

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

Dit stuurprogramma autoprobes de kaart en het BIOS moet worden ingeschakeld.

15.3.11. advansys: SCSI low-level stuurprogramma voor AdvanSys / Connect.com

Voorbeeld:

modprobe advansys asc_iopflag = 1 asc_ioport = 0x110,0x330 asc_dbglvl = 1

Moduleparameters:

  • asc_iopflag
    • 1
    • poort-scannen inschakelen
    • 0
    • poort scannen uitschakelen
  • asc_ioport
  • I / O-poortadressen om te scannen op Advansys SCSI-adapters
  • asc_dbglvl
  • foutopsporingsniveau:
      • 0
    • Alleen fouten
    • 1
    • Hoogwaardige tracering
    • 2-N
    • Uitgebreide tracering

Als je dit stuurprogramma in de basis-kernel bindt, kun je parameters via de kernel-opstartparameters doorgeven. Zie BootPrompt-HOWTO.

15.3.12. in2000: SCSI-stuurprogramma met laag niveau voor Always IN2000

Voorbeeld:

modprobe in2000

Er zijn geen moduleparameters.

Deze driver autoprobes de kaart. Er is geen BIOS vereist.

15.3.13. BusLogic: SCSI low-level stuurprogramma voor BusLogic

De lijst met BusLogic-kaarten die deze driver kan gebruiken, is lang. Lees het bestand drivers / scsi / README.BusLogic in de Linux source tree om de totale afbeelding te krijgen.

Voorbeeld:

modprobe BusLogic

Er zijn geen moduleparameters.

Als je dit stuurprogramma in de basis-kernel bindt, kun je parameters via de kernel-opstartparameters doorgeven. Zie BootPrompt-HOWTO.

15.3.14. dtc: SCSI-stuurprogramma met laag niveau voor DTC3180 / 3280

Voorbeeld:

modprobe dtc

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

Deze driver autoprobes de kaart.

15.3.15. eata: SCSI low-level stuurprogramma voor EATA ISA / EISA

Deze driver verwerkt DPT PM2011 / 021/012/022/122/322.

Voorbeeld:

modprobe eata

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

15.3.16. eata_dma: SCSI low-level stuurprogramma voor EATA-DMA

Deze driver verwerkt DPT, NEC, AT & T, SNI, AST, Olivetti en Alphatronix.

Deze driver verwerkt DPT Smartcache, Smartcache III en SmartRAID.

Voorbeeld:

modprobe eata_dma

Er zijn geen moduleparameters.

Autoprobe werkt in alle configuraties.

15.3.17. eata_pio: SCSI low-level stuurprogramma voor EATA-PIO

Deze driver verwerkt de oude DPT PM2001, PM2012A.

Voorbeeld:

modprobe eata_pio

Er zijn geen moduleparameters.

15.3.18. fdomain: SCSI low-level driver voor Future Domain 16xx

Voorbeeld:

modprobe fdomain

Er zijn geen moduleparameters.

Deze driver autoprobes de kaart en vereist geïnstalleerd BIOS.

15.3.19. NCR5380: SCSI-stuurprogramma met laag niveau voor NCR5380 / 53c400

Voorbeeld:

modprobe NCR5380 ncr_irq = xx ncr_addr = xx ncr_dma = xx ncr_5380 = 1 ncr_53c400 = 1

voor een aan de poort toegewezen NCR5380-kaart:

modprobe g_NCR5380 ncr_irq = 5 ncr_addr = 0x350 ncr_5380 = 1

voor een geheugen toegewezen NCR53C400 bord met interrupts uitgeschakeld:

modprobe g_NCR5380 ncr_irq = 255 ncr_addr = 0xc8000 ncr_53c400 = 1

parameters:

  • ncr_irq
  • de irq die de bestuurder moet onderhouden. 255 betekent geen of DMA-interrupt. 254 om te autoprobe voor een IRQ-regel indien overschreven op de opdrachtregel.
  • ncr_addr
  • het I / O-poortadres of geheugen toegewezen I / O-adres, afhankelijk van wat geschikt is, dat de bestuurder moet besturen
  • ncr_dma
  • het DMA-kanaal dat de bestuurder moet gebruiken
  • ncr_5380
  • 1 = ingesteld voor een NCR5380-kaart
  • ncr_53c400
  • 1 = ingesteld voor een NCR53C400-kaart

Als je dit stuurprogramma in de basis-kernel bindt, kun je parameters via de kernel-opstartparameters doorgeven. Zie BootPrompt-HOWTO.

15.3.20. NCR53c406a: SCSI-stuurprogramma met laag niveau voor NCR53c406a

Voorbeeld:

modprobe NCR53c406a

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

15.3.21. 53c7,8xx.o: SCSI-stuurprogramma met laag niveau voor NCR53c7,8xx

Voorbeeld:

modprobe 53c7,8xx

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

Deze driver autoprobes de kaart en vereist geïnstalleerd BIOS.

15.3.22. ncr53c8xx: SCSI-stuurprogramma voor laag niveau voor PCI-SCS NCR538xx-familie

Voorbeeld:

modprobe ncr53c8xx

Er zijn geen moduleparameters.

15.3.23. ppa: low-level SCSI-stuurprogramma voor IOMEGA parallelle poort ZIP-station

Zie het bestand drivers / scsi / README.ppa in de Linux source tree voor details.

Voorbeeld:

modprobe ppa ppa_base = 0x378 ppa_nybble = 1

parameters:

  • ppa_base
  • Basisadres van de I / O-poort van de PPA. Standaard 0x378.
  • ppa_speed_high
  • Vertraging gebruikt in gegevensoverdrachten, in microseconden. Standaard is 1.
  • ppa_speed_low
  • Vertraging gebruikt in andere
  • bewerkingen, in microseconden. Standaard is 6.
  • ppa_nybble
  • 1 = Gebruik de 4-bits modus. 0 = niet doen. Standaard is 0.

15.3.24. pas16: SCSI low-level driver voor PAS16

Voorbeeld:

modprobe pas16

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

Deze driver autoprobes de kaart. Er is geen BIOS vereist.

15.3.25. qlogicfas: SCSI low-level stuurprogramma voor Qlogic FAS

Voorbeeld:

modprobe qlogicfas

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

15.3.26. qlogicisp: SCSI low-level stuurprogramma voor Qlogic ISP

Voorbeeld:

modprobe qlogicisp

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

Vereist firmware.

15.3.27. seagate: SCSI low-level driver voor Seagate, Future Domain

Deze driver is voor Seagate ST-02 en Future Domain TMC-8xx.

Voorbeeld:

modprobe seagate

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

Deze driver autoprobes voor alleen adres. De IRQ is vastgesteld op 5. Het stuurprogramma vereist geïnstalleerd BIOS.

15.3.28. t128: SCSI-stuurprogramma met laag niveau voor Trantor T128 / T128F / T228

Voorbeeld:

modprobe t128

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

Deze driver autoprobes de kaart. Het stuurprogramma vereist geïnstalleerd BIOS.

15.3.29. u14-34f: SCSI-stuurprogramma voor laag niveau voor UltraStor 14F / 34F

Voorbeeld:

modprobe u14-34f

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.

Deze driver autoprobes de kaart, maar niet de 0x310-poort. Er is geen BIOS vereist.

15.3.30. ultrastor: low-level SCSI-stuurprogramma voor UltraStor

Voorbeeld:

modprobe ultrastor

Er zijn geen moduleparameters voor de LKM, maar als u deze module in de basiskernel bindt, kunt u enkele parameters via de opstartparameters van Linux doorgeven. Zie BootPrompt-HOWTO.