On Mon, Apr 05, 2004 at 12:03:37AM +0400, Pavel Sokolov wrote: [skip] > Сделал lsmod, он показывает, что dmx3191d unused. Это означает, что > адаптер scsi обрабатывается другим драйвером? Нет - просто для драйверов SCSI счётчик использования модуля увеличивается только при открытии устройств; когда ни одно из устройств не используется, модуль можно выгрузить. > >> А не подскажете, где можно почитать про то, каким образом устройствам > >> ставятся в соответствие модули из modules.conf. Допустим, я прошу ядро > >> подгрузить модуль, как оно узнает, к какому устройству этот модуль > >> относится? > > SV> Нормальные устройства (PCI, USB) имеют идентификаторы; в каждом модуле > SV> есть таблица идентификаторов поддерживаемых устройств. Для ISA, как > SV> правило, всё нужно указывать руками. > > Можно ли признать устройства SCSI нормальными? Можно ;) Для SCSI есть стандартная команда INQUIRY, выдающая тип устройства (диск/CD-ROM/сканер/...), название производителя и модель устройства; после обнаружения нового адаптера SCSI выполняется сканирование шины для определения устройств и назначение драйверов устроствам. Но для SCSI в ядре довольно мало драйверов верхнего уровня (sd_mod, sr_mod, st, osst, sg - вот и всё), и в большинстве случаев драйвер выбирается просто по типу, без учёта модели (поскольку команды стандартные). Исключением являются st и osst (там действительно проверяется модель, чтобы определить устройства OnStream с нестандартным набором команд). Драйвер же sg вообще универсальный - он позволяет посылать устройству любые команды; через него и работает SANE, каждый backend имеет таблицу устройств, которые он поддерживает. Автоматическая загрузка драйверов SCSI верхнего уровня после обнаружения устройств (как, например, для USB) в ядрах 2.4.x не реализована. С другой стороны, эти драйверы загружаются автоматически при обращении программы к соответствующему файлу устройства.