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

Sergey Vlasov vsu на altlinux.ru
Пт Окт 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.
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : http://lists.altlinux.org/pipermail/community/attachments/20061027/e069d857/attachment.bin 


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