I am trying to to insert a driver (successuffly compiled) on to the Poplar Board but I’m getting the “unknown symbol” error when I try to load it with insmod.
Unknown symbol __check_object_size (err 0) Unknown symbol __check_object_size (err 0) Unknown symbol kmem_cache_alloc_trace (err 0) Unknown symbol kmem_cache_alloc_trace (err 0) Unknown symbol _mcount (err 0) Unknown symbol _mcount (err 0)
I know this error is related to some missing module, but I don’t know how to ensure what module is missing.
uname output is:
Linux poplar 4.9.51-g6f2c493-dirty #1 SMP PREEMPT Thu Feb 21 16:44:02 UTC 2019 aarch64 aarch64 aarch64 GNU/Linux
modinfo output is:
vermagic: 4.9.51-g6f2c493-dirty SMP preempt mod_unload aarch64
parm: rx_pool_size:receive pool size (default 5MB) (int)
parm: tx_pool_size:transmit pool size (default 5MB) (int)
parm: aspm_enable:enable ASPM (int)
I compiled the module like this:
-build this kernel https://github.com/96boards-poplar/linux/commits/poplar-4.9 on to a fedora machine with the .config taken from Poplar board (/proc/config.gz).
-build the module with that kernel
-cross_compile both of them (kernel and module) with https://releases.linaro.org/components/toolchain/binaries/7.1-2017.08/aarch64-linux-gnu/gcc-linaro-7.1.1-2017.08-x86_64_aarch64-linux-gnu.tar.xz
-simple copy the module.ko file to poplar board and get that error when I try to load it with insmod.
What exactly is causing this error and what is the best way to solve it ?
Thank you in advance.