Erro: 'Operação não permitida' de insmod e modprobe [closed]

1

Estou tentando inserir um módulo no Ubuntu 14.04, mas ambos

sudo insmod xpcie.ko

e

sudo modprobe xpcie

retorna o erro

could not insert xpcie.ko: Operation not permitted

Eu coloquei uma cópia do xpcie.ko em / lib / modules / uname -r / kernel / drivers e executei

depmod -a xpcie.ko

Este módulo vem do XAPP1022 da Xilinx. Ele foi originalmente projetado para o Fedora 9. Poderia ser a causa desse erro e, em caso afirmativo, o que eu precisaria alterar no módulo? Se não, o que mais causaria isso?

Obrigado.

EDITAR:

uname -r

Retorna 3.10.40-gb271e8f

    
por enivium 15.12.2017 / 19:07

1 resposta

2

Acontece que, se um módulo tentar inicializar um dispositivo usando um número maior que já foi usado, insmod e modprobe falharão com a mensagem de erro

operation not permitted

Para o XAPP 1022 em particular, o driver tenta registrar um dispositivo char, ao qual ele atribui o número principal 240. Já havia outro dispositivo registrado com esse número principal em minha máquina, o que causou a falha do driver em sua função init .

A solução é mudar

int gDrvrMajor = 240;

para

int gDrvrMajor = {some major number that isn't taken}

dentro do xpcie.c. É então também necessário mudar

mknod /dev/xpcie c 240 1

para

mknod /dev/xpcie c {same other major number as above} 1

dentro do make_device.

    
por enivium 16.12.2017 / 18:47