我有一个PDA的LINUX平台,可是系统是别人做的,我想加入USB打印机的驱动模块,可是却出了问题:
insmod 不成功:提示:Using /lib/modules/2.4.24/printer.o
insmod: QM_MODULES: Function not implemented
我重新编译BUSYBOX,打开#define BB_FEATURE_OLD_MODULE_INTERFACE
可却提示:# ./insmod -f printer
Using /lib/modules/2.4.24/printer.o
insmod: Warning: kernel-module version mismatch
/lib/modules/2.4.24/printer.o was compiled for kernel version 2.4.21
while this kernel is version 2.4.24
insmod: get_kernel_syms: printer: Function not implemented
看上去应该是该内核没有打开对模块的支持,我没有SOURCECODE,
不能改变,所以请教高手:
insmod: Warning: kernel-module version mismatch
/lib/modules/2.4.24/printer.o was compiled for kernel version 2.4.21
while this kernel is version 2.4.24
我用2.2.24的kernel编译模块printer.o试了,还是不行。只是少了版本不匹配的提示。
估计还是有可能是kernel modules 未支持,因为信息本来是这样的:
# insmod printer.o
Using printer.o
insmod: QM_MODULES: Function not implemented
只是因为看到网上一些介绍怕是BUSYBOX对modules的前后支持方式不同,
改用
// Support insmod/lsmod/rmmod for post 2.1 kernels
//#define BB_FEATURE_NEW_MODULE_INTERFACE
//
// Support insmod/lsmod/rmmod for pre 2.1 kernels
#define BB_FEATURE_OLD_MODULE_INTERFACE
才会出现版本不同的提示,其实这样应该没有必要,因为他是2.1前的kernel
才需要这样的(我刚刚才发现[for pre 2.1 kernels])的。。。
会不会是这个让linky_fan老兄的判断有误呢?
LINKY_FAN老兄,到底怎样可以断定kernel中打开了对module的支持呢?
老兄们,哪位知道呀。。。。谢谢各位啦。。
WW。。。不好意思,是我写错了,我把2.4.24写成了2.2.24,
其实我测试的就是2.4.24,但就是不成功。
使用我编译的OLD_MODULE_INTERFACE的busybox提示如下:
# ./insmod ./printer.o
Using ./printer.o
insmod: get_kernel_syms: printer: Function not implemented
使用系统自带busybox提示如下:
# insmod printer.o
Using printer.o
insmod: QM_MODULES: Function not implemented
关键是现在我不能肯定kernel是否支持modules?...
了解的太少了,帮我解解困惑吧。。。。