atualizar_kernel.sh

Publicado por Xerxes (última atualização em 28/04/2026)

[ Hits: 33 ]

Homepage: -

Download atualizar_kernel.sh




Simples script que busca a última versão do kernel em kernel.org e instala. Feito para Arch Linux com GRUB, mas teve base na dica feita para Linux Mint: https://www.vivaolinux.com.br/dica/Como-compilar-kernel-no-Linux-Mint

  



Esconder código-fonte

#!/bin/bash
set -e

C_VERDE='\033[1;32m'
C_AMARELO='\033[1;33m'
C_VERMELHO='\033[1;31m'
C_RESET='\033[0m'

SILENT=false
[[ "$1" == "-s" ]] && SILENT=true

log() { [[ "$SILENT" == false ]] && echo -e "${C_VERDE}[*] $1${C_RESET}"; }
erro() { echo -e "${C_VERMELHO}[!] $1${C_RESET}" >&2; exit 1; }

log "Verificando versões..."
LATEST=$(curl -s https://www.kernel.org/ | grep -A1 "latest_link" | grep -oP '[0-9]+\.[0-9]+\.[0-9]+' | head -n1)
CURRENT=$(uname -r | grep -oP '^[0-9]+\.[0-9]+(\.[0-9]+)?' | head -n1)

[[ -z "$LATEST" ]] && erro "Falha ao obter a versão online."

if [[ "$LATEST" == "$CURRENT" ]] || [[ "$(printf '%s\n' "$LATEST" "$CURRENT" | sort -V | head -n1)" == "$LATEST" ]]; then
    [[ "$SILENT" == false ]] && echo -e "${C_AMARELO}Nenhuma atualização pendente. Versão atual: $CURRENT${C_RESET}"
    exit 0
fi

read -p "Versão $LATEST disponível (atual: $CURRENT). Deseja baixar e instalar? (S/N): " resp
[[ ! "$resp" =~ ^[Ss]$ ]] && exit 0

log "Instalando dependências..."
sudo pacman -S --needed --noconfirm base-devel ncurses bison flex openssl libelf pahole bc wget gawk curl

MAJOR_VERSION=$(echo "$LATEST" | cut -d. -f1)
URL="https://cdn.kernel.org/pub/linux/kernel/v${MAJOR_VERSION}.x/linux-${LATEST}.tar.xz"
TAR="linux-${LATEST}.tar.xz"
DIR="linux-${LATEST}"
SUFFIX="-xerxes"
KNAME="linux-${LATEST}${SUFFIX}"

mkdir -p ~/Downloads
cd ~/Downloads

if [[ ! -d "$DIR" ]]; then
    log "Baixando o kernel $LATEST..."
    wget -c "$URL" -O "$TAR" || erro "Falha no download."
    
    log "Extraindo arquivo..."
    tar -xf "$TAR" || erro "Falha na extração."
else
    log "Diretório $DIR já existe. Pulando download e extração."
fi

cd "$DIR"

log "Copiando configuração base..."
if [[ -f /proc/config.gz ]]; then
    zcat /proc/config.gz > .config
elif [[ -f /boot/config-$CURRENT ]]; then
    cp /boot/config-$CURRENT .config
else
    erro "Arquivo de configuração não encontrado (/proc/config.gz ou /boot/config-$CURRENT)."
fi

log "Ajustando chaves de segurança e sufixo personalizado..."
scripts/config --set-str SYSTEM_TRUSTED_KEYS ""
scripts/config --set-str SYSTEM_REVOCATION_KEYS ""
scripts/config --set-str LOCALVERSION "$SUFFIX"
make olddefconfig || erro "Falha ao gerar o .config."

log "Iniciando compilação (processadores: $(nproc))..."
make -j$(nproc) || erro "Falha na compilação do kernel."

log "Instalando módulos..."
sudo make modules_install || erro "Falha na instalação dos módulos."

log "Instalando a imagem do kernel..."
sudo cp -v arch/x86/boot/bzImage "/boot/vmlinuz-${KNAME}"

log "Configurando e gerando Initramfs..."
cat <<INNER_EOF | sudo tee "/etc/mkinitcpio.d/${KNAME}.preset" > /dev/null
ALL_config="/etc/mkinitcpio.conf"
ALL_kver="/boot/vmlinuz-${KNAME}"
PRESETS=('default')
default_image="/boot/initramfs-${KNAME}.img"
INNER_EOF

sudo mkinitcpio -p "${KNAME}" || erro "Falha ao gerar o initramfs."

log "Atualizando o GRUB..."
sudo grub-mkconfig -o /boot/grub/grub.cfg || erro "Falha ao atualizar o GRUB."

log "Processo finalizado com sucesso! Reinicie a máquina para usar o novo kernel."

Scripts recomendados

Script para baixar e-mails de sites automaticamente

Acompanhamento de log squid com hora real

Execução temporizada de programas

POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - APAGANDO MSG ANTIGAS EM TODAS AS PASTAS DE UM USUÁRIO

Como Converter várias fotos JPG em arquivos PDFs, compactando e girando em 90º


  

Comentários
[1] Comentário enviado por xerxeslins em 28/04/2026 - 11:08h


Uma dica: se colocar o script no .bashrc, ele verifica se tem kernel novo toda vez que abrir o terminal.

Usando "-s" ele esconde a mensagem, caso não tenha nada novo.

Exemplo no .bashrc:

sh ~/scripts/atualizar_kernel.sh -s


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts