Compilando o KERNEL sem medo do "kernel panic"

Artigo dedicado a usuários iniciantes que sentem um certo receio de se aventurar a compilar o kernel com medo de dar algum erro, como o famoso "Kernel Panic".

[ Hits: 38.914 ]

Por: Eduardo em 10/02/2007


Alterando o Lilo



Agora vamos alterar o arquivo de configuração do lilo, note que o meu gerenciador de boot é o lilo, caso você use outro gerenciador de boot, como o grub por exemplo, terá que alterar a configuração referente ao grub.

O arquivo de configuração do lilo fica em /etc/lilo.conf, edite este arquivo com qualquer editor de texto (como root) e coloque as seguintes linhas no final dele:

image = /vmlinuz
root = /dev/hdXX
label = NovoLinux
read-only

* Nota: /dev/hdXX, onde XX é em que partição seu Linux se encontra, "fdisk -l" te diz isso =)

Após alterar o arquivo digite o comando "lilo" na linha de comando como root e reinicie o computador, ao reiniciar a opção NovoLinux estará lá, selecione e veja as alterações.

Se tudo der certo e o Linux chegar na tela de login, você está pronto para compilar os módulos.

Entre no diretório do source do kernel e compile os módulos:

# cd /usr/src/linux
# make modules
(compila os módulos)

Agora entre no diretório /lib/modules e note que lá está a pasta com os módulos antigos, no meu caso o nome da pasta é 2.4.33.3, vamos renomear ela para um possível BACKUP, caso você não fique satisfeito com o resultado:

# cd /lib/modules
# mv 2.4.33.3 2.4.33.3.ANTIGO


Feito isso podemos instalar os novos módulos, volte pro diretório /usr/src/linux e digite o comando:

# make modules_install

Pronto, se não houve nenhum erro você compilou o kernel pra testes, eu aconselho que você mantenha a imagem do kernel antigo e a pasta dos módulos antiga também durante um mês aproximadamente para você ter certeza de que está satisfeito, caso não fique você poderá recompilar o kernel quantas vezes for preciso ou retornar ao kernel antigo sem problema nenhum, lembre-se apenas de renomear a pasta 2.4.33.3.ANTIGO para 2.4.33.3.

Considerações finais

Bom, como disse antes escrevi esse artigo pensando em usuários principiantes que estão querendo se aventurar na tarefa de compilar um kernel sem medo. Espero que este artigo possa ajudar alguém que visite o portal Viva o Linux.

Valeww pessoal.

Eduardo de Sant'Ana

Página anterior    

Páginas do artigo
   1. Baixando e descompactando o kernel
   2. Alterando e compilando o kernel
   3. Alterando o Lilo
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Compilando o kernel 2.6.13 no Slackware 10.2

Aplicando o patch do grsecurity no kernel 2.4

Compilando um novo kernel em distribuições RPM-like

O Processo de Boot no Linux

Mitigando Erro de Kernel: Neighbour Table Overflow

  
Comentários
[1] Comentário enviado por removido em 10/02/2007 - 18:51h

OMG,te amo Oo essa parada do bzlilo eu não sabia! ajuda a lot! valeuzao!!!! o bom disso,é que,se alguma coisa der erro,é só meter um livecd e alterar no lilo Oo mto obrigado,oh salvador da pátria!

[2] Comentário enviado por phelipe em 10/02/2007 - 19:15h

nota 10... ótimo artigo :D

[3] Comentário enviado por GilsonDeElt em 10/02/2007 - 19:40h

D+, cara, mas ainda tenho uma dúvida:
Peguei o kernel 2.6.17.13 que veio no CD do meu Slack, compilei e instalei. Só que deu Kernel Panic, provavelmente porque minha partição raiz está formatada como ReiserFS, e o boot ocorria como ext2. O que faço para colocar o kernel 2.6 em funcionamento?
Desde já agradeço a ajuda!

[4] Comentário enviado por tenchi em 11/02/2007 - 10:18h

