IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Linux  >

Экзамен LPI 201: Ядро Linux

Администрирование, средний уровень (LPIC-2) тема 201

developerWorks
На предыдущую страницуСтраница 3 из 8 На предыдущую страницу

Опции документа

Обсудить


Выскажите мнение об этом учебном пособии

Помогите нам улучшить содержание


Компиляция ядра

В этом разделе мы рассматриваем материал по теме 2.201.2 экзамена 201 Администрирование, средний уровень (LPIC-2). Рейтинг темы 1.

Получение исходников ядра

Первое, что нужно сделать, чтобы скомпилировать новое ядро, -- получить его исходные коды. Основное хранилище исходников ядра -- Linux Kernel Archives (kernel.org; см. Ресурсы). Производитель вашего дистрибутива мог включить в него обновленные исходники ядра, чтобы показать внесенные изменения. Например, вы можете получить и распаковать версию ядра с командами, подобными следующим:


Листинг 1. Получение и распаковка ядра
                    
   % cd /tmp/src/
   % wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.12.tar.bz2
   % cd /usr/src/
   % tar jxvfy /tmp/src/linux-2.6.12.tar.bz2

Для распаковывания исходников ядра а каталог /usr/src/ вам понадобятся права root'а. Однако, вы можете распаковать и собрать ядро в своем домашнем каталоге. Поищите на kernel.org другие форматы архивов и протоколов загрузки.



В начало


Проверка исходников ядра

Если вы благополучно получили и распаковали архив с исходниками ядра, в вашей системе должен появиться каталог /usr/src/linux-2.6.12 (или, если вы распаковывали архив в другом месте, каталог с похожим названием). Важно, что тот каталог должен содержать файл README с текущей информацией. В этом каталоге содержатся подкаталоги с исходными файлами, в основном это файлы .c и .h. Главные действия по объединению этих файлов в работающее ядро прописаны в файле Makefile, который использует утилита make.



В начало


Конфигурирование сборки

После получения и распаковывания исходников ядра у вас может появиться желание сконфигурировать ядро. Команда make имеет три опции для настройки опций ядра: config, menuconfig и xconfig. Вообще, можно отредактировать файл .config, но делать это нежелательно (вы откажетесь от дополнительной информации и можете легко создать нерабочую конфигурацию).

Командой make config воспользоваться также непросто, как и отредактировать файл .config вручную; вам придется настраивать каждую опцию (их сотни) в определенном порядке, без возможности возврата к предыдущему действию. Команда make menuconfig предоставляет curses интерфейс, где вы можете выбрать только те опции, которые необходимо изменить. Команда make xconfig предоставляет симпатичный графический интерфейс (особенно красивый в Linux 2.6+).

Для значительной части опций ядра возможны три варианта выбора: (1) включить компоненту в базовое ядро (include the capability in the base kernel) ; (2) включить как модуль ядра (include it as a kernel module); (3) совсем не включать компоненту (omit the capability entirely). Вообще, в создании многочисленных модулей ядра нет ничего страшного (кроме незначительного увеличения времени компиляции), поскольку пока они не нужны, они и не загружены. Если дисковое пространство ограничено, можно не включать никаких возможностей.



В начало


Запуск процесса сборки

Теперь, чтобы собрать базовое ядро с выбранными опциями, следует выполнить следующие действия:

  • make dep: необходимо только для ядра 2.4, для 2.6 не требуется.
  • make clean: очистить предыдущие объектные файлы, это особенно полезно, если вы собираете данное ядро не первый раз.
  • make bzImage: создать базовое ядро. В особых случаях для небольших образов ядра можно использовать make zImage. Вы также можете воспользоваться командой make zlilo, чтобы установить ядро прямо в загрузчик lilo, или командой make zdisk, чтобы создать загрузочную дискету. Вообще, лучше создавать образ ядра в каталоге типа /usr/src/linux/arch/i386/boot/vmlinuz, используя команду make bzImage, и затем копировать его оттуда вручную.
  • make modules: создать все сконфигурированные загружаемые модули ядра.
  • sudo make modules_install: установить все собранные модули в каталог /lib/modules/2.6.12/, название подкаталога совпадает с номером версии ядра.


В начало


Создание стартового ram-диска

Если вы создали важный загрузочный драйвер, стартовый ram-диск позволит загрузить его в процессе начальной загрузки. Это касается главным образом тех драйверов файловой системы, которые были собраны в виде модулей ядра. По существу, стартовый ram-диск -- некий магический корневой псевдо-раздел, который живет в памяти и позже выполняет chroot на реальный раздел диска (например, если ваш корневой раздел расположен на RAID). Более подробное описание вы найдете в следующих учебных пособиях этой серии.

Создание стартового ram-диска осуществляется при помощи команды mkinitrd. Чтобы узнать, какие опции имеет команда mkinitrd, включенная в ваш дистрибутив Linux, обратитесь к странице man этой команды. Самое простое -- запустить команду, подобную следующей:


Листинг 2. Создание ram-диска
                    
   % mkinitrd /boot/initrd-2.6.12 2.6.12



В начало


Инсталляция собранного ядра Linux

Успешно собрав базовое ядро и связанные с ним модули (это займет какое-то время -- на медленных машинах до нескольких часов), вы должны скопировать образы ядра (vmlinuz или bzImage) в свой каталог /boot/.

После того как вы скопировали необходимые файлы в /boot/ и установили модули ядра при помощи make modules_install, необходимо сконфигурировать загрузчик, обычно это lilo или grub, для доступа к соответствующему ядру (ядрам). Информацию о конфигурировании lilo и grub вы найдете в следующем учебном пособии этой серии.



В начало


Дополнительная информация

На сайте kernel.org есть много полезных ссылок, по которым можно получить дополнительную информацию о компонентах ядра и требованиях для сборки. Чрезвычайно полезная и подробная информация содержится в руководстве Kernel Rebuild Guide Квана Лоу (Kwan Lowe). Ссылки на эти ресурсы вы найдете в разделе Ресурсы.



В начало



На предыдущую страницуСтраница 3 из 8 На предыдущую страницу
    IBM в России Конфиденциальность Контакты