I want to distribute proprietary Linux module for various distros without pre-building the module for all of them. For example I have the following files:
wrapp.c
mod.c
fops.c
All wrapp.c is wrapper for all kernel functions I'm using:
unsigned int wrap_ioread8(void *addr)
{
return ioread8(addr);
}
What I want to do is to give the customer mod.o and fops.o + the wrapp.c.
So I build the mod/fops.o on kernel 3.2 then tried to use them on kernel 2.6.32. The module builds without a problem but when I try ioctl() to the module I'm getting "invalid parameter". The ioctl interface is not changed between 3.2 and 2.6.32! so I'm stuck understanding what is wrong. If I build the module from source it works without a problem.
I was reading about binary blobs, o_shipped, etc. but so far I can't make it work. What am I missing?
Tried renaming the mod/fops.o to mod/fops.o_shipped but as long as I understand this it's only related to "make clean"...