Я пытаюсь вставить модуль в 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
Оказывается, что если модуль пытается инициализировать устройство, используя уже занятый старший номер, 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.