Kernel/Upgrade/ru

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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


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


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

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

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

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

Unfortunately doesn't show - next to the help - a lot more information for each option, like the context, so that it is sometimes difficult to give the right answer. In this case the best way to go is to remember the option name and revise it afterwards through one of the graphical kernel configuration tools.

make olddefconfig
If all new configuration options should be set to their recommended (i.e. default) values use :

make help
Use to see other conversion methods available.

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

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

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

Решение проблем сборки
When experiencing build problems while rebuilding the current kernel, it might help to sanitize the kernel sources. Make sure to backup the file first, as the operation will remove it. Make sure not to use a or  suffix as backup as  will clean those up as well.

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

Ссылки

 * kernel changelog with some explanations of new features