Skip to main content

Загрузочный модуль Linux Loader Kernel How-To - 15.3. Драйверы SCSI

Porting U-Boot and Linux on New ARM Boards: A Step-by-Step Guide - Quentin Schulz, Free Electrons (Июнь 2026)

Porting U-Boot and Linux on New ARM Boards: A Step-by-Step Guide - Quentin Schulz, Free Electrons (Июнь 2026)

:

Anonim

15,3. Драйверы SCSI

Подробная информация о драйверах SCSI содержится в SCSI-2.4-HOWTO.

Функция SCSI от Linux реализована в трех слоях, и для всех них есть LKM.

В середине находится драйвер среднего уровня или ядро ​​SCSI. Это состоит из scsi_mod LKM. Он выполняет все те вещи, которые являются общими для устройств SCSI, независимо от того, какой SCSI-адаптер вы используете и какой класс устройства (диск, сканер, привод CD-ROM и т. Д.).

Существует драйвер низкого уровня для каждого типа адаптера SCSI - обычно это другой драйвер для каждой марки. Например, низкоуровневый драйвер для адаптеров Advansys (сделанный компанией, которая сейчас является Connect.com) назван Advansys , (Если вы сравниваете ATA (aka IDE) и дисковые устройства SCSI, это большое различие - ATA прост и достаточно стандартен, что один драйвер работает со всеми адаптерами от всех компаний. SCSI менее стандартен, и в результате вы должны иметь меньше уверенности в том, что какой-либо конкретный адаптер отлично совместим с вашей системой).

Высокоуровневые драйверы предоставляют остальной части ядра интерфейс, соответствующий определенному классу устройств. Драйвер высокого уровня SCSI для ленточных устройств, улица , например, имеет iocts для перемотки назад. Высокоуровневый драйвер SCSI для дисководов CD-ROM, стер , не.

Обратите внимание, что вам редко нужен драйвер высокого уровня, характерный для определенного бренда устройства. На этом уровне мало возможностей для отличия одного бренда от другого.

Один высокоуровневый драйвер SCSI, заслуживающий особого упоминания, SG , Этот драйвер, называемый «универсальным» драйвером SCSI, представляет собой довольно тонкий слой, который представляет собой довольно грубое представление драйвера среднего уровня SCSI для остальной части ядра. Программы пользовательского пространства, которые работают через общий драйвер SCSI (потому что они получают доступ к специальным файлам устройств, чье основное число является тем, которое зарегистрировано SG (напр., 21)) имеют подробное представление о протоколах SCSI, тогда как программы пользовательского пространства, которые работают с другими высокоуровневыми драйверами SCSI, обычно даже не знают, что такое SCSI. SCSI-Programming-HOWTO имеет полную документацию об общем драйвере SCSI.

Порядок расслоения модулей SCSI опровергает то, как LKM зависят друг от друга и порядок, в котором они должны быть загружены. Вы всегда загружаете драйвер среднего уровня и выгружаете его последним. Драйверы низкого уровня и высокого уровня могут быть загружены и выгружены в любом порядке после этого, и они подключаются и устанавливают зависимость от драйвера среднего уровня с обоих концов. Если у вас нет полного набора, при попытке доступа к устройству вы получите сообщение об ошибке «устройство не найдено».

Большинство драйверов SCSI низкого уровня (адаптер) не имеют параметров LKM; они обычно выполняют автозаполнение настроек карты. Если ваша карта отвечает на какой-то нетрадиционный адрес порта, вы должны привязать драйвер в базовое ядро ​​и использовать опции командной строки ядра. См. BootPrompt-HOWTO. Или вы можете обмануть источник и перекомпилировать.

Многие драйверы низкого уровня SCSI имеют документацию в Драйверы / SCSI в дереве исходных текстов Linux, в файлах, называемых ПРОЧТИ МЕНЯ. *.

15.3.1. scsi_mod: драйвер среднего уровня SCSI

Пример:

modprobe scsi_mod

Параметры модуля отсутствуют.

15.3.2. sd_mod: драйвер высокого уровня SCSI для дисковых устройств

Пример:

modprobe sd_mod

Параметры модуля отсутствуют.

