[Comm] Определить major, minor модуля

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Пт Окт 27 16:09:18 MSD 2006


On Fri, Oct 27, 2006 at 02:40:29PM +0300, Valentin Lavrinenko wrote:
> Существует ли способ, не обращаясь к исходникам, определить,
> какие major, minor обслуживает тот или иной модуль ядра?

В общем случае нет.  Иногда может помочь modinfo (если в модуле есть alias
вида char-major-* или block-major-*), но это не всегда работает по
следующим причинам:

 - В некоторых модулях соответствующие alias могут быть просто не
   прописаны разработчиком (они нужны только для автозагрузки модулей при
   обращении к файлам на статическом /dev, всё остальное работает и без
   них).

 - Зачастую major/minor регистрирует общий модуль, не работающий
   непосредственно с аппаратурой, а тот модуль, который обслуживает нужное
   устройство, просто использует общие функции.  Именно такая ситуация с
   драйвером parport_serial - есть общий драйвер для последовательных
   портов и отдельный модуль для поддержки комбинированных PCI-устройств,
   имеющих как последовательные, так и параллельные порты.

 - Наконец, в последнее время многие новые драйверы используют
   динамический выбор major - конкретный номер выделяется только при
   загрузке модуля.  А minor почти всегда назначались динамически
   (исключениями являются разве что IDE и ttyS* для ISA-устройств).
   
Вообще при использовании ядер 2.6.x и udev следить за конкретными номерами
major/minor уже не так нужно - вместо этого можно добавить правила udev
для обнаружения устройств с требуемыми характеристиками (PCI-устройства
можно различать, например, по положению на шине PCI, некоторые
USB-устройства имеют уникальные серийные номера, ...) и назначения им
требуемых имён, не зависящих от major/minor.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20061027/e069d857/attachment-0003.bin>


Подробная информация о списке рассылки community