|
我照着坛子里的贴子和自己的一点想法
自己编译手柄驱动模块gamecon.c
编译时把模块支持加入内核
# Loadable module support ->
Set version information on all module symbols
(1)当此项设置为y时编译后的文件无法加载(好像是版本效验错误,且不支持加载)
在重新启动时模块检测时会出错.
(2)当此项设置为n时编译后的文件可以加载(好像是版本效验错误,但可以加载,也可以用),
在重新启动时模块检测时也会出错.
请问:
用什么方法能编译出符合版本效验的模块?
以下是我编译时的简略过程和出错信息
编译时为了能加载改了Makefile里的版本号
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 20
#EXTRAVERSION = -8custom
EXTRAVERSION = -8
[root@localhost linux-2.4]# make mrproper
[root@localhost linux-2.4]# touch .config
[root@localhost linux-2.4]# make config
# Loadable module support ->
Enable loadable module support y
Set version information on all module symbols y
kernel module loader y
... ...
[root@localhost linux-2.4]# make dep
[root@localhost linux-2.4]# make modules
覆盖原来的模块完成安装(这里我仅仅只编译了模块)
加载时出错
[root@localhost root]# modprobe gamecon gc=0,7,7,7,7,7
/lib/modules/2.4.20-8/kernel/drivers/char/joystick/gamecon.o: unresolved symbol
parport_unregister_device_R76e8567d
/lib/modules/2.4.20-8/kernel/drivers/char/joystick/gamecon.o: unresolved symbol
parport_enumerate_Rb019f67c
/lib/modules/2.4.20-8/kernel/drivers/char/joystick/gamecon.o: unresolved symbol
parport_register_device_Rf6150a17
/lib/modules/2.4.20-8/kernel/drivers/char/joystick/gamecon.o: unresolved symbol
parport_release_Re630d383
/lib/modules/2.4.20-8/kernel/drivers/char/joystick/gamecon.o: unresolved symbol
parport_claim_R91004644
/lib/modules/2.4.20-8/kernel/drivers/char/joystick/gamecon.o: insmod /lib/modules/2.4.20-8/kernel/drivers/char/joystick/gamecon.o failed
/lib/modules/2.4.20-8/kernel/drivers/char/joystick/gamecon.o: insmod gamecon failed |
|