atualizar_kernel.sh
Publicado por Xerxes (última atualização em 28/04/2026)
[ Hits: 32 ]
Homepage: -
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
#!/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."
Iniciar firewall quando houver rede habilitada (Internet)
Gerenciamento com firewalld no CentOS 7
conssh.sh - Frontend para SSH via proxy HTTP
Claro 3g Sony Ericsson md300 script conexao REVISAO 3
Criptografando sua Home com Gocryptfs para tristeza do meliante
A Involução do Linux e as Lambanças Desnecessárias desde o seu Lançamento
O Journal no Linux para a guarda e consulta de logs do sistema
A evolução do Linux e as mudanças que se fazem necessárias desde o seu lançamento
Discos que não instalam o sistema por erro MBR/GPT no Linux
Hospedagem de Mangás com Kavita e Docker para Acesso Remoto via Tailscale
Aplicar tema e ícones do Ubuntu Cinnamon no Arch Linux sem AUR
Instalação do driver Epson L3150 [RESOLVIDO] (5)
Continuando meus tópicos anteriores (7)









