Aplicando patches no kernel

Patches são atualizações e correções distribuídas a parte do kernel. Através deles você pode até atualizar o seu Kernel para uma versão mais nova sem ter que baixar o tarball completo para isso. Neste artigo ensinarei a aplicar e remover patches do Linux.

[ Hits: 79.886 ]

Por: Pedro Pereira em 04/01/2005 | Blog: http://www.pedropereira.net


Como aplicar os patches no seu kernel



Antes de começar, é recomendado que você faça um backup dos arquivos do seu kernel. Um:

# tar czvf kernel-antigo.tar.gz /usr/src/linux

Já resolve o problema ;).

A aplicação de patches no kernel é uma coisa extremamente simples de ser feita, sem segredo nenhum.

A forma de como você vai fazer isso depende de como o patch foi criado, especificamente de qual diretório o patch foi feito. Em geral, os patches são feitos no nível mais alto do diretório do código fonte do kernel. A forma que explicarei aqui leva isto em consideração.

Por exemplo, vamos admitir que você está usando o kernel (e tem o seu código fonte localmente) 2.6.9 e quer aplicar o patch 2.6.9-ac16.bz2. Primeiro, salve o arquivo no diretório /usr/src. Depois, mude para o diretório /usr/src/linux-2.6.9 e faça o seguinte:

# bzip2 -dc /usr/src/2.6.9-ac16.bz2 | patch -p1 -s --dry-run

O comando acima faz apenas um teste para ver se o patch seria aplicado sem erro nenhum (não aplicando o patch ainda), o que pode salvar a sua vida, pois pode ser extremamente difícil remover um patch que não foi aplicado por inteiro. Este teste é feito pela opção --dry-run. O output gerado por este comando é mostrado muito rápido para que você consiga ler e ver se alguma coisa saiu errado. Para resolver isto, diga ao patch para que só mostre as mensagens de erro usando a opção -s. Se você tem certeza de que tudo vai sair certo, pode aplicar o patch sem esta opção. A opção -p1 mostra na tela apenas a localização relativa dos arquivos modificados ao invés de mostrar sua localização global.

Agora que você já sabe que o patch vai ser aplicado corretamente, faça o seguinte:

# bzip2 -dc /usr/src/2.6.9-ac16.bz2 | patch -p1

Este comando vai aplicar o patch "de verdade" no código do kernel. Pronto! Agora o patch já está instalado. Para você usar o kernel com as "melhorias" do patch, é só recompilar. Porém, nem todos os patches são tão fáceis assim de serem aplicados ao kernel. Por exemplo, os prepatches do Linus não são incrementais, então o prepatch 2.6.7-pre2 deve ser aplicado no tarball descompactado do kernel 2.6.6 e não em um kernel com o prepatch 2.6.7-pre1 aplicado. Então, para você poder aplicar o prepatch 2.6.7-pre2, deve remover (como será descrito mais adiante) o patch 2.6.7-pre1 do seu kernel atual. Os patches -ac (lançados por Alan Cox) seguem a mesma lógica.

Página anterior     Próxima página

Páginas do artigo
   1. Entendendo os patches
   2. Como aplicar os patches no seu kernel
   3. Utilizando o script patch-kernel para aplicar os patches
   4. Conclusão e links
Outros artigos deste autor

OpenVPN se comportando como PPTP

VPN com FreeS/WAN

Auditando senhas com John The Ripper

Instalando o Ocomon 1.40 no FreeBSD 6.0

Leitura recomendada

Compilação do Kernel

Empacotamento de Kernel em Sistemas Debian-Based

Compilando o KERNEL sem medo do "kernel panic"

Como acelerar o GNU-Linux

Suporte a SATA NCQ em chipset NForce

  
Comentários
[1] Comentário enviado por wilbil em 04/01/2005 - 09:48h

muito bom artigo
me surpriendeu a quantidade de informacoes uteis nele

att
william

[2] Comentário enviado por m4sk4r4 em 04/01/2005 - 11:45h

Olá Pedro,

Muito bacana o artigo, Parabéns
me ajudou a entender o comando patch que até intão não
sabia como utilizar,

t+

[3] Comentário enviado por mpsnet em 04/01/2005 - 18:11h

ótimo artigo,
mas acho que vc esqueceu de comentar sobre a série -mm
ex: 2.6.10-mm1
pra que serve este patch ?

[4] Comentário enviado por pogo em 06/01/2005 - 09:00h

patches com sufixo -mm são patches lançados por andrew morton para a série oficial do kernel, lembrando que estes podem deixar o kernel bastante instável... vc pode encontrá- los aqui:
/pub/linux/kernel/people/akpm/

[5] Comentário enviado por marcolinux em 11/01/2006 - 15:02h

Tem coisas simples que se ninguém explica ficam complicadas!

Valeu pelo artigo !

[6] Comentário enviado por balani em 27/07/2006 - 22:51h

Muito bom o artigo, parabens, vlw pela info.

[7] Comentário enviado por balani em 07/08/2006 - 19:15h

Cara queria saber se tem como eu aplicar o patch de string do iptables no kernel sem precisar rodar o escript do patch-o-matic, estou tendo problemas em adiciona-lo ao meu kernel.

[8] Comentário enviado por himura_kenshin em 16/08/2006 - 09:46h

a minha sugestao, usem o ketchup que ira poupar uma grande quantiddade de tempo e trabalho... leiam este artigo http://amarok.kde.org/blog/archives/199-Using-Ketchup-to-manage-your-kernel-sources.html

.... excelente artigo o seu pogo... so estou dando uma alternativa aos mais preguicossos ou sem tempo


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts