Skip to main content

Linux Loadable Kernel Module How-To - 15.3. SCSI-drivrutiner

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-drivrutiner

Detaljerad information om SCSI-drivrutiner finns i SCSI-2.4-HOWTO.

Linux SCSI-funktion är implementerad i tre lager, och det finns LKM för alla.

I mitten finns mellannivådrivrutinen eller SCSI-kärnan. Detta består av scsi_mod LKM. Det gör alla de saker som är vanliga bland SCSI-enheter oberoende av vilken SCSI-adapter du använder och vilken klass av enhet (skiva, skanner, CD-ROM-enhet etc.).

Det finns en lågnivå drivrutin för varje typ av SCSI-adapter - vanligtvis en annan drivrutin för varje märke. Till exempel heter lågnivådrivrutinen för Advansys-adaptrar (tillverkad av företaget som nu är Connect.com) Advansys . (Om du jämför ATA (aka IDE) och SCSI-diskenheter, är det här en stor skillnad. ATA är enkelt och standard för att en drivrutin ska fungera med alla adaptrar från alla företag. SCSI är mindre standard och därför borde du ha mindre förtroende för en viss adapter är perfekt kompatibel med ditt system).

Drivrutiner på hög nivå presenterar för resten av kärnan ett gränssnitt som är lämpligt för en viss klass av enheter. SCSI-högnivådrivrutinen för band-enheter, st , till exempel har ioctl att spola tillbaka. SCSI-drivrutinen på hög nivå för CD-ROM-enheter, sr , gör inte.

Observera att du sällan behöver en högnivå drivrutin som är specifik för ett visst märke av en enhet. På den här nivån finns det inget utrymme för att ett varumärke kan särskiljas från en annan.

En SCSI högnivå drivrutin som förtjänar speciellt omnämnande är sg . Den här drivrutinen, som heter "SCSI generic" -drivrutinen, är ett ganska tunt skikt som presenterar en ganska rå representation av SCSI-mellannivåns drivrutin till resten av kärnan. Användarutrymme-program som fungerar via den generella SCSI-drivrutinen (eftersom de får tillgång till speciella specialfiler vars stora nummer är den som registrerats av sg (till skillnad från 21)) har en detaljerad förståelse för SCSI-protokoll, medan användarutrymme-program som fungerar via andra SCSI-drivrutiner på hög nivå, vet inte ens vad SCSI är. SCSI-Programming-HOWTO har fullständig dokumentation för den SCSI generiska drivrutinen.

SCSI-modulernas lagerordning bestämmer hur LKMs beror på varandra och den ordning i vilken de måste laddas. Du laddar alltid lasten på mellannivån först och lossar den senast. Drivrutinerna på låg nivå och på hög nivå kan laddas och lossas i vilken ordning som helst efter det, och de kopplar sig in och fastställer beroende av mellanhögtalaren i båda ändarna. Om du inte har en komplett uppsättning kommer du att få ett "felmeddelande" som inte hittades när du försöker komma åt en enhet.

De flesta SCSI-drivrutiner med låg nivå (adapter) har inte LKM-parametrar. de brukar autoprobe för kortinställningar. Om ditt kort svarar på någon okonventionell portadress måste du binda drivrutinen till baskärnan och använda kärnan "kommandorads" alternativ. Se BootPrompt-HOWTO. Eller du kan twiddle The Source och kompilera.

Många SCSI-drivrutiner på låg nivå har dokumentation i drivers / scsi katalog i Linux-källträdet, i filer som heter README. *.

15.3.1. scsi_mod: SCSI mid-level driver

Exempel:

modprobe scsi_mod

Det finns inga modulparametrar.

15.3.2. sd_mod: SCSI högnivå drivrutin för diskenheter

Exempel:

modprobe sd_mod

Det finns inga modulparametrar.

15.3.3. St: SCSI högnivå drivrutin för tejp enheter

Exempel:

modprobe st

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

15.3.4. sr_mod: SCSI högnivå drivrutin för cd-rom-enheter

