我想为各种发行版分发专有的 Linux 模块,而不需要为所有发行版预先构建模块。例如我有以下文件:
wrapp.c
mod.c
fops.c
所有wrapp.c都是我正在使用的所有内核函数的包装器:
unsigned int wrap_ioread8(void *addr)
{
return ioread8(addr);
}
我想做的是给客户mod.o和fops.o+wrapp.c。
所以我在内核 3.2 上构建了 mod/fops.o,然后尝试在内核 2.6.32 上使用它们。该模块构建没有问题,但是当我尝试对模块进行 ioctl() 时,我收到“无效参数”。 ioctl接口在3.2和2.6.32之间没有改变!所以我一直无法理解出了什么问题。如果我从源代码构建模块,它就可以正常工作。
我正在阅读有关二进制 blob、o_shipped 等的内容,但到目前为止我还无法使其工作。我缺少什么?
尝试将 mod/fops.o 重命名为 mod/fops.o_shipped 但只要我理解这一点,它只与“make clean”相关......
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)