Linux says a kernel module has an unknown symbol, but another loaded module provides it.
Posted
by raldi
on Server Fault
See other posts from Server Fault
or by raldi
Published on 2010-03-19T04:47:32Z
Indexed on
2010/03/19
4:51 UTC
Read the original article
Hit count: 310
I'm trying to install a driver for a USB DAQ box, which annoyingly, I have to compile myself. I believe I've succeeded -- I have two .ko files:
-rw-r--r-- 1 root root 45271 2010-03-18 21:24 advdrv_core.ko
-rw-r--r-- 1 root root 24312 2010-03-18 21:24 usb4761.ko
I was able to run insmod on the first without incident, but when I try on the second, I get a flood of messages:
kernel: [686782.106547] usb4761: no symbol version for adv_process_info_check_event
kernel: [686782.106555] usb4761: Unknown symbol adv_process_info_check_event
kernel: [686782.106691] usb4761: no symbol version for advdrv_unregister_driver
kernel: [686782.106695] usb4761: Unknown symbol advdrv_unregister_driver
However, advdrv_core.ko provides these symbols. My kernel sure seems to have them in memory:
# cat /proc/kallsyms | grep advdrv_unregister_driver
f8d88504 r __ksymtab_advdrv_unregister_driver [advdrv_core]
f8d888d2 r __kstrtab_advdrv_unregister_driver [advdrv_core]
f8d885a4 r __kcrctab_advdrv_unregister_driver [advdrv_core]
086eb8fb a __crc_advdrv_unregister_driver [advdrv_core]
f8d86e90 t advdrv_unregister_driver [advdrv_core]
Why does my insmod claim they're unknown symbols?
© Server Fault or respective owner