Обновление ядра Linux до новой версии

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

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

Если вам нужна более подробная информация об изменениях в какой-то определенной версии ядра смотрите ее Changelog на kernel.org, а в этой статье мы рассмотрим обновление ядра Linux до самой новой версии. Я попытаюсь не привязывать инструкцию к определенной версии ядра, новые ядра выходят достаточно часто и она будет актуальна для каждого из них.

Рассмотрим обновление ядра Ubuntu и CentOS. Сначала давайте рассмотрим как обновить ядро в Ubuntu 16.04.

Обновление ядра Ubuntu 16.04 вручную

Давайте сначала посмотрим какое ядро у вас установлено. Для этого откройте терминал и выполните:

uname -r

kernel

Например, у меня сейчас используется версия 4.3, и я могу обновиться к самой новой версии. Разработчики Ubuntu уже позаботились о том чтобы их пользователи не собирали ядро вручную и сделали deb пакеты новой версии ядра. Их можно скачать с официального сайта Canonical.

Я мог привести здесь команды wget для загрузки, если была бы известна версия ядра, но в нашем случае лучше будет использовать браузер. Откройте сайт http://kernel.ubuntu.com/~kernel-ppa/mainline/. Здесь находятся все, собираемые командой Ubuntu ядра. Ядра собираются как для определенных дистрибутивов, с кодовым именем дистрибутива, так и общие. Причем ядра от Ubuntu 16.10, скорее всего, будут работать в 16.04, а вот от 9.04 в Ubuntu 16.04 ставить ядро не стоит.

Пролистайте в низ, именно там находятся более новые версии ядер:

kernel1

Кроме того, в самом верху есть папка daily/current, в которой находятся самые свежие, ночные сборки ядер. Выберите нужную версию ядра и скачайте два файла linux-headers и linux-image для своей архитектуры:

kernel2

После завершения загрузки можно переходить к установке. Для этого выполните в терминале следующие действия:

Перейдите в папку с установочными пакетами, например, ~/Downloads:

cd ~/Downloads

Запустите установку:

dpkg -i *.deb

Если эта команда не сработала, можно пойти другим путем. Установите утилиту gdebi:

sudo apt-get install gdebi

Затем с помощью нее установите ядро:

sudo gdebi linux-headers*.deb linux-image-*.deb

Ядро установлено, осталось обновить загрузчик:

sudo update-grub

Теперь можно перезагружать компьютер и смотреть что получилось. После перезагрузки убедимся, что обновление ядра Linux до самой новой версии прошло успешно:

uname -r

kernel14

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

Автоматическое обновление ядра Linux в Ubuntu

Выше мы рассмотрели как установить нужную версию ядра вручную. Раньше у Ubuntu было PPA, для ежедневных сборок ядер, но теперь оно закрыто. Поэтому обновить ядро можно только скачав deb пакет и установив его. Но все это можно упростить с помощью специального скрипта.

Устанавливаем скрипт:

cd /tmp
$  git clone git://github.com/GM-Script-Writer-62850/Ubuntu-Mainline-Kernel-Updater
$ bash Ubuntu-Mainline-Kernel-Updater/install

kernel3

Проверяем наличие обновлений:

KernelUpdateChecker -r yakkety

Опция -r позволяет указать ветку дистрибутива, для которой нужно искать ядра. Для xenial ядра больше не собираются, но здесь будут отлично работать ядра от следующей версии. Кроме того, опцией -no-rc можно указать утилите не использовать кандидаты в релизы, а опция -v задает точную версию ядра, которую нужно установить. Если вам неважно для какого дистрибутива ядро, лишь бы самое новое, используйте опцию --any-release. Скрипт выдаст такой результат:

kernel5

Перед тем как устанавливать ядро, можно посмотреть подробности открыв файл /tmp/kernel-update:

kernel4

Здесь мы видим, что выполнялся поиск для yakkety, а также на данный момент доступна версия ядра 4.7-rc6. Можем устанавливать:

sudo /tmp/kernel-update

kernel6

Скрипт покажет нам версию текущего ядра, а также версию ядра, которая будет установлена, дату ее сборки и другие подробности. Также будет задан вопрос, нужно ли вести лог изменений. Дальше пойдет установка:

kernel7

Старые ядра, на всякий случай не удалять (n):

kernel10

Готово, обновление ядра до самой новой версии завершено, теперь перезагрузите компьютер (y):

kernel11

