В данном пошаговом руководстве вы узнаете, как правильно собрать и установить ядро ветви 2.6 в семействе ОС Ubuntu.

Шаг 1. Получение исходного кода ядра

  1. Перейдите на сайт kernel.org
  2. Загрузите полный архив необходимой вам версии ядра в домашнюю папку, нажав справа от неё на ссылку [Full Source]
  3. Распакуйте полученный архив, используя команды:
cd ~/
tar -xjf linux-2.6.x.y.tar.bz2

Шаг 2. Получение необходимых для сборки пакетов

Данный шаг необходимо выполнить, только если ядро собирается на компьютере в первый раз

Выполните следующие команды для установки основных пакетов:

sudo apt-get update
sudo apt-get build-dep linux
sudo apt-get install kernel-package

Далее всё зависит от того, каким способом вы хотите произвести конфигурацию ядра. Это можно сделать несколькими способами.

  • config - традиционный способ конфигурирования. Программа выводит параметры конфигурации по одному, предлагая вам установить для каждого из них свое значение. Не рекоммендуется для неопытных пользователей.
  • oldconfig - файл конфигурации создаётся автоматически, основываясь на текущей конфигурации ядра. Рекомендуется для начинающих.
  • defconfig - файл конфигурации создаётся автоматически, основываясь на значениях по-умолчанию.
  • menuconfig - псевдографический интерфейс ручной конфигурации, не требует последовательного ввода значений параметров. Рекомендуется для использования в терминале.
  • xconfig - графический (X) интерфейс ручной конфигурации, не требует последовательного ввода значений параметров.
  • gconfig - графический (GTK+) интерфейс ручной конфигурации, не требует последовательного ввода значений параметров. Рекомендуется для использования в среде GNOME.

В случае, если вы хотите использовать config, oldconfig, defconfig или xconfig, вам больше не нужны никакие дополнительные пакеты. В случае же с оставшимися тремя вариантами необходимо установить также дополнительные пакеты.

Для установки пакетов, необходимых для использования menuconfig выполните следующую команду:

sudo apt-get install libncurses5-dev

Для установки пакетов, необходимых для использования gconfig выполните следующую команду:

sudo apt-get install libgtk2.0-dev libglib2.0-dev libglade2-dev

Шаг 3. Применение патчей

Данный шаг не является обязательным

Если вы никогда до этого не применяли патчей к исходному коду, то выполните следующую команду:

sudo apt-get install patch

Эта команда установит программу patch, необходимую для, как можно догадаться, применения патчей. Теперь скачайте файл патча в папку, куда вы распаковали ядро. Это может быть либо архивный файл (напр. Bzip2 или Gzip), либо несжатый patch-файл.

На данный момент подразумевается, что вы уже сохранили файл в ту папку, куда ранее распаковали ядро, и установили программу patch.
Если скачанный вами файл был в формате Gzip (*.gz), тогда выполните следующую команду для распаковки содержимого архива:

gunzip patch-2.6.x.y.gz

Если скачанный вами файл был в формате Bzip2 (*.bz2), тогда выполните следующую команду для распаковки содержимого архива:

bunzip2 patch-2.6.x.y.bz2

где 2.6.x.y - версия патча ядра. Соответствующие команды распакуют файл патча в папку с исходным кодом ядра. Прежде чем применить патч, необходимо удостовериться, что он заработает без ошибкок. Для этого выполните команду:

patch -p1 -i patch-2.6.x.y --dry-run

где 2.6.x.y - версия патча ядра. Эта команда сымитирует применение патча, не изменяя сами файлы.

Если при её выполнении не возникнет ошибок, то изменения можно смело внедрять в сами файлы. Для этого выполните команду:

patch -p1 -i patch-2.6.x.y

где 2.6.x.y - версия патча ядра. Если не было никаких ошибок, значит к исходному коду был успешно применён патч.

Шаг 4. Конфигурация будущей сборки ядра

Перейдите в папку, куда вы распаковали ядро, выполнив команду

cd ~/linux-2.6.x.y

где 2.6.x.y - версия загруженного вами ядра.

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

  • config
    make config

  • oldconfig

    make oldconfig

  • defconfig

    make defconfig

  • menuconfig

    make menuconfig

  • gconfig

    make gconfig

  • xconfig

    make xconfig

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

Шаг 5. Сборка ядра

Итак, приготовления завершены. Теперь можно запустить процесс сборки ядра. Чтобы это сделать, выполните команду:

fakeroot make-kpkg --append-to-version=-custom kernel_image kernel_headers

Сборка ядра может занимать от 20 минут до нескольких часов в зависимости от конфигурации ядра и технических параметров компьютера.

Шаг 6. Установка образов и заголовков ядра

Когда сборка ядра подошла к концу, в вашей домашней папке появятся два deb-пакета. Их и необходимо установить. Для этого выполните команды:

cd ~/
sudo dpkg -i linux-headers-2.6.x.y-custom_2.6.x.y-custom-10.00.Custom_arc.deb
sudo dpkg -i linux-image-2.6.x.y-custom_2.6.x.y-custom-10.00.Custom_arc.deb

где 2.6.x.y - версия собранного ядра, arc - архитектура процессора (i386 - 32-бит, amd64 - 64-бит).
Если вы не знаете точного названия пакета, выведите список файлов в домашнем каталоге командой

ls -l

и найдите эти самые два пакета.

Шаг 7. Генерация начального RAM-диска

Для корректной работы Ubuntu требует наличия образа начального RAM-диска. Чтобы его создать, выполните команду:

sudo update-initramfs -c -k 2.6.x.y-custom

где 2.6.x.y - версия собранного ядра.

Шаг 8. Обновление конфигурации загрузчика GRUB

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

sudo update-grub

Файл menu.lst (для GRUB версии 1) или grub.cfg (для GRUB версии 2) обновится в соответствии с наличием установленных операционных систем и образов ядер.

Шаг 9. Проверка ядра

Сборка и установка ядра успешно выполнены! Теперь перезагрузите компьютер и попробуйте загрузить систему с новым ядром. Чтобы удостовериться, что система запущена с новым ядром, выполните команду

uname -r

Она выведет на экран используемую версию ядра.

Если всё сделано правильно, то вы можете удалить архивы с исходным кодом и весь каталог linux-2.6.x.y в вашей домашней папке. Это освободит около 5 ГБ на вашем жёстком диске (размер освобождаемого пространства зависит от параметров сборки).

На этом процесс сборки и установки завершён, поздравляю!

ToDo

  • Написать инструкцию по использованию каждого из интерфейсов конфигурирования (со скриншотами)
  • Заснять скринкаст по теме (в рамках проекта "Видеокурс Ubuntu")
  • Написать раздел вроде FAQ или Troubleshooting