I was using -f because I wanted it to ignore the version magic. If I omit the -f flag, modprobe gives me this
[30808.013298] batman_adv: version magic '3.10.17-yocto-standard SMP preempt mod_unload ATOM ' should be '3.10.17-poky-edison+ SMP preempt mod_unload ATOM 'modprobe: ERROR: could not insert 'batman_adv': Exec format error
Need to have a driver compiled for your linux image.
You are trying to install a driver compiled for another linux image: http://repo.opkg.net/edison/repo/edison/kernel-vmlinux_3.10.17-r0_edison.ipk
The best way is a creation of own linux image with B.A.T.M.A.N. driver using
a source code available on IoT - Intel® Edison Board Download | Intel® Developer Zone
How do I compile a kernel module for Edison from source?
I'm attempting to compile batman-adv 2015.1 from https://downloads.open-mesh.org/batman/releases/batman-adv-2015.1/batman-adv-2015.1.tar.gz
There’s a guide that covers this topic thoroughly (even with the same module). Here’s the link: https://software.intel.com/en-us/blogs/2015/02/27/intel-edison-adding-kernel-modules-to-yocto-example-batman. It’s really well explained so you shouldn’t have any issues following the steps.
Pablo the solution you linked does not solve my problem as I'm intending to compile from external source that is newer than what is included in the Intel package.
I successfully compiled and installed batman-adv by
- Following the instructions here (make sure you use 32bit Linux) to generate a Debian package containing the Linux headers for 3.10.17 Yocto standard.
- And then this to install the headers on the Edison.
- Download the latest batman-adv source from here and 'make' from Edison itself and then 'make install' to install the module.
Attached is the .deb package and the batman-adv.ko 2015.1 with debug logging enabled.