Skip to main content

O Linux Carregável Kernel Module How-To - 15.3. Drivers SCSI

Linux Kernel Module Programming - 03 Coding, Compiling the Module (Pode 2025)

Linux Kernel Module Programming - 03 Coding, Compiling the Module (Pode 2025)

:

Anonim

15.3. Drivers SCSI

Informações detalhadas sobre drivers SCSI estão em HOWTO SCSI-2.4.

A função SCSI do Linux é implementada em três camadas e há LKMs para todos eles.

No meio está o driver de nível médio ou núcleo SCSI. Este consiste no scsi_mod LKM Ele faz todas as coisas que são comuns entre dispositivos SCSI, independentemente de qual adaptador SCSI você usa e qual classe de dispositivo (disco, scanner, unidade de CD-ROM, etc.) é.

Existe um driver de baixo nível para cada tipo de adaptador SCSI - normalmente, um driver diferente para cada marca. Por exemplo, o driver de baixo nível para adaptadores Advansys (fabricado pela empresa que é agora Connect.com) é denominado advansys . (Se você estiver comparando dispositivos de disco ATA (também IDE) e SCSI, essa é uma grande diferença - o ATA é simples e padrão o suficiente para que um driver funcione com todos os adaptadores de todas as empresas. menos confiança em qualquer adaptador em particular, sendo perfeitamente compatível com o seu sistema).

Drivers de alto nível apresentam ao restante do kernel uma interface apropriada para uma determinada classe de dispositivos. O driver de alto nível SCSI para dispositivos de fita, st , por exemplo, tem ioctls para retroceder. O driver SCSI de alto nível para unidades de CD-ROM, sr , não.

Observe que você raramente precisa de um driver de alto nível específico para uma determinada marca de dispositivo. Nesse nível, há pouco espaço para uma marca ser distinguível da outra.

Um driver de alto nível SCSI que merece menção especial é sg . Esse driver, chamado de driver "genérico SCSI", é uma camada bastante fina que apresenta uma representação bastante bruta do driver de nível médio SCSI para o restante do kernel. Programas de espaço do usuário que operam através do driver genérico SCSI (porque eles acessam arquivos especiais do dispositivo cujo número principal é aquele registrado pelo sg (a saber, 21)) têm uma compreensão detalhada dos protocolos SCSI, enquanto que os programas de espaço do usuário que operam através de outros drivers de alto nível SCSI normalmente nem sabem o que é SCSI. O SCSI-Programming-HOWTO possui documentação completa do driver genérico SCSI.

A ordem de camadas dos módulos SCSI desmente a maneira como os LKMs dependem uns dos outros e a ordem na qual eles devem ser carregados. Você sempre carrega o driver de nível médio primeiro e descarrega-o pela última vez. Os drivers de baixo e alto nível podem ser carregados e descarregados em qualquer ordem depois disso, e eles se conectam e estabelecem dependência no driver de nível médio em ambas as extremidades. Se você não tiver um conjunto completo, receberá um erro "dispositivo não encontrado" ao tentar acessar um dispositivo.

A maioria dos drivers SCSI de baixo nível (adaptador) não possui parâmetros LKM; eles geralmente são autoprometidos para configurações de cartão. Se a sua placa responder a algum endereço de porta não convencional, você deverá ligar o driver ao kernel base e usar as opções de "linha de comando" do kernel. Veja BootPrompt-HOWTO. Ou você pode girar a fonte e recompilar.

Muitos drivers de baixo nível SCSI possuem documentação no drivers / scsi diretório na árvore de código-fonte do Linux, em arquivos chamados README. *.

15.3.1. scsi_mod: driver de nível médio SCSI

Exemplo:

modprobe scsi_mod

Não há parâmetros do módulo.

15.3.2. sd_mod: Driver de alto nível SCSI para dispositivos de disco

Exemplo:

modprobe sd_mod

Não há parâmetros do módulo.

15.3.3. st: driver de alto nível SCSI para dispositivos de fita

Exemplo:

modprobe st

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

