Сборка и установка ядра Linux
Самостоятельная сборка действительно рабочего ядра Linux — длительный и кропотливый процесс, требующий высокого профессионализма. Разработчи- ки дистрибутива добиваются наилучшей работы ядра, тщательно интегрируя его с программным обеспечением, входящим в дистрибутив. Нет никакой гарантии, что самостоятельно собранное ядро, которое на первый взгляд ка- жется рабочим, действительно будет обеспечивать стабильную работу систе- мы. Собирать ядро необходимо лишь при наличии действительно обоснован-
ной необходимости и только после тщательного изучения документации от производителя используемого дистрибутива.
Чаще всего необходимость пересборки ядра в системах, не связанных с раз- работкой новых ядер Linux, возникает вследствие следующих причин:
r в коде ядра, используемого в системе, обнаруживается серьезная уязви- мость;
r необходимость обновления кода ядра, связанная с используемым ПО;
r отсутствие или несоответствие драйвера для какого-либо устройства;
r отсутствие кода в ядре или модулях ядра для поддержки какой-либо функции;
r необходимость расширения функциональности ядра;
r необходимость оптимизации работы ядра. Для пересборки ядра требуется:
r наличие компилятора, пригодного для пересборки ядра;
r наличие GNU-пакета make;
r наличие исходного кода ядра и, возможно, пакетов обновления (patches);
r при пересборке ядра из дистрибутива необходимо иметь пакеты с исход- ным кодом ядра и заголовочными файлами;
r порядка 2 Гбайт дискового пространства;
r достаточные вычислительные ресурсы;
r время на конфигурирование и сборку ядра.
До появления ядер 2.6 использовалась специальная система именования ядер, позволяющая отличить стабильные ядра от экспериментальных. У стабиль- ных ядер второе число в версии являлся четным числом, а у эксперименталь- ных ядер — нечетным. Например, ядро 2.4.22 из стабильной ветви, а 2.5.59 из экспериментальной.
Начиная с ядра 2.6.11, разработчики Linux перешли на новую систему нуме- рации ядер, составленную из четырех цифр. В ней последняя цифра меняется при незначительных изменениях кода в рамках основной версии ядра, имя которой составлено из трех цифр. Изменения четвертой цифры в номере от- ражают, чаще всего, стабилизирующие исправления в коде. Изменение третьей цифры в номере ядра отражает появление новых возможностей и драйверов в коде.
Получить архив с исходным кодом ядра можно с сайтов www.kernel.org, ftp.kernel.orgили с зеркал (пример 18.27).
Пример 19.27. Получение и распаковка архива |
$ wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.tar.bz2
$ wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/patch-2.6.32.3.bz2
$ tar xjf linux-2.6.32.tar.bz2
После этого можно перейти к обновлению распакованного кода ядра с по- мощью полученного патча (пример 19.28).
Пример 19.28. Обновление ядра 2.6.32 до 2.6.32.3 |
$ cd linux-2.6.32
$ bzcat ../patch-2.6.32.3.bz2 | patch -p1 patching file ...
$ head -4 Makefile VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 32
EXTRAVERSION = .3
В примере на ядро 2.6.32 наложен патч 2.6.32.3, в результате чего версия яд- ра обновилась до 2.6.32.3, что видно в Makefile.
Важно соблюдать правила обновления кода ядра с помощью патчей:
r патчи, обновляющие ядро в четвертой цифре версии, накладываются на первую версию ядра этой ветки, т. е., например, патч 2.6.32.3 накладыва- ется на ядро 2.6.32, а не на 2.6.32.2;
r патчи, обновляющие ядро в третьей цифре ядра, обязательно накладывают- ся кумулятивно, т. е. 2.6.30 обновляется до 2.6.31 и лишь затем до 2.6.32.
Перед сборкой ядра настоятельно рекомендуется прочесть файл README.
Для сборки ядра 2.6 следует пройти следующие стадии.
r make mrproper — предварительная очистка и удаление ненужных файлов.
Дата добавления: 2015-06-12; просмотров: 720;