The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

8.1 Сборка ядра

8.1 Сборка ядра

Предыдущая  Содержание  Следующая V*D*V

Система сборки ядра (более популярный термин для неё это kbuild) поставляется вместе с исходниками ядра. Система kbuild основана на make от GNU; следовательно, все передаваемые команды предназначены для make. Механизм kbuild даёт весьма простую процедуру создания сборки ядра; сконфигурировать и собрать ядро и модули можно всего за несколько шагов. Также, она очень расширяема, в том смысле, что добавление своих собственных команд в процедуру сборки или настройка под себя процесса конфигурации является очень простым делом.

В процедуре kbuild ядра версии 2.6 произошли некоторые существенные изменения. Так что эта глава объясняет процедуры сборки ядра как версии 2.4, так и версии 2.6. Сборка ядра состоит из четырёх шагов:

 

1.Настройка среды кросс-разработки: поскольку Linux имеет поддержку многих архитектур, процедура kbuild должна быть настроена на архитектуру, для которой собираются образ ядра и модули. По умолчанию среда сборки ядра собирает образы для машины, на которой происходит сборка.

2.Процесс конфигурации: это процедура выбора компонентов. С помощью этого шага может быть указан список какое программное обеспечение должно войти в ядро, а какое может быть скомпилировано в виде модулей. В конце этого шага kbuild записывает эту информацию в набор известных файлов, так что остальные части kbuild знают о выбранных компонентах. Объектами при выборе компонентов обычно являются:

a.Выбор процессора

b.Выбор платы

c.Выбор драйверов

d.Некоторые общие параметры ядра
Для процедуры конфигурации существует много внешних интерфейсов; ниже перечислены те, которые могут быть использованы для ядер версии 2.4 и 2.6.

a.make config: это сложный способ настройки, потому что это заставило бы выбирать компоненты на вашем терминале.

b.make menuconfig: это внешний интерфейс на базе curses для процедуры kbuild, показанный на Рисунке 8.1. Его удобно использовать на машинах, которые не имеют доступа к графическому дисплею; однако, для его работы вы должны установить библиотеку разработки ncurses.

c.make xconfig: это графический интерфейс для процесса конфигурации, показанный на Рисунке 8.2. Версия 2.4 использовала X, в то время как версия 2.6 использует QT. Есть ещё одна версия для 2.6, которая использует GTK и вызывается запуском make gconfig.

d.make oldconfig: часто вы хотели бы сделать минимальные изменения в существующей конфигурации. Эта опция позволяет  сборке сохранить параметры по умолчанию из существующей конфигурации и запрашивать только новые изменения. Эта опция очень полезна, когда вы хотите автоматизировать процедуру сборки с помощью сценариев.

3.Сборка объектных файлов и их компоновка, чтобы создать образ ядра: после завершения выбора компонентов для  сборки ядра необходимы следующие шаги:

a.Для ядра версии 2.4 с помощью команды make dep должна быть создана информация о зависимостях из заголовочных файлов (какой файл .c зависит от какого файла .h). В ядре версии 2.6 в этом необходимости нет.

b.Тем не менее, шаг очистки является общим для ядер обоих версий, 2.4 и 2.6; команда make clean очищает сборку от всех объектных файлов, образа ядра и всех промежуточных файлов, но сохраняет информацию о конфигурации. Существует ещё одна команда, которая делает всю это очистку вместе с очисткой конфигурации: это команда make mrpoper.

c.Последним шагом является создание образа ядра. Если вы просто наберёте команду make, то на выходе получите образ ядра с названием vmlinux. Тем не менее, сборка ядра на этом не останавливается; как правило, выполняются некоторые постобработки, которые необходимо сделать, чтобы, например, сжать его, добавить код начальной загрузки, и так далее. Именно постобработка создаёт образ, который может быть использован на целевой платформе (постобработка не стандартизирована, поскольку она варьируется в зависимости от платформы и используемых загрузчиков).

4.Сборка динамически загружаемых модулей: работу по созданию модулей выполнит команда make modules.

 

Рисунок 8.1 Конфигурация ядра на базе curses.

Рисунок 8.1 Конфигурация ядра на базе curses.

 

Рисунок 8.2 Конфигурация ядра на базе X

Рисунок 8.2 Конфигурация ядра на базе X.

 

Чтобы использовать kbuild для сборки ядра, конечному пользователя достаточно перечисленных выше команд. Однако, в случае встраиваемых системах вы бы захотели более глубокой настройки процесса сборки для себя; некоторые причины указаны ниже.

 

Вы можете захотеть добавить свой BSP в отдельный каталог и изменить конфигурацию так, чтобы kbuild собирал компоненты программного обеспечения, необходимые для вашей платы.

Вы можете захотеть добавить к процессу сборки свой собственный компоновщик, компилятор и флаги ассемблера.

Вы можете захотеть настроить постобработку образа ядра, после того, как оно будет собрано.

Вы можете захотеть добавить в kbuild дополнительные возможности выбора, чтобы выполнять сборку всей системы.

 

По этим причинам в следующем разделе будем вдаваться в тонкости процесса сборки.

 

Предыдущая  Содержание  Следующая