[mdk-re] serial ports not working with kernel 2.4.7!!! Bug or feature?
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_mivlgu=2Emurom=2Eru?=
Вс Авг 5 20:49:00 MSD 2001
On Sun, 05 Aug 2001 18:39:57 +0400
cornet <cornet на zmail.ru> wrote:
> И все же я так и не понял, что это за char-major-NNN модули??
> Вечно логи забиты сообщениями, что modprobe видите ли не смог их
> найти, задолбало уже....
>
> Кто нть может это популярно разъяснить??
Это механизм автозагрузки модулей по требованию. Когда происходит
обращение к файлу устройства, для которого в данный момент не загружен
драйвер (ядру неизвестен этот major number), делается попытка
запустить modprobe char-major-NNN (или block-major-NNN для блочного
устройства). В modprobe есть таблица, где перечислены драйверы для
большинства номеров; если там нужной записи нет, можно указать в
/etc/modules.conf alias char-major-NNN <имя модуля>. Если modprobe не
может найти нужный драйвер (номер вообще неизвестен, или, как в случае
с serial, нужного модуля нет), пишется сообщение в лог.
Выяснить, к какому устройству относится major number, можно в файле
Documentation/devices.txt (в исходниках ядра или в пакете kernel-doc).
Например, так надоевший многим char-major-180 - это устройства USB;
для этого номера нет единого драйвера, поэтому автозагрузка в данном
случае вряд ли возможна. char-major-226 - это DRI; для него нужно
выбрать драйвер, соответствующий видеокарте, и поставить в alias (или
поставить off, если DRI не поддерживается).
Есть еще char-major-10-NNN - это miscdevices (для устройств, не
требующих собственного major number); их номера тоже есть в
devices.txt. Кроме того, похожий механизм используется и в других
местах: для загрузки драйверов сетевых протоколов (net-pf-NNN),
модулей сжатия PPP (ppp-compress-NNN), ... При загрузке модуля scsi
делается запрос модуля scsi_hostadapter.
Подробная информация о списке рассылки community