Вперед Назад Содержание

9. Модули

Загружаемые модули ядра могут сохранить память и упростить настройку. Область применения модулей включает файловые системы, драйвера карт ethernet, драйверы ленточных накопителей и т.п.

9.1 Установка утилит для работы с модулями

Утилиты для работы с модулями доступны от туда же откуда вы получили свое ядро, они называются modules-x.y.z.tar.gz; выберите самый большой номер x.y.z, который равен или ниже чем номер вашего текущего ядра. Распакуйте их с помощью команды `tar zxvf modules-x.y.z.tar.gz', перейдите в директорию, которую эта команда создала (modules-x.y.z), посмотрите файл README, и выполните приведенные в нем инструкции по установке (которые обычно являются очень простыми, такими как make install). Вы должны теперь получить программы insmod, rmmod, ksyms, lsmod, genksyms, modprobe, и depmod в директории /sbin. Если вы хотите, протестируйте полученные программы с помощью демонстрационного драйвера ``hw'' в insmod; для более детальной информации смотрите файл INSTALL, который находится в директории с исходными текстами.

Команда insmod вставляет модуль в работающее ядро. Модули обычно имеют расширение .o; пример драйвера, упомянутый выше называется drv_hello.o, так для того чтобы вставить его, вы должны выполнить `insmod drv_hello.o'. Для того чтобы увидеть список загруженных модулей используйте команду lsmod. Ее вывод выглядит примерно так:

    blah# lsmod
    Module:        #pages:  Used by:
    drv_hello          1

`drv_hello' это имя модуля, он использует 1 страницу оперативной памяти (4k), и ни какие модули ядра не зависят от него на текущий момент. Для удаления этого модуля используйте команду `rmmod drv_hello'. Заметим, что rmmod требует имя модуля, а не имя файла; вы можете получить его из списка выдаваемого lsmod. Назначение других утилит для работы с модулями описано в их справочных страницах.

9.2 Модули распространяемые с ядром

В версии 2.0.30, почти все доступно как загружаемые модули. Для их использования сначала сначала убедитесь, что вы не настроили их вкомпилированными в ядро; то есть вы не ответили y в процессе выполнения `make config'. Скомпилируйте новое ядро и загрузитесь с ним. Затем снова перейдите в /usr/src/linux, и выполните `make modules'. это скомпилирует все модули, которые вы не указали при настройке ядра, и поместит ссылки на них в /usr/src/linux/modules. ВЫ можете использовать их прямо из этой директории, или выполните команду `make modules_install', которая установит модули в директорию /lib/modules/x.y.z, где x.y.z это версия ядра.

Это может быть особенно полезным в использовании файловых систем. Вы можете нечасто использовать файловые системы minix или msdos. Например, если я сталкиваюсь с гибким диском с msdos, я должен сделать insmod /usr/src/linux/modules/msdos.o, и затем rmmod msdos, когда все закончено. Эта процедура сохраняет примерно 50k ОЗУ в ядре в течении нормальной работы. Маленькое замечание для использования файловой системы minix: вы должны всегда настроить его прямо в ядро для использования в ``восстановительных (rescue)'' дисках.


Вперед Назад Содержание