Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
Compilar kernel em distros baseadas em Debian
Colaboração: Rafael Henrique da Silva Correia
Data de Publicação: 23 de Outubro de 2007
Você está calmo hoje? Não se estressou? Então você poderá compilar seu kernel
hoje, pois requer muita paciência...
Primeiramente baixe a versão mais e estável (The latest stable version of
the Linux kernel) nova do kernel em www.kernel.org.
Adquirida a nova versão iremos prosseguir com nossos passos:
Passo 1.
# apt-get update
Atualizaremos suas fontes de repositório para que os pacotes mais recentes sejam instalados.
Passo 2.
#apt-get install build-essential kernel-package libncurses5-dev tar gzip bzip2
Instalando pacotes necessários para a compilação do kernel:
| build-essential |
instala os pacotes mais usados para compilar programas que devem ser instalados |
| kernel-package |
pacote feito para criarmos pacotes de kernel em deb e instalarmos no Ubuntu de forma nativa (que pertença a ele por padrão) |
| libncurses5-dev |
provém links, headers entre outros elementos da biblioteca libncurses5 que serve para rodar programas compilados por meio de ncurses |
| tar gzip bzip2 |
compactadores básicos do Linux |
Passo 3.
Descompacte o arquivo do kernel do Linux no diretório /usr/src:
#tar -xvjf linux-2.6.22.1.tar.bz2 -C /usr/src
#ln -sf /usr/src/linux-2.6.22.1 /usr/src/linux
O primeiro descompacta o arquivo linux-2.6.22.1 para a pasta /usr/src/linux-2.6.22.1
O segundo cria um link-simbólico do seu novo kernel para a pasta linux,
a criação deste link simbólico serve para que seu sistema e seus programas
instalados consigam identificar que kernel você está usando
Lembrando-se que:
Quando construí este tutorial o kernel mais novo e estável do Linux estava em 2.6.22.1
Passo 4.
#cp /boot/config-$(uname -r) .
#mv config-$(uname -r) .config
Passo 5.
Na quarta linha do arquivo /usr/src/linux/Makefile está a extraversion como .1,
podemos editar o .1 colocando -20070715-c1 (data de trás para frente e -c1
significa compilação 1)para isso:
#vim /usr/src/linux/Makefile
E altere a 5ª linha do arquivo.
Pra que mudar esta linha?
Esta linha chamada extraversion, nós mudamos pra efeito de organização,
pois quando as configurações forem relativas a kernel sempre após o nome
e o versão do kernel será escrito um nome que é o que está escrito na
extraversion. Por exemplo:
Quando o kernel for compilado se listarmos nossos módulos de dispositivos
instalados poderemos ver que módulos pertencem a que compilação usando
o comando:
#ls /lib/modules
Passo 6.
Vamos a compilação, agora ficou fácil vamos compilar o bichinho:
#make menuconfig
Agora escolha as opções que você quiser, não abordarei esta parte, pois
existem n computadores com n hardwares e n configurações de kernel boas.
Passo 7.
Agora vamos criar uma pacote .deb pra que fique mais fácil instalar e
desinstalar seu novo kernel.
Limpando porcarias ....
#make-kpkg clean
Criando e pacotes de acordo com a compilação...
#make-kpkg initrd kenel_image kernel_headers
Agora vá tomar uns 30 litros de café porque este processo é super demorado!
Passo 8.
Agora que a imagem e o header foram gerados simplesmente instale-os com o dpkg ;)!
#dpkg -i linux-headers-2.6.22.1-20070715-c1_i386.deb
#dpkg -i linux-image-2.6.22.1-20070715-c1_i386.deb
Os nomes dos arquivos de vocês podem ser diferentes mas isso não muda nada, bom
gente terminado, agora só dêem um reboot e rezem, se deu erro voltem ao passo
6 e mãos a obra, e não se aborreçam pois quando compilamos kernel as vezes não
conseguimos ver funcionando de primeira mesmo mas isto é completamente normal.
Legenda:
| # |
executar como root |
| $ |
executar como usuário normal (sem poderes administrativos) |
Veja a relação completa dos artigos de Rafael Henrique da Silva Correia
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
Avalie esta dica
- Currently 3.01/5
- 1
- 2
- 3
- 4
- 5
Avaliação:
3.0 /5
(472 votos)
Opinião dos Leitores
Tales Souto
19 Out 2008, 03:59
Parabéns, muito útil, Valeu !!!
Felippe HD de Castro
06 Mai 2008, 20:15
Excelente artigo, recomendei pra moçada da minha sala. Só um detalhe, para ajudar o artigo: Antes do passo 6, tem que dar um cd /usr/src/linux aí o make menuconfig
É isso aí, valeu cara, ótimo artigo, agora vou continuar... Obrigado
Marcos Lazarini
26 Out 2007, 21:22
Os passos 3, 4, 5 e 6 não precisam ser executados como root; basta o usuário fazer parte do grupo src.
Diogo Gomes
23 Out 2007, 19:46
Faltou abordar o que fazer em caso de imprevistos. Se o novo kernel não funcionar o que eu devo fazer? Atirar no escuro não é uma boa idéia, correto?
Rodolfo Barriviera
23 Out 2007, 14:43
Parabéns Rafael!
Muito bom este artigo.
Sugiro acrescentar dois detalhes simples:
Primeiro: Ao final do passo 5, executar o comando
#make oldconfig
Este comando atualiza o config da máquina com as opções de kernel já definidas para serem utilizadas pela nova compilação.
O comando acima deve ser usado apenas por aqueles que não querem fazer a customizaçào do kernel. Mas utilizar as opções do kernel atual da máquina.
Segundo: No segundo comando do passo 7, faltou o hífen antes de initrd:
#make-kpkg -initrd kernel_image kernel_headers
Abraço.
Rodolfo Barriviera.
Carlos Ribeiro
23 Out 2007, 12:08
Bom trabalho Rafael, parabéns.
CR
sysdebug
23 Out 2007, 08:56
Suspeito que este artigo tenha tido alguma influência de um artigo que enviei para a dicas-l e foi publicado no dia 10 de julho de 2004, pois os dois são um pouco parecidos. Neste caso, talvez aquele velho artigo que enviei, que encontra-se até hoje na forma original e que fez bastante sucesso ainda possa servir como complemento a este para lhe ajudar a compilar um kernel 2.6.
http://www.dicas-l.com.br/dicas-l/20040710.php
Um grande abraço!