GilsonElt, vc tem que criar um "initrd", que eh um sistema de arquivos virtual que carrega os módulos necessários para a execução de tarefas já no início do boot, no seu caso, para carregar o módulo do reiserFS.
Tenet o seguinte:
# cd /boot/
# mkinitrd -c -k `uname -r` -m reiserfs
e em seguida, adicione no seu /etc/lilo.conf a seguinte linha, na sessão do kernel que vc usa:
initrd = /boot/initrd.gz


[5] Comentário enviado por removido em 11/02/2007 - 12:06h

Muito bom seu artigo. Da para dar uma base aos iniciantes sobre compilação de Kernel.

[6] Comentário enviado por albertguedes em 11/02/2007 - 14:16h

Também achei bom, mas devia ter feito logo com o kernel 2.6, que já tem drivers para equipamentos atuais, 2.4 pode ainda gerar uns problemas por causa disso. Mas de resto, valeu.

[7] Comentário enviado por luiscarlos em 11/02/2007 - 22:14h

[[email protected] linux]# make
CHK include/linux/version.h
CHK include/asm-i386/asm_offsets.h
make[1]: *** Sem regra para processar o alvo `init/main.o', necessário por `init/built-in.o'. Pare


alguém pode me ajudar?
[[email protected] linux]# uname -a
Linux luis 2.6.11-1.1369_FC4 #1 Thu Jun 2 22:55:56 EDT 2005 i686 athlon i386 GNU/Linux

[8] Comentário enviado por duda_syn em 12/02/2007 - 12:59h

Qt ao linux 2.6 eu andei compilando esses dias e com o make bzlilo ele nao coloca o vmlinuz em / e sim em /boot ele substitui...
mas se fizer as alterações em /boot e no linux.conf , o arquivo se faz válido...
luis0101 acontece isso qd vc da o make bzlilo??
explica melhor.. vlww

[9] Comentário enviado por Elton Luiz em 13/02/2007 - 00:12h

muito bom !

[10] Comentário enviado por removido em 13/02/2007 - 01:17h

Que artigo fera .. vc tbm deve ser bom d cama hein ..
manda av assim vai, garanhão .. deliciaaaa .. uiiiiiiiiii ssssssssss

[11] Comentário enviado por duda_syn em 13/02/2007 - 01:27h

q mlk excroto esse meu primo afff

[12] Comentário enviado por tiago_herrmann em 13/02/2007 - 11:42h

Olá,

não é necessário renomear o diretório de módulos, basta editar o Makefile antes de começar a compilação e modificar a variável EXTRAVERSION, adiciondo uma string de sua preferência, como "ver1", ou até mesmo a data do build do kernel.
Acredito que um ponto importante é que, se não for usado um initrd, é necessário inserir intrinseco ao kernel o módulo relativo ao filesystem e a controladora do hd. (seja scsi, ide, etc). De outra forma você receberá um kernel panic por não conseguir montar a particao root.

até

[13] Comentário enviado por hugoalvarez em 14/02/2007 - 13:40h

Olá,

é sempre bom fazerem as pessoas perderem o medo do kernel_panic, mas faltou o principal de compilar o kernel

1. make mrproper

Nessa compilação do artigo com certeza ficaram um milhão de coisas que a máquina nem faz idéia do que seja, mas carrega mesmo assim pq seu dono mandou.

2. aplicação do patch 2.4.34.1

Apesar de ser o último kernel da série 2.4 ainda lançaram um patch para ele, até que enfim trocaram pq foram descobertos um milhaão de bugs, segue a lista de atualização desse patch:

Summary of changes from v2.4.34 to v2.4.34.1
============================================

Christian Praehauser (1):
[NET] ethernet: Fix first packet goes out with MAC 00:00:00:00:00:00

dann frazier (1):
smbfs: fix problems introduced by last security backport

Oliver Neukum (1):
proper locking on disconnect for mdc800

Willy Tarreau (1):
Change VERSION to 2.4.34.1

Como podem ver deixar smb sem patch é grave para quem vai utilizar o samba.

Flws

[14] Comentário enviado por albertguedes em 04/06/2009 - 18:01h

Infelizmente, alguns dos motivos do "kernel panic" são as opções de configuração má escolhidas e não da compilação.


Contribuir com comentário