Ошибка: «Операция запрещена» из insmod и modprobe [закрыто]

Я пытаюсь вставить модуль в Ubuntu 14.04, но оба

sudo insmod xpcie.ko

и

sudo modprobe xpcie

возвращают ошибку

could not insert xpcie.ko: Operation not permitted

Я разместил копию xpcie.ko в / lib / modules / uname -r / kernel / drivers и запустил

depmod -a xpcie.ko

. Этот модуль исходит из XAPP1022 Xilinx. Первоначально он был разработан для Fedora 9. Может ли это быть причиной этой ошибки, и если да, то что мне нужно изменить в модуле? Если нет, что еще может вызвать это?

Спасибо.

РЕДАКТИРОВАТЬ:

uname -r

Возвращает 3.10.40-gb271e8f

2
задан 15 December 2017 в 21:15

1 ответ

Оказывается, что если модуль пытается инициализировать устройство, используя уже занятый старший номер, insmod и modprobe завершатся с ошибкой

operation not permitted

В частности, для XAPP 1022 драйвер пытается зарегистрировать символьное устройство, которому он назначает старший номер 240. На моей машине уже было зарегистрировано другое устройство с этим основным номером, что привело к отказу драйвера в его функции инициализации.

Решение состоит в том, чтобы изменить

int gDrvrMajor = 240;

на

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

внутри xpcie.c. Затем также необходимо изменить

mknod /dev/xpcie c 240 1

на

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

внутри make_device.

1
ответ дан 15 December 2017 в 21:15

Другие вопросы по тегам:

Похожие вопросы: