Сначала небольшое примечание: если вы перекомпилируете ядро той же самой версии, что уже имеется в вашей системе, то тогда сначала должны быть удалены старые модули. Например, если вы перекомпилируете ядро 2.6.8, вы должны удалить каталог /lib/modules/2.6.8.
Компиляция ядра и модулей, а затем и установка модулей, выполняется при помощи следующих команд:
make clean make all make modules_install install |
Небольшой словарик: любые аргументы типа clean, all и т.п. называются целями. Обратите внимание, что, начиная с ядра 2.6, существует цель под названием all. Выполнение этой цели - то же самое, что выполнение (на архитектуре x86) целей bzImage и modules. Эта новая опция будет создавать предпочтительные цели для любой заданной архитектуры. До 2.6 для каждой архитектуры для компиляции ядра имелась своя опция с отдельным именем. Если вы задаете для make как показано выше несколько целей, они будут выполнены в порядке указания. Но в случае сбоя одной из целей, make дальнейшую сборку продолжать не будет[35].
Давайте взглянем на различные цели и узнаем, что же они делают:
bzImage: эта цель соберет ядро. Обратите внимание, что эта цель верна только для процессоров x86 и x86_64. Эта цель также создает файл System.map для этого ядра. Позже мы увидим, для чего используется этот файл;
modules: эта цель создаст модули для только что собранного вами ядра. Если вы выбрали сборку без модулей, эта цель ничего делать не будет;
all: this target will generate the preferred kernel type image for the given architecture and modules ;
modules_install: эта цель установит модули. По умолчанию модули будут установлены в каталог /lib/modules/<версия-ядра>. Эта цель также вычисляет зависимости модулей;
install: эта последняя цель в конце скопирует ядро и модули в надлежащие места и изменит конфигурацию начального загрузчика так, чтобы новое ядро было доступно при загрузке. Не используйте ее, если вы предпочитаете выполнять установку вручную, как описано в «Ручная установка нового ядра».
На данный момент у нас все откомпилировано, корректно установлено и готово к проверке! Просто перегрузите свою машину и выберите новое ядро в меню загрузки. Обратите внимание, что старое ядро остается доступным, поэтому вы можете воспользоваться им, если у вас возникнут проблемы с новым ядром. Тем не менее вы можете выбрать ручную установку ядра и изменить меню загрузки вручную. Мы рассмотрим это в следующем разделе.
[35] В этом случае, если компиляция не удалась, это означает, что в ядре имеется ошибка... Если это так и есть, пожалуйста, сообщите о ней!