Exempel:

modprobe sr_mod

Det finns inga modulparametrar.

15.3.5. sg: SCSI högnivå drivrutin för generiska SCSI-enheter

Se förklaringen till den här speciella högeffektiva drivrutinen ovan.

Exempel:

modprobe sg

Det finns inga modulparametrar.

* Licens

* Loadable Kernel Module How-To Index

parametrar.

15.3.6. wd7000: SCSI lågnivå drivrutin för 7000FASST

Exempel:

modprobe wd7000

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

Den här drivrutinen uppmanar kortet och kräver installerat BIOS.

15.3.7. aha152x: SCSI lågnivådrivrutin för Adaptec AHA152X / 2825

Exempel:

modprobe aha152x

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

Den här drivrutinen uppmanar kortet och kräver installerat BIOS.

15.3.8. aha1542: SCSI lågnivådrivrutin för Adaptec AHA1542

Exempel:

modprobe aha1542

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

Denna förare autoprobes kortet endast på 0x330 och 0x334.

15.3.9. aha1740: SCSI lågnivå drivrutin för Adaptec AHA1740 EISA

Exempel:

modprobe aha1740

Det finns inga modulparametrar.

Denna förare autoprobes kortet.

15.3.10. aic7xxx: SCSI lågnivådrivrutin för Adaptec AHA274X / 284X / 294X

Exempel:

modprobe aic7xxx

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

Denna förare autoprobes kortet och BIOS måste vara aktiverat.

15.3.11. Advansys: SCSI lågnivå drivrutin för AdvanSys / Connect.com

Exempel:

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

Modulparametrar:

  • asc_iopflag
    • 1
    • aktivera portscanning
    • 0
    • inaktivera portscanning
  • asc_ioport
  • I / O-porten adresserar för att söka efter Advansys SCSI-adaptrar
  • asc_dbglvl
  • felsökningsnivå:
      • 0
    • Endast fel
    • 1
    • Spårning på hög nivå
    • 2-N
    • Verbose spårning

Om du binder denna drivrutin till baskärnan kan du skicka parametrar till den via kärnans startparametrar. Se BootPrompt-HOWTO.

15.3.12. in2000: SCSI lågnivå drivrutin för Always IN2000

Exempel:

modprobe in2000

Det finns inga modulparametrar.

Denna förare autoprobes kortet. Ingen BIOS krävs.

15.3.13. BusLogic: SCSI lågnivå drivrutin för BusLogic

Listan över BusLogic-kort som denna förare kan köra är lång. Läs filen drivers / scsi / README.BusLogic i Linux-källträdet för att få den totala bilden.

Exempel:

modprobe BusLogic

Det finns inga modulparametrar.

Om du binder denna drivrutin till baskärnan kan du skicka parametrar till den via kärnans startparametrar. Se BootPrompt-HOWTO.

15.3.14. dtc: SCSI lågnivå drivrutin för DTC3180 / 3280

Exempel:

modprobe dtc

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

Denna förare autoprobes kortet.

15.3.15. eata: SCSI lågnivå drivrutin för EATA ISA / EISA

Denna förare hanterar DPT PM2011 / 021/012/022/122/322.

Exempel:

modprobe eata

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

15.3.16. eata_dma: SCSI lågnivå drivrutin för EATA-DMA

Denna förare hanterar DPT, NEC, AT & T, SNI, AST, Olivetti och Alphatronix.

Den här drivrutinen hanterar DPT Smartcache, Smartcache III och SmartRAID.

Exempel:

modprobe eata_dma

Det finns inga modulparametrar.

Autoprobe fungerar i alla konfigurationer.

15.3.17. eata_pio: SCSI lågnivå drivrutin för EATA-PIO

Den här drivrutinen hanterar gammal DPT PM2001, PM2012A.

Exempel:

modprobe eata_pio

Det finns inga modulparametrar.

15.3.18. fdomain: SCSI lågnivå drivrutin för Future Domain 16xx

Exempel:

modprobe fdomain

