Linux -сборник рецептов

         

Настройка нового ядра


Настройка конфигурации является не только самым длительным, но и самым важным этапом сборки нового ядра. На этом этапе вы решаете, какое оборудование, файловые системы, функции энергосбережения и т. д. будут поддерживаться ядром. В вашем распоряжении более сотни разных параметров и для каждого нужно принять три потенциальных решения: нужно ли включать данную возможность, и если нужно — оформить ли ее в виде загружаемого модуля или статически откомпилировать в ядро? Как правило, если возможно построить модуль, следует выбрать именно этот вариант. Модули экономят память, поскольку память для них выделяется лишь в случае их фактического использования. Кроме того, обновить или установить отдельный модуль проще, чем перестраивать все ядро.

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

Программа конфигурации ядра не позволит реализовать в виде модуля те функции, которые должны быть частью базового ядра. У этого правила есть лишь одно важное исключение: драйвер дискового устройства, содержащего корневую файловую систему. Вообще говоря, этот драйвер должен быть встроен в базовое ядро, чтобы система могла загрузиться, иначе возникает «порочный круг»: драйверы необходимы для загрузки корневой файловой системы, но файловая система не может загрузиться, потому что драйверы находятся в ней. Если драйверы не встраиваются в ядро, вам придется создать образ initrd. Initrd создает исходный виртуальный диск, который загружает драйверы дисковых устройств, что позволяет загрузить систему.

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

Для настройки ядра 2.4 используется программа menuconfig, а для настройки ядра 2.6 — либо menuconfig, либо xconfig. Программа menuconfig создана на базе ncurses, так что вам не понадобится X. Если поддержка ncurses не установлена, либо установите ее, либо используйте исходную программу настройки ядра config, но это просто ужасно. Процесс затягивается на целую вечность, и если вы допустите хотя бы одну ошибку, все придется начинать заново.

Программа xconfig была полностью переработана для ядра 2.6. Она чрезвычайно эффективна и удобна, а по каждому параметру пользователь может получить содержательную справку. Для ее запуска вам понадобится Qt, qt-devel, gtt и X. На Рисунок 10.1 показан пользовательский интерфейс xconfig во всей красе.

Дерево сборки ядра содержит объемистую документацию; загляните в каталог linux-$VERSION/Documentation. В каталоге Linux-$VERSION/README содержатся важные указания по поводу установки, а в каталоге linux-$VERSION/Documentation/ Changes — важная информация о версиях gcc и других используемых программах.

Содержание раздела