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: 39.603 ]

Por: Eduardo em 10/02/2007


Alterando e compilando o kernel



Estando dentro da pasta do source kernel você poderá configurar o Linux com os comandos:

# make menuconfig

(minha preferida): Interface amigável baseada em ncurses pra modo texto.

# make xconfig

Para quem curte modo gráfico esta opção é mais adequada.

# make config

Interface modo texto pouco amigável.

Abaixo o esquema "make menuconfig":


Feito isso você poderá setar as opções dos drivers de dispositivo como módulo, que podem vir a ser carregados posteriormente, ou seja, o sistema irá compilar, mas cabe a você decidir se irá carregar ou não, ou se serão carregados diretamente no kernel na inicialização.

Um exemplo do uso disso para um usuário leigo:

Existe um módulo chamado apm (Advanced Power Management) que eu uso para que o meu computador ATX desligue sozinho ao acionar o shutdown, o módulo APM que é encarregado de fazer isso, mas eu não preciso que tal módulo fique carregado no kernel direto enquanto eu uso o computador, isso ocuparia memória, então eu deixo ele como módulo e quando eu for dar o shutdown, carrego ele com o comando "modprobe". Para um computador com muitos recursos isso passa despercebido, mas eu necessito de memória e gosto de deixar o PC "enxuto".

Para que vocês conheçam algumas opções de configuração do kernel, abaixo disponibilizei o link de um trecho do "Kernel do Linux HOWTO" em português:
Após terem feito as configurações adequadas ao kernel, vamos compilar com os seguintes comandos:

# make dep (cria as dependências)
# make clean (limpa arquivos objetos e outras coisas que o antigo kernel deixou)

Agora que está o segredo, em vez de utilizar o comando "make bzImage", vamos utilizar outro o "make bzlilo".

O comando "make bzimage" substitui a imagem atual do kernel pela imagem nova gerada, e se houver algum erro de configuração você não pode voltar atrás, quando você utiliza o comando "make bzlilo", ele coloca os arquivos System.map e vmlinuz no diretório raiz ( / ).

Feito isso vamos alterar o lilo pra carregar a nova imagem na próxima parte do artigo.

Página anterior     Próxima página

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

Atualizando kernel de 2.4.31 para 2.6.13 no Slackware 10.2

Placas NVIDIA com kernel 2.6.8

NetFilter Hook em Kernel 2.6

Instalando Slackware 10.2 em HDs SATA

Conheçendo o sistema operacional GNU/Fiwix

  
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

[root@luis 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?
[root@luis 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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts