Para aplicar um patch deste formulário:
diff --git a/include/linux/pm_qos.h b/include/linux/pm_qos.h
index 0f65d36..ff59753 100644
--- a/include/linux/pm_qos.h
com patch -p1
, várias condições precisam ser atendidas.
-
Você precisa estar no diretório de nível superior de uma árvore de origem do kernel. A opção
-p1
removerá um componente do caminho dos nomes dos arquivos, de modo quea/include/linux/pm_qos.h
será tratado comoinclude/linux/pm_qos.h
. Este é um caminho relativo que deve ser resolvido a partir do seu diretório de trabalho atual. -
O arquivo
include/linux/pm_qos.h
deve existir na versão do kernel que você está tentando corrigir.
Se 1 e 2 não forem atendidos, patch
não encontrará o arquivo a ser aplicado e solicitará interativamente que você forneça o nome do caminho.
Então, é claro:
- O arquivo
include/linux/pm_qos.h
precisa ser "suficientemente semelhante" àquele do qual o patch foi produzido, caso contrário, o patch não será aplicado.
As mesmas observações aplicam-se separadamente a todos os outros arquivos mencionados no patch.
Se você está tentando corrigir uma versão diferente do kernel daquela em que o patch foi produzido, temo que você esteja "na sua cabeça"; isso requer algum nível de entendimento do desenvolvimento do kernel (dependendo de quão complexos são os ajustes requeridos no patch para que ele seja aplicado).
Às vezes, descobrimos que os arquivos do kernel acabaram de ser renomeados; um patch será aplicado de forma bastante clara se os arquivos mencionados nele forem renomeados para os novos nomes. No extremo oposto, nos piores casos, você tem que realmente entender o que o patch está fazendo (possivelmente observando o kernel original onde ele foi feito), e então implementar a mesma lógica do zero no kernel de destino. Em casos de "dificuldade intermediária", você só precisa lidar com problemas como nomes de variáveis, nomes de funções e nomes de membros de struct renomeados; o patch será aplicado se apenas seguir novos nomes.