Использование функции, написанной на языке, отличном от C, в модуле ядраLinux

Ответить Пред. темаСлед. тема
Anonymous
 Использование функции, написанной на языке, отличном от C, в модуле ядра

Сообщение Anonymous »

Мне нужно использовать (относительно простую) функцию, написанную на другом языке (не C/C++) в модуле ядра.
К сожалению, эта функция мне предоставляется уже заполненной и я ничего не могу с этим поделать. Я уверен, что он совместим с ядром и не имеет внешних зависимостей.
На данный момент я скомпилировал очень простой модуль, но при попытке insmod получаю сообщение "Неизвестный символ в модуль".
Макияжный файл:

Код: Выделить всё

obj-m   := test3.o
test2-y := privatemdule.o

KDIR    := /lib/modules/$(shell uname -r)/build
KBUILD_EXTRA_SYMBOLS  := /home/pi/test3/extra/Module.symvers

default:
$(MAKE) -C $(KDIR) M=$(PWD) modules

Исходный код модуля:

Код: Выделить всё

#include 
#include 
#include 
#include 

extern int private(int a, int b);

static int __init testthree_init(void)
{
int a, b, c = 0;
a = 0x1234;
b = 0x2468;
c = private(a, b);
printk(KERN_INFO "Result of %d + %d = %d\n", a, b, c);
return 0;
}

static void __exit testthree_exit(void)
{
printk(KERN_INFO "Unloading module\n");
}

module_init(testthree_init);
module_exit(testthree_exit);
MODULE_LICENSE("GPL 3.0");
MODULE_DESCRIPTION("Test module 3");

Рядом с исходными файлами, которые я предоставил
privatemodule.o и Privatemodule.o_shipped
И файл Module.symvers, содержащий:

Код: Выделить всё

0x7fffffff  private /home/pi/test3/privatemodule    EXPORT_SYMBOL
Версия ядра — 6.1.21, на Raspberry PI.
Что сделает вывод:

Код: Выделить всё

pi@ZeroW2:~/test3 $ make
make -C /lib/modules/6.1.21-v7+/build M=/home/pi/test3 modules
make[1]: Entering directory '/usr/src/linux-headers-6.1.21-v7+'
MODPOST /home/pi/test3/Module.symvers
CC [M]  /home/pi/test3/test3.mod.o
LD [M]  /home/pi/test3/test3.ko
make[1]: Leaving directory '/usr/src/linux-headers-6.1.21-v7+'
В файле .test3.ko.cmd (скрипт компоновщика) нет ссылки на Privatemodule.o.
Что я делаю не так?
Спасибо :-)

Подробнее здесь: https://stackoverflow.com/questions/792 ... nel-module
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»