Como compilar um Kernel – Ubuntu – parte 1

This entry was posted on Sunday, 20 January, 2008

Cada distribuição tem algumas ferramentas específicas para construir um kernel personalizado a partir dos fontes. Este artigo é sobre a compilação de um kernel em sistemas Ubuntu. Ele descreve como construir um kernel personalizado, utiizando os últimos fontes não modificados do kernel a partir de www.kernel.org (vanilla kernel) , de forma que você não depende dos kernel fornecidos pela sua distribuição. Ele também mostra como aplicar um patch nos fontes do kernel se você precisar de características que não estiverem lá.

Este tutorial foi testado em um sistema Ubuntu 6.10 Server (“Edgy Eft”) e no Ubuntu 6.06 Desktop (“Dapper Drake”).

Esta não é a única forma de instalar o sistema. Há várias outras maneiras de alcançar este objetivo, mas esta é a minha maneira. Não dou nenhuma garantia de que isto irá funcionar para você!

1 Nota Preliminar

Prefiro fazer todos estes passo como usuário root. Então, se você ainda não tiver criado um login de root, você deve fazer isto agora:

sudo passwd root

A seguir, logue-se como root:

su

Se você desejar trabalhar como um usuário normal em vez de utilizar a conta root, lembre-se de colocar o sudo na frente de todos os comando exibidos neste tutorial. Então, quando eu executo

apt-get update

você deveria executar

sudo apt-get update


1.1 /bin/sh no Ubuntu 6.10 (“Edgy Eft”)

No Ubuntu 6.10, /bin/sh é um symlink para /bin/dash por padrão. /bin/dash parece ter problemas quando você compila software a partir dos fontes. Ao menos, tive esta impressão. Por isto, fiz /bin/sh ser um symlink para /bin/bash.

Se você estiver no Ubuntu 6.10, você deve fazer isto agora:

rm -f /bin/sh
ln -s /bin/bash /bin/sh


2 Instalação de pacotes requeridos para a compilação do Kernel

Primeiro, atualizamos nosso banco de dados de pacotes:

apt-get update

A seguir, instalaremos todos os pacotes necessários, assim:

apt-get install kernel-package libncurses5-dev fakeroot wget bzip2

3 Download dos fontes do Kernel

A seguir, faremos o download do kernel para /usr/src. Vá até www.kernel.org e selecione o kernel que você quer instalar, ex: linux-2.6.18.1.tar.bz2 (você pode encontrar todos os kernels 2.6 aqui: http://www.kernel.org/pub/linux/kernel/v2.6/). Então, você pode baixá-lo para /usr/src assim:

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2

A seguir, desempacote os fontes do kernel e crie um symlink linux para o diretório dos fontes do kernel:

tar xjf linux-2.6.18.1.tar.bz2
ln -s linux-2.6.18.1 linux
cd /usr/src/linux

4 Aplicação de patches para os fontes do Kernel (Opcional)

Algumas vezes, você precisa de drivers para hardware que não é suportado pelo novo kernel por padrão, ou você precisa de supote para técnicas de virtualização ou alguma outra tecnologia de ponta que ainda não foi incorporada ao kernel. Em todos estes caso, você tem que aplicar um patch nos fontes do the kernel (se houve tal patch disponível…).

Agora, vamos assumir que você fez o download do patch necessário (vou chamá-lo de patch.bz2 , neste exemplo) para /usr/src. É assim que você deve aplicá-lo aos fontes do kernel (você ainda deve estar no diretório /usr/src/linux ):

bzip2 -dc /usr/src/patch.bz2 | patch -p1 –dry-run
bzip2 -dc /usr/src/patch.bz2 | patch -p1

O primeiro comando é só um teste, não faz nada com os seus fontes. Se ele não exibir erros, você pode executar o segundo comando que irá, realmente, aplicar o patch. Não faça isto se o primeiro comando exibir erros!

Você também pode aplicar prepatches para kernel aos seus fontes do kernel. Por exemplo, se você precisar de uma feature que está disponível somente no kernel 2.6.19-rc4, mas os fontes completos ainda não tenham sido lançados para este kernel. Em vez disso, um patch-2.6.19-rc4.bz2 está disponível. Você pode aplicar o patch aos fontes do kernel 2.6.18, mas não para o kernel 2.6.18.1 ou 2.6.18.2, etc. Isto é explicado em http://kernel.org/patchtypes/pre.html:

Prepatches são equivalentes a versões alpha para Linux. Eles são armazenados nos diretórios testing nos repositórios. Eles devem ser aplicados, utilizando o utilitário patch, no código fonte da versão prévia completa com um número de versão de 3 partes (por exemplo, o prepatch 2.6.12-rc4 deve ser aplicado aos fontes do kernel 2.6.11, e não aos do kernel 2.6.11.10, por exemplo)

Então, se você quiser compilar um kernel 2.6.19-rc4, você deve fazer o download dos fontes do kernel 2.6.18 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2) do passo 3 em vez do kernel 2.6.18.1 !

É assim que você aplica o patch 2.6.19-rc4 ao kernel 2.6.18:

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.19-rc4.bz2
cd /usr/src/linux
bzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1 –dry-run
bzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1

Also read these articles:

Tudo comecou quando (parte 2)

Wallpapers - Linux - Slackware Rocks

Jogos Linux: Um classico Doom Legacy

Configurando um Balanceamento de Carga de Alta Disponibilidade (com Failover e suporte a sessão), com HAProxy e Keepalived, em um Linux Debian Etch

Linux game - DROD: The City Beneath

Related Offers
Apple Iphone 3gs 16gb Desbloqueado!
Apple Iphone 3gs 16gb Desbloqueado!
Mais info»
R$ 1,799.00
até 18x de 134.93
Iphone 3gs 32gb Desbloqueado 3.2mpx Gps Sygic Grtis!
Iphone 3gs 32gb Desbloqueado 3.2mpx Gps Sygic Grtis!
Mais info»
R$ 1,999.00
até 18x de 149.93
Promoo Celular Mp12 Hiphone Tv 2 Chips Cam 12.0   2gb Java
Promoo Celular Mp12 Hiphone Tv 2 Chips Cam 12.0 2gb Java
Mais info»
R$ 249.99
até 18x de 18.75
Vitrine TecnoBlog  

5 Responses to “Como compilar um Kernel – Ubuntu – parte 1”

  1. Boa, vou colocar numa comunidade Ubuntu do Orkut.

Trackbacks/Pingbacks

  1. Usuário blackgun no diHITT
  2. ouvidizer.com
  3. Anonymous
  4. Anonymous