Kernel/Upgrade/ru

Эта статья описывает шаги необходимые для обновления ядра.

Установка и использование нового ядра
Обновление ядра может быть хорошей идеей когда установлен новый исходный код ядра. Этот исходный код иногда устанавливаются в результате обновления системы при запуске команды emerge -a --update --deep --with-bdeps=y --newuse @world, или, конечно, при прямой установке.

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

Сборка нового ядра из свежих исходников является практически тем же процессом, что и при установке системы. Разница заключается в использовании конфигурации старого ядра для создания конфигурации нового. Использование старой конфигурации избавляет пользователя от повторной установки необходимых опций (например, через make menuconfig).

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

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

Создание резервной копии текущей конфигурации
Будет благоразумно создать резервную копию что бы ее не потерять. В конечном счете, многие пользователи уделяют немало времени для выяснения оптимальной конфигурации системы, и потеря этой информации крайне нежелательна.

Очень просто создать резервную копию конфигурации текущего ядра:

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

Установка символьной ссылки на новый исходный код ядра
Символьная ссылка всегда должна указывать на каталог в котором находится исходный код используемого в настоящий момент ядра. Это может быть сделано одним из трех способов:


 * 1) Установка исходных текстов ядра с
 * 2) Установка ссылки с помощью eselect
 * 3) Ручное обновление символической ссылки

Установка исходных текстов ядра с символической ссылкой на USE флаг
Это позволит указать в на новые исходники ядра.

Если необходимо, это можно изменить одним из двух методов.

Настройка символьной ссылки с помощью eselect
Для настройки символьной ссылки с помощью :

Вывод доступных исходников ядра. Звездочка указывает на выбранные исходники.

Для изменения исходников, например, вторых в списке, выполните:

Изменение символьной ссылки вручную
Для изменения символьной ссылки вручную:

Копирование предыдущей конфигурации ядра
Конфигурацию старого ядра необходимо копировать для нового. Ее можно найти в нескольких местах:


 * В файловой системе procfs, если параметр ядра Enable access to .config through /proc/config.gz был включен в ядре работающем на данный момент:


 * В каталоге, если конфигурационный файл был установлен там:


 * В каталоге ядра, которое работает в данный момент:

Конфигурация нового ядра
Чтобы использовать старую конфигурацию для нового ядра, ее нужно конвертировать. Конвертация может быть выполнена через make silentoldconfig или make olddefconfig.

Через make silentoldconfig можно добавлять новые опции, через make olddefconfig - нет. Используйте что-то одно.

make silentoldconfig
Следующая конфигурация похожа на текстовую конфигурацию из make config. Можно выбрать новые опции. Например:

(NEW) в конце строки отмечает эту опцию как новую. В левой части в квадратных скобках указаны возможные ответы: Yes, no, module или ? для справки. Рекомендуемый ответ написан прописными буквами. В справке объясняется опция или драйвер.

К сожалению, make silentoldconfig не дает исчерпывающей информации для каждой опции, так что иногда трудно выбрать правильный ответ. В этом случае, лучший путь заключается в запоминании имени параметра и его дальнейшем просмотре в graphical kernel configuration tools.

make olddefconfig
Если интерактивность нежелательна, используйте make olddefconfig</tt>:

Компиляция
На этом шаге следуйте инструкциям статьи ручная конфигурация.

Переустановка внешних модулей ядра
Все внешние модули ядра, такие как binary kernel modules, необходимо перекомпилировать для каждого нового ядра. Если ядро еще не собрано, оно должно сперва быть подготовлено для компиляции его внешних модулей:

Вы можете собрать пакеты заново, используя набор @module-rebuild

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

Удаление старых ядер
Смотри статью удаление ядра.

Ссылки

 * kernel changelog with some explanations of new features