Загружаемые модули ядра могут сохранить память и упростить настройку. Область применения модулей включает файловые системы, драйвера карт ethernet, драйверы ленточных накопителей и т.п.
Утилиты для работы с модулями доступны от туда же откуда вы получили
свое ядро, они называются 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
. Назначение других утилит для работы с модулями описано в их
справочных страницах.
В версии 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)'' дисках.