====== Обновление ядра в Ubuntu ====== Иногда появляется необходимость в установке непредусмотренной создателями версии ядра в Ubuntu. Например, поставить ядро версии 5.10 на Ubuntu 22.04 (по умолчанию там 5.15), т.е. сделать даунгрейд/апгрейд. Это не сложно, но нужно учитывать что не каждое ядро у вас может заработать. Качаем скрипт и делаем его исполняемым: wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh chmod +x ubuntu-mainline-kernel.sh Ищем нужную нам версию ядра: ./ubuntu-mainline-kernel.sh -r | grep 5.10 Устанавливаем: ./ubuntu-mainline-kernel.sh -i v5.10.0 Проверяем что ядро появилось в списке доступных: grep 'menuentry \|submenu ' /boot/grub/grub.cfg | cut -f2 -d "'" Вносим изменения в /etc/default/grub, строку "GRUB_DEFAULT=0" приводим к виду: GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.10.0-051000-generic" Обновляем: update-grub Перезагружаем сервер: reboot now Проверяем: uname -r Особенность в том, что gpg не умеет самостоятельно подхватывать системные настройки proxy, нужно указать руками Для этого нужно строки if [ $check_signature -eq 1 ]; then if ! gpg --list-keys ${ppa_key} >$debug_target 2>&1; then logn "Importing kernel-ppa gpg key " if gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv ${ppa_key} >$debug_target 2>&1; then log "ok" else logn "failed" warn "Unable to check signature" check_signature=0 fi fi if [ $check_signature -eq 1 ]; then if gpg --verify CHECKSUMS.gpg CHECKSUMS >$debug_target 2>&1; then log "Signature of checksum file has been successfully verified" else err "Abort, signature of checksum file is NOT OK" exit 4 fi fi fi заменить примерно так: if [ $check_signature -eq 1 ]; then echo "PPA Key: ${ppa_key}" if ! gpg --keyserver-options http-proxy=http://127.0.0.1:3128 --list-keys ${ppa_key} >$debug_target 2>&1; then logn "Importing kernel-ppa gpg key " if gpg --keyserver-options http-proxy=http://127.0.0.1:3128 --keyserver hkp://keyserver.ubuntu.com:80 --recv ${ppa_key} >$debug_target 2>&1; then log "ok" else logn "failed" warn "Unable to check signature" check_signature=0 fi fi if [ $check_signature -eq 1 ]; then if gpg --keyserver-options http-proxy=http://127.0.0.1:3128 --verify CHECKSUMS.gpg CHECKSUMS >$debug_target 2>&1; then log "Signature of checksum file has been successfully verified" else err "Abort, signature of checksum file is NOT OK" exit 4 fi fi fi Вместо http://127.0.0.1:3128 нужно прописать адрес вашего прокси-сервера. {{tag>ubuntu kernel downgrade upgrade ядро дайнгрейд апгрейд}}