LINUX.ORG.RU

Unknown symbol ошибка


0

1

В своём модуле пробую подзгрузить другой модуль в ядре - zlib_deflate
Делаю следующую команду, request_module(«zlib_deflate»)
И при её выполнении в лог пишится подобное сообщение

kobject_add failed for zlib_deflate with -EEXIST, don't try to register things with the same name in the same directory.

Call Trace: [<ffffffff80154351>] kobject_add+0x166/0x191 [<ffffffff80153892>] cmp_ex+0x0/0x10 [<ffffffff80154485>] kobject_register+0x20/0x39 [<ffffffff8004147b>] load_module+0x1692/0x19f0 [<ffffffff800b9609>] audit_syscall_entry+0x1a4/0x1cf [<ffffffff800a8cdc>] sys_init_module+0x4d/0x1f2 [<ffffffff8005d28d>] tracesys+0xd5/0xe0

deflate: Unknown symbol zlib_deflateEnd deflate: Unknown symbol zlib_deflate deflate: Unknown symbol zlib_deflateReset deflate: Unknown symbol zlib_deflate_workspacesize deflate: Unknown symbol zlib_deflateInit2



В поисковике нашёл информацию, что с данной проблемой можно справиться при помощи добавления KBUILD_EXTRA_SYMBOLS в make файл. Но я не понимаю, что это за параметр и для чего он нужен,а также какое значение следует ему указать. Объясните пожалуйста. И если проблему с Unknown symbol можно решить иначе, то объясните как? спасибо!

kobject_add failed for zlib_deflate with -EEXIST, don't try to register things with the same name in the same directory.

Тебе какое слово перевести, пионэр?

anonymous
()

if you do use one of the huge kernels, you will likely encounter errors like this:
kobject_add failed for uhci_hcd with -EEXIST, don't try to register
These occur because the respective drivers are compiled statically into the huge kernels but udev tries to load them anyway. These errors should be safe to ignore

arkhnchul ★★★
()
Ответ на: комментарий от linuxcore

ну еще раз

These occur because the respective drivers are compiled statically into the huge kernels but udev tries to load them anyway.
These errors should be safe to ignore

т.е. модуль, который производится попытка загрузить, уже есть в ядре (либо уже загружен имхо). Ругань на unknown symbol не от этого. Код надо смотреть.

arkhnchul ★★★
()
Ответ на: комментарий от arkhnchul

Последовательность действий такова:
1) request_module(«zlib_deflate») // подгружаем модуль.
2) Тут произошла загрузка модуля. При этом нет ошибок.
3) Выделяю память для struct crypto_tfm *tfm;
tfm = crypto_alloc_tfm(«deflate», 0);
4) Пробую вызвать функцию декомпрессии данных - crypto_comp_decompress(tfm, compressed_data, compressed_data_len, result_buf, &result_buf_len);
5) Тут в лог выскакивает следующее

kobject_add failed for zlib_deflate with -EEXIST, don't try to register things with the same name in the same directory.

Call Trace:
 [<ffffffff80154351>] kobject_add+0x166/0x191
 [<ffffffff80153892>] cmp_ex+0x0/0x10
 [<ffffffff80154485>] kobject_register+0x20/0x39
 [<ffffffff8004147b>] load_module+0x1692/0x19f0
 [<ffffffff800b9609>] audit_syscall_entry+0x1a4/0x1cf
 [<ffffffff800a8cdc>] sys_init_module+0x4d/0x1f2
 [<ffffffff8005d28d>] tracesys+0xd5/0xe0

deflate: Unknown symbol zlib_deflateEnd
deflate: Unknown symbol zlib_deflate
deflate: Unknown symbol zlib_deflateReset
deflate: Unknown symbol zlib_deflate_workspacesize
deflate: Unknown symbol zlib_deflateInit2

6) Далее код не выполняется.

Нужна помощь, уже 5 дней методом перебора пытаюсь исправить проблему.

linuxcore
() автор топика
Ответ на: комментарий от linuxcore

И если проблему с Unknown symbol можно решить иначе, то объясните как?

А где тут Unknown symbol?

По поводу невыполнения программы - давай уже минимальный пример.

ziemin ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.