Обновление ядра: различия между версиями
Нет описания правки |
Нет описания правки |
||
(не показано 39 промежуточных версий 7 участников) | |||
Строка 1: | Строка 1: | ||
APT в дистрибутивах ALT Linux и в Sisyphus автоматом не обновляет ядра вместе с обновлением системы, поскольку обновление такого критичного компонента системы может привести к нежелательным последствиям. Вместо этого в систему могут быть поставлены пакеты нескольких ядер и модулей к разным ядрам одновременно. | [[en:Kernel update]] | ||
APT в дистрибутивах ALT Linux и в Sisyphus автоматом не обновляет ядра вместе с обновлением системы (см. настройки [[hold]] в apt.conf), поскольку обновление такого критичного компонента системы может привести к нежелательным последствиям. Вместо этого в систему могут быть поставлены пакеты нескольких ядер и модулей к разным ядрам одновременно. И LiLo, и [[Grub#Как_однократно_выполнить_загрузку_произвольного_пункта_меню?|Grub]] можно настроить таким образом, что простая перезагрузка (в том числе по reset) будет возвращать старое ядро. | |||
Для | {|class="wikitable" style="float:center; margin-left:2em" | ||
!colspan="2"|ЗА и ПРОТИВ обновления ядра | |||
|- | |||
!ЗА || ПРОТИВ | |||
|- | |||
| | |||
*Поддержка нового оборудования | |||
*Реализация новых функций | |||
*Защита от уязвимостей | |||
*Оптимизация производительности | |||
*Устранение ошибок | |||
| | |||
*возможно "отваливание" оборудования | |||
*возможны регрессии в поддержке оборудования | |||
*возможно [https://vk.com/wall-210979969_1146 зависание при перезагрузке и выключении] | |||
*невозможность загрузить систему | |||
*[https://www.opennet.ru/opennews/art.shtml?num=57883 регрессии, выводящие из строя оборудование] | |||
|} | |||
=update-kernel= | |||
{{Attention| Запуск утилиты {{prg|update-kernel}} должен производиться с [[Su|правами root]]}} | |||
Для обновления ядра предлагается использовать утилиту {{prg|update-kernel}}, находящуюся в одноимённом пакете. Установка, если ещё не установлено: | |||
Получаем права root | |||
<source lang="bash"> | |||
su - | |||
</source> | |||
<source lang="bash"> | <source lang="bash"> | ||
apt-get update | apt-get update | ||
apt-get install update-kernel | apt-get install update-kernel | ||
</source> | </source> | ||
=Обновление ядра= | |||
Обновляем ядро: | |||
<source lang="bash"> | <source lang="bash"> | ||
apt-get update | |||
update-kernel | |||
</source> | |||
или, если хотите обновить/установить [[Kernel/Flavours|другой тип ядра]] (например un-def): | |||
<source lang="bash"> | |||
update-kernel -t un-def | |||
</source> | </source> | ||
В некоторых дистрибутивах apt | {{note| Ключ -t и тип ядра (std-def, un-def и т.п.) надо указывать только если вы решили обновить ядро другого типа, т.к. по умолчанию обновляется текущий тип ядра.}} | ||
{{prg|update-kernel}} обновляет и пакеты с модулями ядра, но исходя из списка установленных для текущего ядра пакетов. Следует понимать, что у ядер разных типов модули могут быть собраны по-разному, и, тогда, {{prg|update-kernel}} может не доустановить нужное. Например, если у текущего ядра модуль собран в составе пакета с ядром, а у нового отдельно, то пакет с нужным модулем не будет доустановлен автоматически. | |||
В некоторых дистрибутивах apt по умолчанию не содержит подключенных репозитариев. Для проверки и/или настройки можно воспользоваться утилитой [[Apt-repo|apt-repo]] или просто проверить и отредактировать конфиги в [[Управление_пакетами|/etc/apt/]]. | |||
=Обновление модулей ядра= | =Обновление модулей ядра= | ||
{{Важно|Более редкая ошибка это установка модуля ядра другой сборочной ветки (std-def, un-def и т.п.) называемой в жаргоне флейвором (тип, вариант сборки ядра). Для предотвращения этого (если модуль есть только в другой ветке) надо перейти сначала на другую сборочную ветку с помощью команды {{prg|update-kernel}}}} | {{prg|update-kernel}} обновляет и модули ядра, если в репозитории обновилось что-то из модулей без обновления ядра. Запуск как при обновлении ядра. | ||
=Доустановка модулей ядра= | |||
Иногда возникает необходимость доустановить модули. Сложностей нет, но есть ряд нюансов. | |||
{{Важно|Частая ошибка пользователей -- установка модуля от более нового ядра. Проблема возникает, когда установлено более старое ядро, чем в репозитории, а пользователь устанавливает необходимый модуль ядра, не обновив ядро. В результате в систему устанавливается новое ядро с одним-единственным модулем, установка которого запрошена. Для того, чтобы не было такой проблемы, надо вначале обновить ядро, а потом доустанавливать необходимые модули ядра}}. | |||
Если вы "попались" на эту ошибку,загрузитесь со старым ядром и дайте команду {{cmd|update-kernel}} с правами root. | |||
Если необходимо установить модули именно для старого ядра, можно воспользоваться [[archive|архивом репозитория]] аналогично ситуации с установкой старого ядра.}} | |||
{{Важно|Более редкая ошибка -- это установка модуля ядра другой сборочной ветки (std-def, un-def и т.п.) называемой в жаргоне флейвором (тип, вариант сборки ядра). Для предотвращения этого (если модуль есть только в другой ветке) надо перейти сначала на другую сборочную ветку с помощью команды {{prg|update-kernel}}.}} | |||
<source lang="bash"> | <source lang="bash"> | ||
update-kernel -t <новый Flavour> | update-kernel -t <новый Flavour> | ||
Строка 28: | Строка 72: | ||
<новый flavour> = std-def, un-def и т.п. См. [[kernel/Flavours]] | <новый flavour> = std-def, un-def и т.п. См. [[kernel/Flavours]] | ||
После этого уже можно обновлять модуль ядра | После этого уже можно обновлять модуль ядра. Например, мы хотим перейти на ветку un-def и установить модуль rtl8821ce: | ||
<source lang="bash"> | <source lang="bash"> | ||
update-kernel -t un-def | update-kernel -t un-def | ||
apt-get install kernel-modules- | apt-get install kernel-modules-rtl8821ce-un-def | ||
</source> | |||
Альтернативный способ установки модуля ядра - установка его с помощью {{cmd|epm}} , {{cmd|epm}} ставит модуль предварительно устанавливая новую версию ядра. | |||
<source lang="bash"> | |||
epm install kernel-modules-rtl8821ce-un-def | |||
</source> | |||
=Установка старого ядра= | |||
Иногда требуется установить старое ядро. [[FAQ#RET_OLD_KERNEL | Описание процесса]]. | |||
=Удаление старых версий ядра= | |||
После успешной загрузки на обновленном ядре можно удалить старое: | |||
<source lang="bash"> | |||
remove-old-kernels | |||
</source> | </source> | ||
=Ссылки= | |||
* [[Alterator-update-kernel|Обновление ядра с помощью модуля Alterator]] | |||
* [https://bugzilla.altlinux.org/show_bug.cgi?id=35390 #35390]: Обновление ядра на Таволге требует ручной доработки | |||
* [[Сага о драйверах]] | |||
{{Category navigation|title=Kernel|category=Kernel}} | {{Category navigation|title=Kernel|category=Kernel}} | ||
[[ | [[Категория:Upgrade]] | ||
{{Category navigation|title=Обновление|category=Upgrade|sortkey={{SUBPAGENAME}}}} | |||
{{Category navigation|title=О ядре для пользователя|category=О ядре для пользователя|sortkey={{SUBPAGENAME}}}} | |||
[[Категория:Использование Epm]] |
Текущая версия от 00:03, 14 сентября 2024
APT в дистрибутивах ALT Linux и в Sisyphus автоматом не обновляет ядра вместе с обновлением системы (см. настройки hold в apt.conf), поскольку обновление такого критичного компонента системы может привести к нежелательным последствиям. Вместо этого в систему могут быть поставлены пакеты нескольких ядер и модулей к разным ядрам одновременно. И LiLo, и Grub можно настроить таким образом, что простая перезагрузка (в том числе по reset) будет возвращать старое ядро.
ЗА и ПРОТИВ обновления ядра | |
---|---|
ЗА | ПРОТИВ |
|
|
update-kernel
Для обновления ядра предлагается использовать утилиту update-kernel, находящуюся в одноимённом пакете. Установка, если ещё не установлено:
Получаем права root
su -
apt-get update
apt-get install update-kernel
Обновление ядра
Обновляем ядро:
apt-get update
update-kernel
или, если хотите обновить/установить другой тип ядра (например un-def):
update-kernel -t un-def
update-kernel обновляет и пакеты с модулями ядра, но исходя из списка установленных для текущего ядра пакетов. Следует понимать, что у ядер разных типов модули могут быть собраны по-разному, и, тогда, update-kernel может не доустановить нужное. Например, если у текущего ядра модуль собран в составе пакета с ядром, а у нового отдельно, то пакет с нужным модулем не будет доустановлен автоматически.
В некоторых дистрибутивах apt по умолчанию не содержит подключенных репозитариев. Для проверки и/или настройки можно воспользоваться утилитой apt-repo или просто проверить и отредактировать конфиги в /etc/apt/.
Обновление модулей ядра
update-kernel обновляет и модули ядра, если в репозитории обновилось что-то из модулей без обновления ядра. Запуск как при обновлении ядра.
Доустановка модулей ядра
Иногда возникает необходимость доустановить модули. Сложностей нет, но есть ряд нюансов.
.
Если вы "попались" на эту ошибку,загрузитесь со старым ядром и дайте команду update-kernel с правами root. Если необходимо установить модули именно для старого ядра, можно воспользоваться архивом репозитория аналогично ситуации с установкой старого ядра.}}
update-kernel -t <новый Flavour>
где <новый flavour> = std-def, un-def и т.п. См. kernel/Flavours
После этого уже можно обновлять модуль ядра. Например, мы хотим перейти на ветку un-def и установить модуль rtl8821ce:
update-kernel -t un-def
apt-get install kernel-modules-rtl8821ce-un-def
Альтернативный способ установки модуля ядра - установка его с помощью epm , epm ставит модуль предварительно устанавливая новую версию ядра.
epm install kernel-modules-rtl8821ce-un-def
Установка старого ядра
Иногда требуется установить старое ядро. Описание процесса.
Удаление старых версий ядра
После успешной загрузки на обновленном ядре можно удалить старое:
remove-old-kernels
Ссылки
- Обновление ядра с помощью модуля Alterator
- #35390: Обновление ядра на Таволге требует ручной доработки
- Сага о драйверах