8.6. Se algo der errado

Existem quatro categorias de problemas que podem ocorrer ao criar um kernel personalizado:

falhas na config

Se o config falhar, ele imprimirá o número da linha que está incorreta. Como exemplo, para a seguinte mensagem, certifique-se de que a linha 17 seja digitada corretamente, comparando-a com GENERIC ou NOTES:

config: line 17: syntax error
falha no make

Se o make falhar, geralmente é devido a um erro no arquivo de configuração do kernel que não é grave o suficiente para o config capturar. Revise a configuração, e se o problema não for aparente, envie um email para a lista de discussão de questões gerais do FreeBSD contendo o arquivo de configuração do kernel.

O kernel não inicializa

Se o novo kernel não inicializar ou não reconhecer os dispositivos, não entre em pânico! Felizmente, o FreeBSD possui um excelente mecanismo para recuperação de kernels incompatíveis. Simplesmente escolha o kernel para inicializar a partir do gerenciador de inicialização do FreeBSD. Isso pode ser acessado quando o menu de inicialização do sistema aparecer, selecionando a opção Escape to a loader prompt. No prompt, digite boot kernel.old ou o nome de qualquer outro kernel que seja conhecido por inicializar corretamente.

Após inicializar com um kernel correto, verifique o arquivo de configuração e tente construí-lo novamente. Um recurso útil é o /var/log/messages que registra as mensagens do kernel de cada inicialização bem-sucedida. Além disso, o dmesg(8) imprimirá as mensagens do kernel a partir da inicialização atual.

Nota:

Ao solucionar problemas de um kernel, certifique-se de manter uma cópia do GENERIC, ou algum outro kernel que funcione, como um nome diferente que não será apagado na próxima compilação. Isto é importante porque toda vez que um novo kernel é instalado, o kernel.old é sobrescrito com o último kernel instalado, que pode ou não ser inicializável. Assim que possível, mova o kernel funcional renomeando o diretório que contém o kernel correto:

# mv /boot/kernel /boot/kernel.bad
# mv /boot/kernel.good /boot/kernel
O kernel funciona, mas o ps(1) não

Se a versão do kernel for diferente daquela com a qual os utilitários do sistema foram construídos, por exemplo, um kernel compilado a partir do código-fonte do -CURRENT é instalado em um sistema -RELEASE, muitos comandos de status do sistema como ps(1) e vmstat(8) não funcionarão. Para corrigir isso, recompile e instale o world usando a mesma versão da árvore de código-fonte que o kernel. Nunca é uma boa ideia usar uma versão diferente do kernel do que o resto do sistema operacional.

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.