Como eu uso um módulo do kernel construído para uma versão diferente do kernel?

0

Eu tenho um arquivo .ko e um arquivo nvme.h que foi construído em uma versão do kernel 3.17 e estou tentando copiar este arquivo .ko para uma máquina que possui o ubuntu 14.04 com a versão 3.19 do kernel. Eu também copiei o arquivo nvme.h

Quando tento fazer o rmmod nvme depois de copiar o arquivo .ko, ele dá um erro dizendo que nenhum módulo nvme está atualmente carregado. Eu tinha um backup do arquivo original .ko e nvme.h e quando copio isso de volta e executo o rmmod nvme, ele funciona muito bem. Eu preciso usar os arquivos atualizados .ko e nvme.h. Quaisquer ponteiros serão úteis? Como posso portar isso para 3.19 com sucesso. Por favor sugira.

    
por user1984533 06.11.2015 / 01:14

2 respostas

2

Você não pode. Cada módulo é compilado para uma versão específica do kernel e não pode ser usado para kernels que diferem disso.

Você precisará obter um arquivo .ko para o kernel específico que estiver executando lá ou recompilá-lo para esse kernel você mesmo.

    
por Jeremy Kerr 06.11.2015 / 02:32
0

Sim, você pode. Mas se as versões diferirem demais (entre árvores, por exemplo), provavelmente irá manchar o kernel, ou não encontrará algum símbolo.

Você deve corrigir o módulo se o modprobe -f não funcionar.

link

    
por Abel 03.02.2018 / 11:20