Обновление ядра: различия между версиями

Материал из ALT Linux Wiki
(Зачем dist-upgrade !? Ядра даже из Сизифа иногда (даже часто) ставить можно.)
(update-kernel: дополнено/отредактировано.)
Строка 1: Строка 1:
APT в дистрибутивах ALT Linux и в Sisyphus автоматом не обновляет ядра вместе с обновлением системы, поскольку обновление такого критичного компонента системы может привести к нежелательным последствиям. Вместо этого в систему могут быть поставлены пакеты нескольких ядер и модулей к разным ядрам одновременно.
APT в дистрибутивах ALT Linux и в Sisyphus автоматом не обновляет ядра вместе с обновлением системы, поскольку обновление такого критичного компонента системы может привести к нежелательным последствиям. Вместо этого в систему могут быть поставлены пакеты нескольких ядер и модулей к разным ядрам одновременно. И LiLo, и Grub можно настроить таким образом, что простая перезагрузка (в том числе по reset) будет возвращать старое ядро.
 
=update-kernel=
Для ручного обновления ядра используется утилита {{prg|update-kernel}}, находящаяся в одноимённом пакете. Пример использования:
Для обновления ядра предлагается использовать утилиту {{prg|update-kernel}}, находящуюся в одноимённом пакете. Установка, если ещё не установлено:


<source lang="bash">
<source lang="bash">
apt-get update
apt-get update
apt-get install update-kernel
apt-get install update-kernel
</source>
Пример использования (не забываем про {{cmd|apt-get update}}, если индексы сегодня ещё не обновлялись):


<source lang="bash">
update-kernel  
update-kernel  
</source>
</source>
Строка 16: Строка 20:
{{note| Ключ -t и тип ядра (std-def, un-def и т.п.) надо указывать только если вы решили обновить ядро другого типа, т.к. по умолчанию обновляется текущий тип ядра.}}
{{note| Ключ -t и тип ядра (std-def, un-def и т.п.) надо указывать только если вы решили обновить ядро другого типа, т.к. по умолчанию обновляется текущий тип ядра.}}


Перед обновлением ядра следует не забыть про обновление индексов, если это ещё не сделано ранее в день обновления:
{{prg|update-kernel}} обновляет и пакеты с модулями ядра, но исходя из списка установленных для текущего ядра пакетов. Следует понимать, что у ядер разных типов модули могут быть собраны по-разному, и, тогда, {{prg|update-kernel}} может не доустановить нужное. Например, если у текущего ядра модуль собран в составе пакета с ядром, а у нового отдельно, то пакет с нужным модулем не будет доустановлен автоматически.
<source lang="bash">
apt-get update
</source>


В некоторых дистрибутивах apt по умолчанию не содержит подключенных репозитариев. Для проверки и/или настройки можно воспользоваться утилитой [[Apt-repo|apt-repo]] или просто проверить и отредактировать конфиги в [[Управление_пакетами|/etc/apt/]].
В некоторых дистрибутивах apt по умолчанию не содержит подключенных репозитариев. Для проверки и/или настройки можно воспользоваться утилитой [[Apt-repo|apt-repo]] или просто проверить и отредактировать конфиги в [[Управление_пакетами|/etc/apt/]].

Версия от 10:51, 8 апреля 2018

APT в дистрибутивах ALT Linux и в Sisyphus автоматом не обновляет ядра вместе с обновлением системы, поскольку обновление такого критичного компонента системы может привести к нежелательным последствиям. Вместо этого в систему могут быть поставлены пакеты нескольких ядер и модулей к разным ядрам одновременно. И LiLo, и Grub можно настроить таким образом, что простая перезагрузка (в том числе по reset) будет возвращать старое ядро.

update-kernel

Для обновления ядра предлагается использовать утилиту update-kernel, находящуюся в одноимённом пакете. Установка, если ещё не установлено:

apt-get update
apt-get install update-kernel

Пример использования (не забываем про apt-get update, если индексы сегодня ещё не обновлялись):

update-kernel

или, если хотите обновить/установить другой тип ядра (например un-def):

update-kernel -t un-def
Примечание: Ключ -t и тип ядра (std-def, un-def и т.п.) надо указывать только если вы решили обновить ядро другого типа, т.к. по умолчанию обновляется текущий тип ядра.


update-kernel обновляет и пакеты с модулями ядра, но исходя из списка установленных для текущего ядра пакетов. Следует понимать, что у ядер разных типов модули могут быть собраны по-разному, и, тогда, update-kernel может не доустановить нужное. Например, если у текущего ядра модуль собран в составе пакета с ядром, а у нового отдельно, то пакет с нужным модулем не будет доустановлен автоматически.

В некоторых дистрибутивах apt по умолчанию не содержит подключенных репозитариев. Для проверки и/или настройки можно воспользоваться утилитой apt-repo или просто проверить и отредактировать конфиги в /etc/apt/.

Обновление модулей ядра

Частая ошибка пользователей -- установка модуля от более нового ядра. Установлено более старое ядро, чем в репозитории, и при этом вы устанавливаете необходимый модуль ядра, не обновив ядро. В результате в систему устанавливается новое ядро с одним-единственным модулем, который вы установили. Для того, чтобы не было такой проблемы, надо вначале обновить ядро, а потом устанавливать необходимые модули ядра.


Более редкая ошибка -- это установка модуля ядра другой сборочной ветки (std-def, un-def и т.п.) называемой в жаргоне флейвором (тип, вариант сборки ядра). Для предотвращения этого (если модуль есть только в другой ветке) надо перейти сначала на другую сборочную ветку с помощью команды update-kernel
 update-kernel -t <новый Flavour>

где <новый flavour> = std-def, un-def и т.п. См. kernel/Flavours

После этого уже можно обновлять модуль ядра, например, мы хотим перейти на ветку un-def и установить модуль fglrx:

update-kernel -t un-def
apt-get install kernel-modules-fglrx-un-def