Книга: Разработка ядра Linux
Компиляция вне дерева исходных кодов ядра
Компиляция вне дерева исходных кодов ядра
Если вы предпочитаете разрабатывать и поддерживать ваш модуль отдельно от дерева исходных кодов ядра и жить жизнью аутсайдера, просто создайте файл Makefile
следующего вида в том каталоге, где находится модуль.
obj-m := fishing.o
Такая конфигурация позволяет скомпилировать файл fishing.c
в файл fishing.ko
. Если ваш исходный код занимает несколько файлов, то необходимо добавить две строки.
obj-m := fishing.o
fishing-objs := fishing-main.o fishing-line.o
Такая конфигурация позволяет скомпилировать файлы fishing-main.c
и fishing-line.c
и создать модуль fishing.ko
.
Главное отличие от случая, когда модуль находится внутри дерева исходного кода, состоит в процессе сборки. Так как модуль находится за пределами дерева исходных кодов ядра, необходимо указать утилите make
местонахождение исходных файлов ядра и файл Makefile
ядра. Это также делается просто с помощью следующей команды!.
make -С /kernel/source/location SUBDTRS=$PWD modules
В этом примере /kernel/source/location
— путь к сконфигурированному дереву исходных кодов ядра. Вспомните, что не нужно хранить копию дерева исходных кодов ядра, с которой вы работаете, в каталоге /usr/src/linux
, эта копия должна быть где-то в другом месте, скажем где-нибудь в вашем домашнем каталоге.
- От полезности, цены и издержек – к внедрению
- Дополнительные национальные кодовые страницы и порядки сортировки
- Безопасная работа с внешними таблицами
- 1.3. Правила подключения к компьютеру внешних устройств
- Безопасность внешних таблиц. Параметр EXTERNAL FILE DIRECTORY
- 8.1.4. Сравнение массивов
- Обход дерева
- 7. Операция левого внешнего соединения.
- 8. Операция правого внешнего соединения.
- 9. Операция полного внешнего соединения.
- 1.1 Режимы ядра и пользователя Windows
- 4.2 Сравнение SAN и NAS