Проверяем действительно ли обновление ядра Ubuntu сработало:

uname -r

kernel14

Более того, скрипт был добавлен в автозагрузку и теперь будет проверять автоматически обновления через 60 секунд после входа в систему. Ярлык автозагруки находится в файле:

vi ~/.config/autostart/KernelUpdate.desktop

kernel8

Вы можете изменить его как вам нужно или удалить. Если хотите удалить скрипт полностью из системы, выполните:

rm ~/.config/autostart/KernelUpdate.desktop
$ sudo rm /usr/local/bin/KernelUpdate{Checker,ScriptGenerator}

Не загружается

Если во время установки произошли какие-либо ошибки или ядро обновилось неправильно, и теперь система не загружается с новым ядром, вы можете использовать старое ядро. Также система может не запускаться, если вы используете проприетарный драйвер для видеокарты NVIDIA в таком случае не спешите качать самую новую версию ядра, используйте только стабильные ядра, в них, как правило, уже добавлена поддержка этого модуля.

А чтобы восстановить работу системы выберите пункт Advanced options for Ubuntu в меню Grub:

kernel12

 

И запустите предыдущее работающее ядро:

kernel13

После загрузки останется удалить неверно установленное ядро и еще раз обновить Grub, подставьте нужную версию ядра вместо 4.7:

sudo apt remove linux-header-4.7* linux-image-4.7*

sudo update-grub

Теперь ваша система вернулась к прежнему состоянию. Вы можете попробовать устанавливать более старую версию ядра или попробовать еще раз.

Обновление ядра Linux до 4.4 в CentOS

А теперь давайте рассмотрим как обновить ядро Linux самой новой версии в CentOS. Инструкция проверена на CentOS 7, но скорее всего, будет работать и на RedHat 7, Fedora и других подобных дистрибутивах.

Как правило, новые ядра не включены в официальные репозитории CentOS, поэтому чтобы получить последнюю стабильную версию нам необходимо будет добавить репозиторий ELRepo. Это репозиторий коммерческих пакетов (Enterprise Linux Packages) он также поддерживается в RedHat и Fedora.

Для добавления репозитория выполните следующие действия:

Сначала необходимо импортировать ключ:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

Добавляем репозиторий и необходимые компоненты в RHEL/Scientific Linux/CentOS-7:

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum install yum-plugin-fastestmirror

В Fedora 22 и выше:

 $ rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

dnf install yum-plugin-fastestmirror

В CentOS 6

rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

yum install yum-plugin-fastestmirror

В CentOS 5

rpm -Uvh http://www.elrepo.org/elrepo-release-5-5.el5.elrepo.noarch.rpm

 yum install yum-plugin-fastestmirror

Готово, теперь посмотрим текущую версию ядра:

uname -r

3.10.0-123.9.3.el7.x86_64

Можем устанавливать самую новую версию ядра Linux командой:

yum --enablerepo=elrepo-kernel install kernel-ml

Пакет kernel-ml, это текущий стабильный mainline релиз, на данный момент, это 4.6.

После того как установка нового ядра Linux завершена, можете перезагружать систему. Обновление ядра до 4.6 в CentOS завершено.

Если после перезагрузки у вас возникли какие-либо проблемы с новым ядром, просто удалите его с помощью команды:

yum remove kernel-ml -y

И перезагрузите компьютер, чтобы вернуть систему к прежнему состоянию.

Выводы

В этой инструкции мы рассмотрели как обновить ядро Linux до 4.4 в Ubuntu и CentOS, но мы говорили только об обновлении ядра из бинарников. Также можно собрать ядро из исходных кодов, которые доступны для загрузки на официальном сайте ядра. О сборке ядра Linux я писал в отдельной статье. Вроде все разобрали, если остались вопросы - пишите в комментариях.

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (7 оценок, среднее: 5,00 из 5)
Загрузка...

11 комментариев

  1. Кадырхан Утин Январь 15, 2016 Ответить
  2. Дуб Январь 17, 2016 Ответить
    • admin Январь 17, 2016 Ответить
  3. Дуб Январь 20, 2016 Ответить
    • alfabuster Январь 20, 2016 Ответить
  4. Oleg Сентябрь 14, 2016 Ответить
  5. Максим Шептуха Октябрь 17, 2016 Ответить
  6. Влад Декабрь 23, 2016 Ответить
  7. Алексей Сентябрь 26, 2017 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: