Pular para o conteúdo

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.
Pedro Pereira pogo
Hits: 81.917 Categoria: Linux Subcategoria: Kernel
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Entendendo os patches

Você com certeza já conhece o sistema de versões do Linux (as releases com números pares no meio são releases de produção ou estáveis; e as com números ímpares no meio são releases de testes ou instáveis).

Porém, as versões de testes não são os únicos meios de que os desenvolvedores Linux dispõem para disponibilizar código para testes. Existem também as versões prepatch. Prepatches são arquivos texto que contém as diferenças entre o código original (o que está no seu HD) e um código novo (que será aplicado no seu kernel pelo comando patch). Este arquivo indica exatamente em quais arquivos e em quais linhas as diferenças ocorrem e as aplica no código do seu kernel (semelhante ao que o comando diff faria).

As versões prepatch equivalem às versões alpha de qualquer outro software que você conheça. São todas colocadas no diretório pub/linux/kernel/testing dos servidores do kernel.org e seus mirrors. Para você aplicá-los ao kernel, deve-se utilizar o utilitário patch (man patch) no código fonte do kernel anterior à release que está no nome do prepatch (por exemplo, o prepatch patch-2.6.10-rc3.bz2 deve ser aplicado no kernel 2.6.9).

Os diretórios "testing" contém os patches gerados de um prepatch para outro. Os prepatches geralmente não são muito testados e têm muitos erros, podendo até nem conseguirem gerar um kernel utilizável. Por isso, nunca aplique um prepatch em uma máquina de produção até que este tenha sido exaustivamente testado.

Quando o prepatch se candidata a fazer modificações em um kernel oficialmente lançado, passa a se chamar "release candidate" (rc - candidato a lançamento) ao invés de prepatch, assim, a kernels com o release candidate aplicado, dá-se o nome de 2.6.9-rc3, por exemplo. Portanto, como a versão atual do kernel é a 2.6.x, toda modificação feita no 2.4.x receberá o rcX até que seja considerada estável, quando "perde" o rc no nome. Temos ainda os patches lançados por terceiros, sendo que nestes tudo o que foi dito antes se aplica. Os patches mais famosos lançados por terceiros são os -ac e os -dj.

Todos os patches lançados com o sufixo -ac são lançados por Alan Cox, um grande nome no mundo Linux (de quem você com certeza já ouviu falar). Todas as modificações feitas por seus patches são sobre a última versão estável do kernel oficial.

Várias modificações suas acabaram sendo adicionadas na versão oficial do kernel. Todos os patches lançados por ele podem ser encontrados em www.kernel.org/pub/linux/kernel/people/alan.

As versões com sufixo -dj são análogas aos patches -ac. Sua diferença é que as alterações feitas por estes são sempre nas últimas versões beta do kernel oficial. São sempre lançadas por David Jones e podem ser encontradas como patches em www.kernel.org/pub/linux/kernel/people/davej/patches.

Tanto as versões -ac quanto as -dj devem ser consideradas experimentais, contendo erros que podem até mesmo impedir que você consiga utilizar o kernel no qual foram aplicados.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   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

OpenVPN se comportando como PPTP

Instalando o Ocomon 1.40 no FreeBSD 6.0

Auditando senhas com John The Ripper

VPN com FreeS/WAN

Conheçam a linguagem D (saiu do forno)!

Compilação de Kernel baseado na versão 2.6 para o LTSP 4.2

OpenVZ - Instalando no Debian Squeeze AMD64

Como acelerar o GNU-Linux

kernel Linux otimizado - Compilação e teste

#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.

Contribuir com comentário

Entre na sua conta para comentar.