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