Como instalar e atualizar manualmente um novo kernel no Gentoo
Visão geral
Quando o emerge @world ou a instalação de sys-kernel/gentoo-sources traz novas kernel sources, isso não troca automaticamente o kernel em execução. Instalar as fontes é só a primeira parte. Para realmente usar o kernel novo, você precisa:
- apontar
/usr/src/linuxpara as fontes novas; - reaproveitar a configuração antiga;
- ajustar as novas opções;
- compilar e instalar o kernel;
- atualizar o bootloader;
- reiniciar e testar.
Esse é o fluxo manual. Simples no conceito, mas cheio de detalhes que, se você ignorar, quebram o boot.
Antes de começar
Confira estas coisas antes de mexer:
- você precisa estar como
root; - se
/bootfor uma partição separada, ela precisa estar montada antes de instalar o kernel; - se você usa initramfs, ele precisa ser recriado;
- se você usa módulos externos como NVIDIA, VirtualBox, ZFS ou similares, eles podem precisar ser recompilados para o kernel novo;
- não remova o kernel antigo antes de confirmar que o novo inicializa corretamente.
Também vale salvar a versão atual do kernel para referência:
uname -r1) Instale ou confirme as novas fontes do kernel
Na prática, novas versões costumam aparecer quando você atualiza o sistema:
emerge --ask --update --deep --with-bdeps=y --newuse @worldSe quiser instalar ou atualizar diretamente as fontes do kernel:
emerge --ask sys-kernel/gentoo-sourcesObservação: o pacote
sys-kernel/gentoo-sourcesoferece as fontes do kernel com os patches do Gentoo. Ele também possui a USE flagsymlink, que pode atualizar automaticamente o link/usr/src/linuxpara a versão recém-instalada.
2) Aponte /usr/src/linux para o kernel novo
Liste as fontes disponíveis:
eselect kernel listSaída típica:
Available kernel symlink targets:
[1] linux-6.6.130-gentoo *
[2] linux-6.6.134-gentooO asterisco marca o kernel atualmente selecionado pelo link simbólico.
Agora troque para a nova versão:
eselect kernel set 2Se preferir fazer isso manualmente:
ln -sf /usr/src/linux-6.6.134-gentoo /usr/src/linux
ls -l /usr/src/linux3) Entre no diretório correto
Isso aqui parece banal, mas não é. Mesmo que você já esteja em /usr/src/linux, entre de novo depois de mudar o symlink. Caso contrário, seu shell pode continuar apontando para o diretório antigo.
cd /usr/src/linux
pwd4) Copie a configuração do kernel antigo
A forma mais prática é reaproveitar a configuração do kernel atual.
Opção A — a partir do kernel em execução
Se o kernel atual expõe a configuração em /proc/config.gz:
zcat /proc/config.gz > /usr/src/linux/.configOpção B — a partir do diretório das fontes antigas
cp /usr/src/linux-OLD/.config /usr/src/linux/.configOpção C — a partir de /boot
cp /boot/config-$(uname -r) /usr/src/linux/.configFaça backup antes de continuar
cp /usr/src/linux/.config /usr/src/linux/.config.backupSem backup, você está pedindo para perder horas de ajuste fino por burrice evitável.
5) Adapte a configuração antiga para o kernel novo
Aqui está um ponto em que muito tutorial velho erra.
Método interativo: make oldconfig
Use isso se quiser responder manualmente às novas opções:
make oldconfigQuando aparecer algo como:
Some new option (CONFIG_EXEMPLO) [Y/n/m/?] (NEW)significa:
Y= embutir no kernel;n= desativar;m= compilar como módulo;?= mostrar ajuda.
A opção em maiúsculo é a padrão.
Método automático: make olddefconfig
Use isso se quiser aceitar automaticamente os padrões para todas as opções novas:
make olddefconfigVer só as opções novas
Antes de decidir, você pode listar o que é novo:
make listnewconfigRevisar com interface de menu
Depois da conversão, revise o resultado:
make menuconfigIsso é importante porque às vezes o kernel adiciona ou remove opções, altera dependências internas e muda o contexto de alguns drivers.
Comparar configurações antiga e nova
Se você quiser ver o que mudou com precisão:
cp .config .config.new
cp .config.backup .config.old
/usr/src/linux/scripts/diffconfig .config.old .config.new6) Compile o kernel
Se você usa módulos externos, pode ser útil preparar a árvore antes:
make modules_prepareAgora compile o kernel:
make -j$(nproc)Instale os módulos:
make modules_installInstale o kernel:
make installO que make install faz de verdade?
Se sys-kernel/installkernel estiver instalado, o make install delega a instalação para ele. Isso é melhor do que simplesmente copiar o arquivo manualmente, porque o installkernel pode:
- instalar o kernel com nome versionado;
- integrar a geração de initramfs;
- ajudar na atualização do bootloader;
- trabalhar com UKI e outros fluxos modernos.
7) Recrie o initramfs, se você usa um
Nem todo sistema Gentoo precisa de initramfs, mas muitos precisam. Exemplos comuns:
- root em LUKS;
- LVM;
- RAID;
- ZFS;
- drivers essenciais compilados como módulo.
Se o seu sistema depende disso, recrie o initramfs do kernel novo com a ferramenta que você já usa, como dracut, genkernel ou outra.
Exemplo simples com dracut:
dracutSe você usa um fluxo mais enxuto, também pode haver casos em que dracut --host-only --no-kernel faça mais sentido. Isso depende de como seu sistema foi montado e do que precisa entrar no initramfs.
Se você não sabe se usa initramfs, descubra antes de reiniciar. Adivinhar aqui é a forma mais idiota de transformar uma atualização simples em rescue boot.
8) Atualize o bootloader
GRUB
Se /boot for separado, monte antes:
mount /bootDepois gere a configuração:
grub-mkconfig -o /boot/grub/grub.cfgsystemd-boot
Em alguns cenários, a entrada do novo kernel pode ser gerada automaticamente durante a instalação.
9) Reinicie e confirme
Reinicie a máquina:
rebootDepois confirme:
uname -rSe a versão mostrada for a nova, ótimo.
Mas não seja precipitado: ainda falta validar tudo que importa.
Checklist pós-boot
Verifique pelo menos:
- rede funcionando;
- sistema de arquivos montando corretamente;
- vídeo e aceleração, se aplicável;
- áudio;
- Wi-Fi/Bluetooth, se aplicável;
- módulos externos carregando sem erro;
- logs sem explosão de erro:
dmesg --level=err,warn10) Só depois limpe o kernel antigo
Se tudo estiver funcionando, aí sim você pode limpar o que sobrou.
Remover sobras construídas com eclean-kernel
Instale a ferramenta:
emerge --ask app-admin/eclean-kernelPrimeiro veja o que seria removido:
eclean-kernel -n 2 -pSe a prévia estiver correta, remova de fato:
eclean-kernel -n 2Isso costuma ser mais seguro do que apagar arquivos na mão, porque a ferramenta também tenta limpar imagens de kernel, System.map, initramfs, módulos em /lib/modules e até árvores de fontes relacionadas.
Observações importantes que faltavam no texto original
1. make silentoldconfig está obsoleto para esse fluxo
Muita documentação antiga ainda cita make silentoldconfig, mas o caminho normal hoje é:
make oldconfigpara responder perguntas manualmente;make olddefconfigpara aceitar tudo no padrão.
2. Instalar as fontes não instala o kernel em execução
Ter um novo gentoo-sources no sistema não muda o kernel carregado no boot. Você precisa compilar, instalar e reiniciar.
3. O bootloader precisa ser atualizado
Compilar o kernel e esquecer o GRUB é erro clássico. O sistema vai continuar inicializando o kernel antigo ou simplesmente falhar.
4. Initramfs pode ser obrigatório
Se o seu sistema depende de initramfs e você não gerar um compatível com o kernel novo, o boot pode quebrar.
5. Módulos externos precisam de atenção
Se você usa drivers ou módulos fora da árvore principal do kernel, eles podem precisar ser recompilados para a nova versão.
Resumo rápido
Fluxo mínimo, sem enfeite:
emerge --ask sys-kernel/gentoo-sources
eselect kernel list
eselect kernel set N
cd /usr/src/linux
zcat /proc/config.gz > .config
cp .config .config.backup
make oldconfig # ou: make olddefconfig
make menuconfig # opcional, mas recomendado
make -j$(nproc)
make modules_install
mount /boot # se /boot for separado
make install
grub-mkconfig -o /boot/grub/grub.cfg # se usar GRUB
reboot
uname -rConclusão
Atualizar o kernel manualmente no Gentoo não é difícil. O que existe é espaço demais para erro bobo:
- esquecer de trocar o symlink;
- copiar a
.configerrada; - aceitar opções novas sem pensar;
- não recriar initramfs;
- não atualizar o bootloader;
- apagar o kernel antigo cedo demais.
Se você seguir a ordem certa e validar o boot antes da limpeza, o processo fica previsível e repetível.
Se quiser continuar nessa trilha de Gentoo, manutenção de sistema e infraestrutura, esta nota conversa naturalmente com Laboratório e com o restante do arquivo técnico em Tools.