15.3.4. sr_mod: Driver de alto nível SCSI para unidades de CD-ROM

Exemplo:

modprobe sr_mod

Não há parâmetros do módulo.

15.3.5. sg: Driver de alto nível SCSI para dispositivos SCSI genéricos

Veja a explicação deste driver especial de alto nível acima.

Exemplo:

modprobe sg

Não há parâmetros do módulo.

* Licença

* Índice How-To do Módulo Kernel Carregável

parâmetros.

15.3.6. wd7000: Driver de baixo nível SCSI para 7000FASST

Exemplo:

modprobe wd7000

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

Este driver atoprobes a placa e requer o BIOS instalado.

15.3.7. aha152x: Driver de baixo nível SCSI para Adaptec AHA152X / 2825

Exemplo:

modprobe aha152x

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

Este driver atoprobes a placa e requer o BIOS instalado.

15.3.8. aha1542: Driver de baixo nível SCSI para Adaptec AHA1542

Exemplo:

modprobe aha1542

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

Este driver autoprobes a placa em 0x330 e 0x334 somente.

15.3.9. aha1740: Driver de baixo nível SCSI para Adaptec AHA1740 EISA

Exemplo:

modprobe aha1740

Não há parâmetros do módulo.

Esse driver autoprobe o cartão.

15.3.10. aic7xxx: Driver de baixo nível SCSI para Adaptec AHA274X / 284X / 294X

Exemplo:

modprobe aic7xxx

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

Este driver detecta automaticamente a placa e o BIOS deve estar ativado.

15.3.11. advansys: driver de baixo nível SCSI para AdvanSys / Connect.com

Exemplo:

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

Parâmetros do módulo:

  • asc_iopflag
    • 1
    • habilitar a varredura de porta
    • 0
    • desabilitar a varredura de porta
  • asc_ioport
  • Endereços de porta de E / S para procurar adaptadores SCSI Advansys
  • asc_dbglvl
  • nível de depuração:
      • 0
    • Apenas erros
    • 1
    • Rastreamento de alto nível
    • 2-N
    • Rastreamento detalhado

Se você ligar este driver ao kernel base, poderá passar parâmetros para ele através dos parâmetros de inicialização do kernel. Veja BootPrompt-HOWTO.

15.3.12. in2000: driver de baixo nível SCSI para Always IN2000

Exemplo:

modprobe in2000

Não há parâmetros do módulo.

Esse driver autoprobe o cartão. Nenhum BIOS é necessário.

15.3.13. BusLogic: driver de baixo nível SCSI para BusLogic

A lista de cartões BusLogic que este driver pode dirigir é longa. Ler arquivo drivers / scsi / README.BusLogic na árvore de fontes do Linux para obter a imagem total.

Exemplo:

modprobe BusLogic

Não há parâmetros do módulo.

Se você ligar este driver ao kernel base, poderá passar parâmetros para ele através dos parâmetros de inicialização do kernel. Veja BootPrompt-HOWTO.

15.3.14. dtc: driver de baixo nível SCSI para DTC3180 / 3280

Exemplo:

modprobe dtc

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

Esse driver autoprobe o cartão.

15.3.15. eata: Driver de baixo nível SCSI para EATA ISA / EISA

Este driver manipula DPT PM2011 / 021/012/022/122/322.

Exemplo:

comer modprobe

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

15.3.16. eata_dma: Driver SCSI de baixo nível para o EATA-DMA

Este driver lida com DPT, NEC, AT & T, SNI, AST, Olivetti e Alphatronix.

Este driver lida com DPT Smartcache, Smartcache III e SmartRAID.

Exemplo:

modprobe eata_dma

Não há parâmetros do módulo.

Autoprobe funciona em todas as configurações.

15.3.17. eata_pio: Driver de baixo nível SCSI para EATA-PIO

Este driver lida com o antigo DPT PM2001, PM2012A.

Exemplo:

modprobe eata_pio

Não há parâmetros do módulo.

15.3.18. fdomain: driver SCSI de baixo nível para o domínio futuro 16xx

Exemplo:

