Guia do Linux/Iniciante+Intermediário/Kernel e módulos/Aplicando Patches no kernel
Aplicando Patches no kernel
[editar | editar código-fonte]Patches são modificações geradas pelo programa diff
em que servem para atualizar um programa ou texto. Este recurso é muito útil para os desenvolvedores, pois podem gerar um arquivo contendo as diferenças entre um programa antigo e um novo (usando o comando diff
) e enviar o arquivo contendo as diferenças para outras pessoas.
As pessoas interessadas em atualizar o programa antigo, podem simplesmente pegar o arquivo contendo as diferenças e atualizar o programa usando o patch
.
Isto é muito usado no desenvolvimento do kernel do GNU/Linux
em que novas versões são lançadas frequentemente e o tamanho kernel completo compactado ocupa cerca de 18MB. Você pode atualizar seu kernel pegando um patch seguinte a versão que possui em ftp://ftp.kernel.org/
.
Para aplicar um patch que atualizará seu kernel 2.6.23 para a versão 2.6.24 você deve proceder da seguinte forma:
- Descompacte o código fonte do kernel 2.6.23 em
/usr/src/linux
ou certifique-se que existe um link simbólico do código fonte do kernel para/usr/src/linux
. - Copie o arquivo
patch-2.6.24.gz
deftp://ftp.kernel.org/
para/usr/src
. - Use o comando gzip -dc patch-2.6.24|patch -p0 -N -E para atualizar o código fonte em
/usr/src/linux
para a versão 2.6.24.
- Descompacte o código fonte do kernel 2.6.23 em
Alternativamente você pode primeiro descompactar o arquivo patch-2.6.24.gz
com o gzip
e usar o comando patch -p0 -N -E <patch-2.6.24 para atualizar o código fonte do kernel. O GNU/Linux
permite que você obtenha o mesmo resultado através de diferentes métodos, a escolha é somente sua.
Caso deseja atualizar o kernel 2.6.20 para 2.6.24, como no exemplo acima, você deverá aplicar os patches em sequência (do patch 2.6.20 ao 2.6.24). Vale a pena observar se o tamanho total dos patches ultrapassa ou chega perto o tamanho do kernel completo, pois dependendo da quantidade de alterações pode ser mais viável baixar diretamente a nova versão.