15.3。 SCSI驱动程序
有关SCSI驱动程序的详细信息在SCSI-2.4-HOWTO中。
Linux的SCSI功能分为三层,并且都有LKM。
中间是中级驱动程序或SCSI内核。 这包含scsi_mod LKM。 它可以完成SCSI设备中常见的所有事情,而不管您使用的是哪种SCSI适配器以及它是什么类型的设备(磁盘,扫描仪,CD-ROM驱动器等)。
每种SCSI适配器都有一个低级驱动程序 - 通常,每个品牌都有不同的驱动程序。 例如,Advansys适配器的低级驱动程序(由现在是Connect.com的公司制作)被命名为advansys 。 (如果您正在比较ATA(也称为IDE)和SCSI磁盘设备,这是一个主要区别 - ATA非常简单和标准,以至于一个驱动程序可以与所有公司的所有适配器一起工作。SCSI不太标准,因此您应该拥有对任何特定适配器与您的系统完美兼容的可信度降低)。
高级驱动程序向内核的其余部分呈现适合于某类设备的接口。 例如,用于磁带设备的SCSI高级驱动程序具有ioctls倒带功能。 CD-ROM驱动器的高级SCSI驱动程序sr不。
请注意,您很少需要特定品牌设备的高级驱动程序。 在这个层面上,一个品牌与另一个品牌的区别不大。
一个值得特别提及的SCSI高级驱动程序是sg 。 这个名为“SCSI generic”驱动程序的驱动程序是一个相当薄的层,它将SCSI中级驱动程序的一个相当原始的表示形式呈现给内核的其余部分。 通过SCSI通用驱动程序操作的用户空间程序(因为它们访问主要编号为sg (to wit,21)注册的设备专用文件)对SCSI协议有详细的了解,而用户空间程序通过其他SCSI高级驱动程序通常甚至不知道SCSI是什么。 SCSI-Programming-HOWTO具有SCSI通用驱动程序的完整文档。
SCSI模块的分层顺序掩盖了LKM相互依赖的方式以及它们必须加载的顺序。 您总是首先加载中级驱动程序并最后卸载它。 之后,低级和高级驱动程序可以以任何顺序加载和卸载,并且他们自己依赖于两端的中级驱动程序并依赖它们。 如果您没有完整的设置,当您尝试访问设备时,会出现“设备未找到”错误。
大多数SCSI低级(适配器)驱动程序不具有LKM参数; 他们通常会自动进行卡片设置。 如果你的卡片响应了一些非常规的端口地址,你必须将驱动程序绑定到基本内核并使用内核“命令行”选项。 请参阅BootPrompt-HOWTO。 或者你可以旋转源并重新编译。
许多SCSI低级驱动程序在Linux源代码树的drivers / scsi目录中有文档,名为README。 *。
15.3.1。 scsi_mod:SCSI中级驱动程序
例:
modprobe scsi_mod没有模块参数。
15.3.2。 sd_mod:磁盘设备的SCSI高级驱动程序
例:
modprobe sd_mod没有模块参数。
15.3.3。 st:磁带设备的SCSI高级驱动程序
例:
modprobe stLKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
15.3.4。 sr_mod:用于CD-ROM驱动器的SCSI高级驱动程序
例:
modprobe sr_mod没有模块参数。
15.3.5。 sg:通用SCSI设备的SCSI高级驱动程序
请参阅上面这个特殊的高级驱动程序的解释。
例:
modprobe sg没有模块参数。
* 许可证
* 可加载的内核模块How-To索引
参数。
15.3.6。 wd7000:用于7000FASST的SCSI低级驱动程序
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
该驱动程序可以使用该卡并需要安装BIOS。
15.3.7。 aha152x:用于Adaptec AHA152X / 2825的SCSI低级驱动程序
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
该驱动程序可以使用该卡并需要安装BIOS。
15.3.8。 aha1542:用于Adaptec AHA1542的SCSI低级驱动程序
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
该驱动程序仅在0x330和0x334自动检查卡。
15.3.9。 aha1740:用于Adaptec AHA1740 EISA的SCSI低级驱动程序
例:
没有模块参数。
该驱动程序自动检查该卡。
15.3.10。 aic7xxx:用于Adaptec AHA274X / 284X / 294X的SCSI低级驱动程序
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
该驱动程序自动检查该卡,并且必须启用BIOS。
15.3.11。 advansys:AdvanSys / Connect.com的SCSI低级驱动程序
例:
模块参数:
- asc_iopflag
- 1
- 启用端口扫描
- 0
- 禁用端口扫描
- asc_ioport
- I / O端口地址来扫描Advansys SCSI适配器
- asc_dbglvl
- 调试级别:
- 0
- 仅错误
- 1
- 高级跟踪
- 2-N
- 详细的跟踪
如果将此驱动程序绑定到基本内核中,则可以通过内核引导参数将参数传递给它。 请参阅BootPrompt-HOWTO。
15.3.12。 in2000:Always IN2000的SCSI低级驱动程序
例:
没有模块参数。
该驱动程序自动检查该卡。 不需要BIOS。
15.3.13。 BusLogic:BusLogic的SCSI低级驱动程序
该驱动程序可以驱动的BusLogic卡列表很长。 阅读Linux源代码树中的文件驱动程序/ scsi / README.BusLogic以获取全部图片。
例:
没有模块参数。
如果将此驱动程序绑定到基本内核中,则可以通过内核引导参数将参数传递给它。 请参阅BootPrompt-HOWTO。
15.3.14。 dtc:DTC3180 / 3280的SCSI低级驱动程序
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
该驱动程序自动检查该卡。
15.3.15。 eata:用于EATA ISA / EISA的SCSI低级驱动程序
该驱动程序处理DPT PM2011 / 021/012/022/122/322。
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
15.3.16。 eata_dma:用于EATA-DMA的SCSI低级驱动程序
该驱动程序处理DPT,NEC,AT&T,SNI,AST,Olivetti和Alphatronix。
该驱动程序处理DPT Smartcache,Smartcache III和SmartRAID。
例:
没有模块参数。
Autoprobe适用于所有配置。
15.3.17。 eata_pio:用于EATA-PIO的SCSI低级驱动程序
该驱动程序处理旧的DPT PM2001,PM2012A。
例:
没有模块参数。
15.3.18。 fdomain:Future Domain 16xx的SCSI低级驱动程序
例:
没有模块参数。
该驱动程序自动检查该卡,并要求安装BIOS。
15.3.19。 NCR5380:NCR5380 / 53c400的SCSI低级驱动程序
例:
对于映射NCR5380板的端口:
对于禁用中断的内存映射NCR53C400板:
参数:
- ncr_irq
- 司机要服务的irq。 255表示没有或DMA中断。 如果在命令行中被覆盖,则自动探测IRQ行。
- ncr_addr
- 驱动器要驱动的I / O端口地址或内存映射I / O地址(无论哪种适合)
- ncr_dma
- 驱动程序要使用的DMA通道
- ncr_5380
- 1 =设置为NCR5380板
- ncr_53c400
- 1 =设置为NCR53C400板
如果将此驱动程序绑定到基本内核中,则可以通过内核引导参数将参数传递给它。 请参阅BootPrompt-HOWTO。
15.3.20。 NCR53c406a:NCR53c406a的SCSI低级驱动程序
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
15.3.21。 53c7,8xx.o:适用于NCR53c7,8xx的SCSI低级驱动程序
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
该驱动程序自动检查该卡,并要求安装BIOS。
15.3.22。 ncr53c8xx:用于PCI-SCS NCR538xx系列的SCSI低级驱动程序
例:
没有模块参数。
23年3月15日。 ppa:用于IOMEGA并行端口ZIP驱动器的低级SCSI驱动程序
有关详细信息,请参阅Linux源代码树中的文件drivers / scsi / README.ppa 。
例:
参数:
- ppa_base
- PPA的I / O端口的基地址。 默认0x378。
- ppa_speed_high
- 数据传输中使用的延迟(以微秒为单位)。 缺省值是1。
- ppa_speed_low
- 延迟用于其他
- 操作,以微秒为单位。 缺省值是6。
- ppa_nybble
- 1 =使用4位模式。 0 =不。 缺省值是0。
15.3.24。 pas16:用于PAS16的SCSI低级驱动程序
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
该驱动程序自动检查该卡。 不需要BIOS。
25年3月15日。 qlogicfas:用于Qlogic FAS的SCSI低级驱动程序
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
15.3.26。 qlogicisp:用于Qlogic ISP的SCSI低级驱动程序
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
需要固件。
15.3.27。 希捷:希捷未来领域的SCSI低级驱动程序
该驱动程序适用于希捷ST-02和未来域TMC-8xx。
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
该驱动程序仅用于地址自动检查。 IRQ固定为5.该驱动程序需要安装BIOS。
28年3月15日。 t128:用于Trantor T128 / T128F / T228的SCSI低级驱动程序
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
该驱动程序自动检查该卡。 该驱动程序需要安装BIOS。
29年3月15日。 u14-34f:用于UltraStor 14F / 34F的SCSI低级驱动程序
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。
该驱动程序自动检查卡,但不是 0x310端口。 不需要BIOS。
30年3月15日。 ultrastor:用于UltraStor的低级SCSI驱动程序
例:
LKM没有模块参数,但是如果将此模块绑定到基本内核中,则可以通过Linux引导参数传递一些参数。 请参阅BootPrompt-HOWTO。