Maneira correta de aplicar patches ao seu kernel?

Maneira correta de aplicar patches ao seu kernel?

Estou seguindo as instruções localizadasaquipara configurar meu servidor. Afirma que preciso aplicar um patch que baixei na máquina. Minha pergunta é: o artigo diz para usar o seguinte comando:

/usr/src/linux # patch -p1 < file.diff //note I replace file.diff w/ routes-2.6.36.16.diff

Isso retorna:

-bash: /usr/src/linux: No such file or directory

Eu continuo assumindo que isso /linux #deve ser substituído pela versão/diretório real do kernel do Linux. Eu tentei isso usando o seguinte comando:

/usr/src/linux-headers-2.6.35.22 patch -p1 < file.diff

Isso retorna o mesmo. Quando visualizo o conteúdo de /usr/src, tenho apenas dois diretórios linux-headers-2.6.35.22e linux-headers-2.6.35.22-generic-paepreciso de orientação sobre a maneira correta de aplicar um patch ao kernel.

Editar

Se eu executar /usr/src/linux-headers-2.6.35.22/ patch -p1 file.diffeu recebo -bash: /usr/src/linux-headers-2.6.35.22: is a directory. Preciso saber como faço para encontrar o arquivo específico que precisa ser corrigido aqui...

Responder1

Você precisa baixar a fonte. Você pode fazer isso via apt-src, mas eu (pessoalmente) apenas pegaria o mais recente emkernel.org, extraia-o, corrija-o (apenas usando caminhos locais como o desktop, ele não precisa estar oculto em /usr/src!) e siga o"Do modo antigo"instruções para compilá-lo.

Observe que alguns patches são apenas para certas versões do kernel (isso inclui lançamentos pontuais), portanto, certifique-se de que seu patch funcione para a versão fonte antes de perder 20 a 30 minutos compilando-o.

Mas o seu problema específico é que você precisa estar no diretório ao qual deseja aplicar o patch. No seu caso:

cd /usr/src/linux-headers-2.6.35.22/
patch -p1 < /path/to/file.diff

Obviamente, mude o caminho para o patch (ou coloque-o no mesmo diretório). Se os arquivos de origem pertencerem ao root, prefixe sudoo comando patch ou execute sudo supara se tornar root enquanto faz isso.

Responder2

Para evitar frustração, você geralmente deve fazer essas coisas do jeito Ubuntu. Instruções completas usando pacotes oficiais podem ser encontradas aqui:

https://help.ubuntu.com/community/Kernel/Compile

Ele fornece listas de dependências e comandos passo a passo para colocar um kernel personalizado em funcionamento.

Seguindo esse procedimento, você terá um pacote desinstalável contendo seu kernel personalizado, o que significa que você poderá voltar para os kernels oficiais no futuro, se necessário.

Responder3

As instruções que você está seguindo mostram o prompt da linha de comando /usr/src/linux #, que não é algo que você digita como parte do comando. O comando a ser digitado que aplicará o patch começa patche continua a partir daí.

informação relacionada