Компиляция ядра без ABS


Представленная ниже информация будет полезна при сборке пользовательского ядра c kernel.org. Данный метод компиляции ядра является традиционным методом, общим для всех дистрибутивов; однако, он отличается от установки ядра при помощи makepkg и pacman.


I. Получение исходников

Вы можете получить исходники ядра на kernel.org. Если у вас нет графического ftp-клиента, воспользуйтесь командой wget. В этом примере мы будем скачивать и компилировать ядро версии 2.6.32.8; вам необходимо изменить только версию, чтобы получить новое ядро.

Например:

$ wget -c http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.8.tar.bz2


* Скопируйте архив с ядром в вашу рабочую директорию.:

$ cp linux-2.6.32.8.tar.bz2 ~/kernelbuild/

* Распакуйте архив и войдите в полученную директорию:

$ cd ~/kernelbuild $ tar -xvjf linux-2.6.32.8.tar.bz2 $ cd linux-2.6.32.8

* Подготовьтесь к компиляции посредством следующей команды:

$ make mrproper

Это может понадобиться для очистки каталогов после предыдущих компиляций. Разработчики ядра рекомендуют выполнять эту команду перед каждой компиляцией ядра.

II. Конфигурирование 

* (Необязательно) Скопируйте файл .config вашего текущего ядра, если хотите модифицировать настройки ядра Arch, заданные по умолчанию.

$ zcat /proc/config.gz > .config

* Сконфигурируйте ваше ядро.

$ make menuconfig (Будет создана новая конфигурация и файл '.config'.)

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

$ make oldconfig (работает только со старым файлом '.config', копируя его в директорию, где проходит сборка. Также позволяет выбрать опции скачанного вами ядра, которые помечены как 'НОВЫЕ'.)
$ make xconfig (Требует установки Qt. Приятный интерфейс.)
$ make gconfig (Требует установки GTK. Другая реализация xconfig.)
$ make help (Справочная информация.)
Внесите изменения в конфигурацию ядра и сохраните конфигурационный файл. Это неплохая идея - делать его копию, поскольку вы можете испробовать несколько вариантов сборки, пока не получите тот, который действительно вас устроит.
Если вы компилируете ядро, используя текущий конфигурационный файл, не забудьте переименовать версию ядра, иначе вы можете по ошибке заменить существующее.

$ make menuconfig

General setup  --->

(-ARCH) Local version - append to kernel release '3.n.n-RCn'

Как насчет /usr/src/ ? 

Вы можете использоввать директорию /usr/src/ для сборки ядра от пользователя root c предварительным созданием символтческой ссылки, хотя это считается плохой практикой. Наилучшим вариантом будет просто использовать вашу домашнюю директорию. Если вы согласны с этой точкой зрения, собирайте и конфигурируйте ваше ядро от имени непривилегированного пользователя и лишь устанавливайте от имени суперпользователя root, или при помощи makepkg и pacman.

Хотя эта концепция является предметом дискуссий и некоторые опытные пользователи рассматривают практику компилирования от root в /usr/src/ полностью безопасной, приемлемой и даже предпочтительной.
Используйте тот метод, с которым можете чувствовать себя более уверенно.

III. Компиляция и установка 

* Соберите ядро:

$ make

(Или make vmlinux && make modules && make bzImage - смотрите make help для получения подробной информации.)
Если у вас многоядерный процессор ( Dual Core, Quad Core, etc), вы можете компилировать ядро быстрее, добавив флаг -j .

$ make -j [ число ядер + 1]

Примечение: Рекомендуется выставить число на один больше, чем имеется ядер в вашей машине. Например: для двухъядерной машины вы можете выставить значение make -j3.

* Установка модулей: ( предстоит сделать с правами root.)

# make modules_install

Это скопирует скомпилированные модули в директорию /lib/modules с именем версии ядра. Эти модули будут храниться отдельно от тех, что уже используются другими ядрами в системе.

* Копирование ядра:

# cp -v arch/x86/boot/bzImage /boot/vmlinuz-НазваниеВашегоЯдра

Если вам нужны какие-либо модули для того, чтобы смонтировать корневую файловую систему, создайте виртуальный диск (большинству пользователей это нужно):

# mkinitcpio -k ПолноеНазваниеЯдра -g /boot/initramfs-НазваниеВашегоЯдра.img

Вы можете назвать ядро при копировании в /boot как вам угодно. Однако, лучше указывать его имя + версию, чтобы не происходило путаницы.

IV. Конфигурация загрузчика

Добавьте строку для загрузки вашего нового ядра в GRUB или LILO как указано в примерах. Заметим, что если у вас установлен LILO, исходные тексты ядра содержат скрипт для автоматизации процесса:

$ arch/i386/boot/install.sh

При использовании LILO, не забудьте скомандовать lilo как root, чтобы обновить его.

Примечание: эта статья была переведена автором в меру его способнсотей, вы можете найти её на ArchWiki .


0 коммент.: (+add yours?)

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.