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