Maneira correta de aplicar correções ao seu kernel?

3

Estou seguindo as instruções localizadas aqui para configurar meu servidor. Afirma que tenho que aplicar um patch que baixei para a 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

Continuo assumindo que /linux # deve ser substituído pela versão / dir 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 vejo o conteúdo de / usr / src eu só tenho dois diretórios linux-headers-2.6.35.22 e linux-headers-2.6.35.22-generic-pae Eu preciso de orientação quanto à maneira correta de aplicar um patch para o kernel.

Editar

Se eu executar /usr/src/linux-headers-2.6.35.22/ patch -p1 file.diff , recebo -bash: /usr/src/linux-headers-2.6.35.22: is a directory . Eu preciso saber como eu vou encontrar o arquivo específico que precisa ser corrigido aqui ...

    
por jon3laze 03.11.2010 / 22:19

3 respostas

2

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

link

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

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

    
por ImaginaryRobots 03.11.2010 / 23:52
4

Você precisa fazer o download da fonte. Você pode fazer isso através do apt-src, mas eu (pessoalmente) apenas peguei o último de kernel.org , extraia, corrija (usando apenas caminhos como o desktop, ele não precisa estar escondido em / usr / src!) e siga o " old fashioned way " instruções para compilá-lo.

Note que algumas correções 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 de origem antes de perder 20-30 minutos compilando-a.

Mas o seu problema específico é que você precisa estar no diretório em que 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 cole-o no mesmo diretório). Se os arquivos de origem forem de propriedade de root, prefixue sudo no comando patch ou execute sudo su para se tornar root enquanto você faz isso.

    
por Oli 03.11.2010 / 23:17
1

As instruções que você está seguindo estão mostrando o prompt de linha de comando /usr/src/linux # , que não é algo que você digita como parte do comando. O comando para digitar que aplicará o patch começa em patch e continua de lá.

    
por Kees Cook 04.11.2010 / 07:02