Aplicar patch do kernel para suportar o modo PIC

Aplicar patch do kernel para suportar o modo PIC

Estou recebendo um erro ao tentar compilar drivers para um TP Link AC 600, no Kali Linux amd64 4.7.0 gcc 5.4.1 Debian 5.4.1-3.

O erro é "o kernel do modelo de código de erro não suporta o modo PIC"

Depois de algum passo, encontrei alguém que estava tendo problemas semelhantes e alguém postou um patch.

Como aplico o patch e onde aplicá-lo?

Aqui está o outro link:Não é possível compilar o kernel: erro, o kernel não suporta o modo PIC

Responder1

No que diz respeito aos drivers Ubuntu e Intel, a Intel testou seus drivers apenas para versões LTS do Ubuntu (veja a resposta de Todd Fujinaka). Então você precisa fazer o downgrade do Ubuntu de 16.10 para 16.04.1 LTS (reinstale enquanto mantém/home).

Para todas as outras distros baseadas em Debian, como Kali, o mesmo é verdade: você precisa fazer o downgrade (ou seja, reinstalar) para uma versão que seja explicitamente suportada pelo fornecedor do driver. Uma versão antes do material do gcc PIC.

Essa pode não ser uma resposta agradável, mas é tecnicamente correta e se você não é um desenvolvedor de kernel, então tudo o que você pode fazer é visitar uma lista de discussão do kernel e perguntar educadamente se um desenvolvedor pode trabalhar no código do driver . Às vezes isso funciona, mas seja paciente.

Responder2

O processo para aplicar um patch é muito simples. Supondo que você tenha o diretório do kernel e o arquivo de patch assim:

- /usr/src/kernels (or where you have the kernel directory)
---- /user/src/kernels/kernel_directory
---- /user/src/kernels/patch_file

Dependendo do formato em que você tem o patch (normalmente .gz, .bz2 ou .xz), você precisa usar um comando diferente para extraí-lo. Você precisa entrar kernel_directorye executar o próximo comando:

gzip -cd ../patch_file | patch -p1- Isto para um patch gzip

bzip2 -cd ../patch_file | patch -p1- Isto para um patch bzip

xz -cd ../patch_file | patch -p1- Isto para um patch xz

Ele aplicará o arquivo de patch /usr/src/kernels/patch_fileno kernel /usr/src/kernels/kernel_directory. Você precisa navegar primeiro até /usr/src/kernels/kernel_directorye executar o comando a partir daí.

Leve em consideração fazer uma cópia do diretório do kernel, para que você possa fazer o processo com uma cópia do kernel em backup para revertê-lo facilmente.

NOTA: Este é apenas o processo de aplicação do patch, supondo que você esteja usando o patch adequado para o seu kernel, não deverá ocorrer nenhum erro. Você precisa ter o arquivo de patch, como o oficial do kernel.

informação relacionada