15.3.3. st: Высокоуровневый драйвер SCSI для ленточных устройств

Пример:

modprobe st

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

15.3.4. sr_mod: драйвер высокого уровня SCSI для дисководов CD-ROM

Пример:

modprobe sr_mod

Параметры модуля отсутствуют.

15.3.5. sg: драйвер SCSI высокого уровня для общих устройств SCSI

См. Объяснение этого специального драйвера высокого уровня выше.

Пример:

modprobe sg

Параметры модуля отсутствуют.

* Лицензия

* Загрузочный код модуля ядра

параметры.

15.3.6. wd7000: низкоуровневый драйвер SCSI для 7000FASST

Пример:

modprobe wd7000

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

Этот драйвер проверяет карту и требует установки BIOS.

15.3.7. aha152x: низкоуровневый драйвер SCSI для Adaptec AHA152X / 2825

Пример:

modprobe aha152x

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

Этот драйвер проверяет карту и требует установки BIOS.

15.3.8. aha1542: драйвер низкого уровня SCSI для Adaptec AHA1542

Пример:

modprobe aha1542

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

Этот драйвер автоматически проверяет карту только на 0x330 и 0x334.

15.3.9. aha1740: низкоуровневый драйвер SCSI для Adaptec AHA1740 EISA

Пример:

modprobe aha1740

Параметры модуля отсутствуют.

Этот драйвер автоматически распаковывает карту.

15.3.10. aic7xxx: низкоуровневый драйвер SCSI для Adaptec AHA274X / 284X / 294X

Пример:

modprobe aic7xxx

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

Этот драйвер автоматически запускает карту, и BIOS должен быть включен.

15.3.11. advansys: низкоуровневый драйвер SCSI для AdvanSys / Connect.com

Пример:

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

Параметры модуля:

  • asc_iopflag
    • 1
    • включить сканирование портов
    • 0
    • отключить сканирование портов
  • asc_ioport
  • Адреса портов ввода-вывода для сканирования адаптеров Advansys SCSI
  • asc_dbglvl
  • уровень отладки:
      • 0
    • Только ошибки
    • 1
    • Трассировка высокого уровня
    • 2-N
    • Подробное отслеживание

Если вы привяжете этот драйвер к базовому ядру, вы можете передать ему параметры через параметры загрузки ядра. См. BootPrompt-HOWTO.

15.3.12. in2000: низкоуровневый драйвер SCSI для Always IN2000

Пример:

modprobe in2000

Параметры модуля отсутствуют.

Этот драйвер автоматически распаковывает карту. Нет необходимости в BIOS.

15.3.13. BusLogic: низкоуровневый драйвер SCSI для BusLogic

Список карт BusLogic, которые этот драйвер может использовать, длинный. Прочитать файл Драйверы / SCSI / README.BusLogic в исходном дереве Linux, чтобы получить общую картину.

Пример:

modprobe BusLogic

Параметры модуля отсутствуют.

Если вы привяжете этот драйвер к базовому ядру, вы можете передать ему параметры через параметры загрузки ядра. См. BootPrompt-HOWTO.

15.3.14. dtc: низкоуровневый драйвер SCSI для DTC3180 / 3280

Пример:

modprobe dtc

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

Этот драйвер автоматически распаковывает карту.

15.3.15. eata: низкоуровневый драйвер SCSI для EATA ISA / EISA

Этот драйвер обрабатывает DPT PM2011 / 021/012/022/122/322.

Пример:

modprobe eata

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

15.3.16. eata_dma: низкоуровневый драйвер SCSI для EATA-DMA

Этот драйвер обрабатывает DPT, NEC, AT & T, SNI, AST, Olivetti и Alphatronix.

Этот драйвер обрабатывает DPT Smartcache, Smartcache III и SmartRAID.

Пример:

modprobe eata_dma

Параметры модуля отсутствуют.

Автозапуск работает во всех конфигурациях.

15.3.17. eata_pio: низкоуровневый драйвер SCSI для EATA-PIO

Этот драйвер обрабатывает старый DPT PM2001, PM2012A.

Пример:

modprobe eata_pio

Параметры модуля отсутствуют.

