Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Компиляция ядра и модулей, установка зверя

Пред. 

Глава 13. Компиляция и установка новых ядер

 След.


Компиляция ядра и модулей, установка зверя

Сначала небольшое примечание: если вы перекомпилируете ядро той же самой версии, что уже имеется в вашей системе, то тогда сначала должны быть удалены старые модули. Например, если вы перекомпилируете ядро 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: эта последняя цель в конце скопирует ядро и модули в надлежащие места и изменит конфигурацию начального загрузчика так, чтобы новое ядро было доступно при загрузке. Не используйте ее, если вы предпочитаете выполнять установку вручную, как описано в «Ручная установка нового ядра».

[Warning]

Внимание

Важно соблюдать порядок целей modules_install installс тем, чтобы на самом деле сначала устанавливались модули. В противном случае initrd окажется неправильным и ядро не сможет нормально загрузиться.

На данный момент у нас все откомпилировано, корректно установлено и готово к проверке! Просто перегрузите свою машину и выберите новое ядро в меню загрузки. Обратите внимание, что старое ядро остается доступным, поэтому вы можете воспользоваться им, если у вас возникнут проблемы с новым ядром. Тем не менее вы можете выбрать ручную установку ядра и изменить меню загрузки вручную. Мы рассмотрим это в следующем разделе.



[35] В этом случае, если компиляция не удалась, это означает, что в ядре имеется ошибка... Если это так и есть, пожалуйста, сообщите о ней!


Пред. 

Уровень выше

 След.

Сохранение и повторное использование файлов конфигурации ядра 

Начало

 Ручная установка нового ядра