modprobe fdomain

Não há parâmetros do módulo.

Este driver detecta automaticamente a placa e requer o BIOS instalado.

15.3.19. NCR5380: Driver de baixo nível SCSI para NCR5380 / 53c400

Exemplo:

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

para uma placa NCR5380 mapeada em porta:

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

para uma placa NCR53C400 mapeada na memória com interrupções desativadas:

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

Parâmetros:

  • ncr_irq
  • o irq o motorista está a serviço. 255 significa não ou interrupção de DMA. 254 para autoprobe para uma linha de IRQ se substituído na linha de comando.
  • ncr_addr
  • o endereço de porta de E / S ou o endereço de E / S mapeado na memória, o que for apropriado, que o driver deve ser
  • ncr_dma
  • o canal DMA o driver é usar
  • ncr_5380
  • 1 = configurado para uma placa NCR5380
  • ncr_53c400
  • 1 = configurado para uma placa NCR53C400

Se você ligar este driver ao kernel base, poderá passar parâmetros para ele através dos parâmetros de inicialização do kernel. Veja BootPrompt-HOWTO.

15.3.20. NCR53c406a: driver de baixo nível SCSI para NCR53c406a

Exemplo:

modprobe NCR53c406a

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

15.3.21. 53c7,8xx.o: Driver de baixo nível SCSI para NCR53c7,8xx

Exemplo:

modprobe 53c7,8xx

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

Este driver detecta automaticamente a placa e requer o BIOS instalado.

15.3.22. ncr53c8xx: Driver SCSI de baixo nível para a família PCI-SCS NCR538xx

Exemplo:

modprobe ncr53c8xx

Não há parâmetros do módulo.

15.3.23. ppa: driver SCSI de baixo nível para a unidade ZIP de porta paralela IOMEGA

Veja o arquivo drivers / scsi / README.ppa na árvore de fontes do Linux para detalhes.

Exemplo:

modprobe ppa ppa_base = 0x378 ppa_nybble = 1

Parâmetros:

  • ppa_base
  • Endereço base da porta de E / S do PPA. Padrão 0x378.
  • ppa_speed_high
  • Atraso utilizado nas transferências de dados, em microssegundos. O padrão é 1.
  • ppa_speed_low
  • Atraso usado em outras
  • operações, em microssegundos. O padrão é 6.
  • ppa_nybble
  • 1 = Use o modo de 4 bits. 0 = não O padrão é 0.

15.3.24. pas16: driver de baixo nível SCSI para PAS16

Exemplo:

modprobe pas16

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

Esse driver autoprobe o cartão. Nenhum BIOS é necessário.

15.3.25. qlogicfas: Driver de baixo nível SCSI para Qlogic FAS

Exemplo:

modprobe qlogicfas

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

15.3.26. qlogicisp: Driver de baixo nível SCSI para o Qlogic ISP

Exemplo:

modprobe qlogicisp

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

Requer firmware.

15.3.27. Seagate: Driver de baixo nível SCSI para Seagate, Future Domain

Este driver é para o Seagate ST-02 e o Future Domain TMC-8xx.

Exemplo:

seagate modprobe

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

Este driver autoprobes para endereço somente. O IRQ é fixado em 5. O driver requer o BIOS instalado.

15.3.28. t128: Driver de baixo nível SCSI para Trantor T128 / T128F / T228

Exemplo:

modprobe t128

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

Esse driver autoprobe o cartão. O driver requer o BIOS instalado.

15.3.29. u14-34f: driver de baixo nível SCSI para UltraStor 14F / 34F

Exemplo:

modprobe u14-34f

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.

Este driver autoprobes o cartão, mas não a porta 0x310. Nenhum BIOS é necessário.

15.3.30. ultrastor: driver SCSI de baixo nível para UltraStor

Exemplo:

ultrastor modprobe

Não existem parâmetros de módulo para o LKM, mas se você ligar este módulo ao kernel base, poderá passar alguns parâmetros através dos parâmetros de inicialização do Linux. Veja BootPrompt-HOWTO.