10.7. Добавление нового загружаемого модуля ядра

Проблема
В системе было установлено новое оборудование (сетевая или звуковая карта,
устройство USB). Требуется установить новый модуль ядра (драйвер) для этого
устройства.
Решение
В ядрах 2.4 и 2.6 используется одна и та же процедура. Перейдите в каталог с дере вом сборки (например, ~/src/linux-2.4.25). Вам потребуется актуальный файл .config;
скопируйте его на верхний уровень дерева сборки и выполните следующую команду:
# make oldconfig
В процессе настройки конфигурации найдите нужный драйвер и выберите его
оформление в виде модуля (например, модуль tulip является универсальным драй вером для многих карт Ethernet). Затем выполните команды:
$ make dep
$ make modules
# make modules install
# depmod -av
Загрузите модуль командой modprobe:
# modprobe tulip
Процесс не требует перезагрузки системы.
Комментзрии
Если использовать oldconfig почему-либо не удастся, используйте make menuconfig.
Правда, это займет больше времени, и вам придется следить за тем, чтобы не упу стить что-нибудь важное.
При установке сторонних модулей; не входящих в дерево ядра, следует руковод ствоваться инструкциями производителя. Стандартная процедура включает загруз ку исходных текстов, сборку модуля и его загрузку командой modprobe. Некоторые
производители (например, nVidia) включают сценарий, который делает все за вас.
Как правило, дистрибутивы проверяют оборудование при загрузке и автомати чески загружают нужные модули. Если этого не происходит, вам придется внести
изменения в стартовые файлы. В Red Hat и SuSE модуль включается в файл /etc/
modules.conf; в Debian используется файл/etc/modules, а в Slackware — файл re.modules.
Еще более простой способ — включить в ядро поддержку kmod, автоматичес кого загрузчика модулей. В большинстве дистрибутивов она включается по умол чанию. В программах настройки конфигурации ядра для этой цели используется
пункт «Automatic kernel module loading» (ядро 2.6) или «Kernel module loader» (2.4)
в категории «Loadable module support».
He используйте программу kerneld; начиная с ядра 2.2, вместо нее используется kmod.
См. также
Раздел «Введение» настоящей главы; раздел 10.2.