Сборка ядра Ubuntu Linux
Автор: SHARK в linux | Блог Связиста | Воскресенье 18 сентября 2011В данном пошаговом руководстве вы узнаете, как правильно собрать и установить ядро ветви 2.6 в семействе ОС Ubuntu.
Шаг 1. Получение исходного кода ядра
-
Перейдите на сайт
-
Загрузите полный архив необходимой вам версии ядра в домашнюю папку, нажав справа от неё на ссылку [Full Source]
-
Распакуйте полученный архив, используя команды:
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
Шаг 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 ГБ на вашем жёстком диске (размер освобождаемого пространства зависит от параметров сборки).
На этом процесс сборки и установки завершён, поздравляю!