Det finns inga modulparametrar.

Den här drivrutinen autoprobes kortet och kräver installerad BIOS.

15.3.19. NCR5380: SCSI lågnivå drivrutin för NCR5380 / 53c400

Exempel:

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

för en portkartad NCR5380 styrelse:

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

för ett minneskortat NCR53C400-kort med avbrott inaktiverade:

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

parametrar:

  • ncr_irq
  • Den irq föraren som ska betjäna. 255 betyder nej eller DMA-avbrott. 254 till autoprobe för en IRQ-linje om den överstyrs på kommandoraden.
  • ncr_addr
  • I / O-portadressen eller minneskortet I / O-adress, beroende på vad som är lämpligt, att föraren ska köra
  • ncr_dma
  • DMA-kanalen som föraren ska använda
  • ncr_5380
  • 1 = ställs in för en NCR5380 bräda
  • ncr_53c400
  • 1 = inställd för en NCR53C400 bräda

Om du binder denna drivrutin till baskärnan kan du skicka parametrar till den via kärnans startparametrar. Se BootPrompt-HOWTO.

15.3.20. NCR53c406a: SCSI lågnivådrivrutin för NCR53c406a

Exempel:

modprobe NCR53c406a

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

15.3.21. 53c7,8xx.o: SCSI lågnivådrivrutin för NCR53c7,8xx

Exempel:

modprobe 53c7,8xx

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

Den här drivrutinen autoprobes kortet och kräver installerad BIOS.

15.3.22. ncr53c8xx: SCSI lågnivådrivrutin för PCI-SCS NCR538xx-familjen

Exempel:

modprobe ncr53c8xx

Det finns inga modulparametrar.

15.3.23. ppa: Lågnivå SCSI-drivrutin för IOMEGA parallell port ZIP-enhet

Se filen drivers / scsi / README.ppa i Linux källa träd för detaljer.

Exempel:

modprobe ppa ppa_base = 0x378 ppa_nybble = 1

parametrar:

  • ppa_base
  • Basadressen till PPA: s I / O-port. Standard 0x378.
  • ppa_speed_high
  • Fördröjning som används vid dataöverföringar, i mikrosekunder. Standard är 1.
  • ppa_speed_low
  • Fördröjning som används i andra
  • operationer, i mikrosekunder. Standard är 6.
  • ppa_nybble
  • 1 = Använd 4-bitars läge. 0 = inte. Standard är 0.

15.3.24. pas16: SCSI lågnivå drivrutin för PAS16

Exempel:

modprobe pas16

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

Denna förare autoprobes kortet. Ingen BIOS krävs.

15.3.25. qlogicfas: SCSI lågnivå drivrutin för Qlogic FAS

Exempel:

modprobe qlogicfas

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

15.3.26. qlogicisp: SCSI lågnivå drivrutin för Qlogic ISP

Exempel:

modprobe qlogicisp

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

Kräver fast programvara.

15.3.27. seagate: SCSI lågnivå drivrutin för Seagate, Future Domain

Den här drivrutinen är för Seagate ST-02 och Future Domain TMC-8xx.

Exempel:

modprobe seagate

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

Denna förare autoprobes endast för adress. IRQ är fixerad till 5. Föraren kräver installerad BIOS.

15.3.28. t128: SCSI lågnivådrivrutin för Trantor T128 / T128F / T228

Exempel:

modprobe t128

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

Denna förare autoprobes kortet. Föraren behöver installerat BIOS.

15.3.29. u14-34f: SCSI lågnivå drivrutin för UltraStor 14F / 34F

Exempel:

modprobe u14-34f

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.

Denna förare autoprobes kortet, men inte 0x310 porten. Ingen BIOS krävs.

15.3.30. ultrastor: SCSI-drivrutin med låg nivå för UltraStor

Exempel:

modprobe ultrastor

Det finns inga modulparametrar för LKM, men om du binder denna modul till baskärnan kan du skicka några parametrar via Linux-startparametrarna. Se BootPrompt-HOWTO.