15.3.18. fdomain: драйвер низкого уровня SCSI для Future Domain 16xx

Пример:

modprobe fdomain

Параметры модуля отсутствуют.

Этот драйвер автоматически распаковывает карту и требует установки BIOS.

15.3.19. NCR5380: низкоуровневый драйвер SCSI для NCR5380 / 53c400

Пример:

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

для платы с карточкой NCR5380:

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

для карты NCR53C400 с отображением памяти с отключенными прерываниями:

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

Параметры:

  • ncr_irq
  • драйвер irq должен обслуживать. 255 означает отсутствие или прерывание DMA. 254 в autoprobe для строки IRQ, если она переопределена в командной строке.
  • ncr_addr
  • адрес порта ввода-вывода или адрес ввода-вывода с отображением карты памяти, в зависимости от того, что драйвер должен управлять
  • ncr_dma
  • канал DMA, который должен использовать драйвер
  • ncr_5380
  • 1 = настроен для платы NCR5380
  • ncr_53c400
  • 1 = настройка для платы NCR53C400

Если вы привяжете этот драйвер к базовому ядру, вы можете передать ему параметры через параметры загрузки ядра. См. BootPrompt-HOWTO.

15.3.20. NCR53c406a: низкоуровневый драйвер SCSI для NCR53c406a

Пример:

modprobe NCR53c406a

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

15.3.21. 53c7,8xx.o: низкоуровневый драйвер SCSI для NCR53c7,8xx

Пример:

modprobe 53c7,8xx

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

Этот драйвер автоматически распаковывает карту и требует установки BIOS.

15.3.22. ncr53c8xx: низкоуровневый драйвер SCSI для семейства PCI-SCS NCR538xx

Пример:

modprobe ncr53c8xx

Параметры модуля отсутствуют.

15.3.23. ppa: низкоуровневый SCSI-драйвер для ZIP-порта IOMEGA с параллельным портом

См. Файл Драйверы / SCSI / README.ppa в дереве источников Linux для деталей.

Пример:

modprobe ppa ppa_base = 0x378 ppa_nybble = 1

Параметры:

  • ppa_base
  • Базовый адрес порта ввода / вывода PPA. По умолчанию 0x378.
  • ppa_speed_high
  • Задержка, используемая при передаче данных в микросекундах. Значение по умолчанию: 1.
  • ppa_speed_low
  • Задержка, используемая в других
  • операций в микросекундах. По умолчанию 6.
  • ppa_nybble
  • 1 = Использовать 4-битный режим. 0 = нет. Значение по умолчанию - 0.

15.3.24. pas16: драйвер низкого уровня SCSI для PAS16

Пример:

modprobe pas16

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

Этот драйвер автоматически распаковывает карту. Нет необходимости в BIOS.

15.3.25. qlogicfas: драйвер низкого уровня SCSI для Qlogic FAS

Пример:

modprobe qlogicfas

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

15.3.26. qlogicisp: низкоуровневый драйвер SCSI для QLogic ISP

Пример:

modprobe qlogicisp

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

Требуется прошивка.

15.3.27. seagate: SCSI низкоуровневый драйвер для Seagate, Future Domain

Этот драйвер предназначен для Seagate ST-02 и Future Domain TMC-8xx.

Пример:

modprobe seagate

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

Этот драйвер автоматически проверяет только адрес. IRQ фиксирован в 5. Драйвер требует установленного BIOS.

15.3.28. t128: драйвер низкого уровня SCSI для Trantor T128 / T128F / T228

Пример:

modprobe t128

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

Этот драйвер автоматически распаковывает карту. Драйвер требует установленного BIOS.

15.3.29. u14-34f: низкоуровневый драйвер SCSI для UltraStor 14F / 34F

Пример:

modprobe u14-34f

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.

Этот драйвер автоматически открывает карту, но не порт 0x310. Нет необходимости в BIOS.

15.3.30. ultrastor: низкоуровневый драйвер SCSI для UltraStor

Пример:

modprobe ultrastor

Для LKM нет параметров модуля, но если вы привяжете этот модуль к базовому ядру, вы можете передать некоторые параметры с помощью параметров загрузки Linux. См. BootPrompt-HOWTO.