编译出来的module为什么总是load不了
build出来agpgart module总也load不了.我的内核版本和所下的内核源码是一个版本号啊.
问一个很弱的问题,我这么编内核module对不对:
我的内核是2.6.9-1.667, 下了kernel-2.6.9-1.667.src.rpm.然后
#rpm -ivh kernel-2.6.9-1.667.src.rpm
#cd /usr/src/redhat/SOURCE 找到linux-2.6.9.tar.bz2 将他解压,然后把解压出来的linux-2.6.9目录移动到/usr/src
之后就在/usr/src/linux-2.6.9下面编module.
#make menuconfig选择module
#make clean
#make modules M=driver/char/agp
把编好的agp*.ko拷到/lib/module/'uname -r'/kernel/driver/char/agp
#depmod -a
#modprobe agpgart
然后就出错.说不匹配
agpgart: version magic '2.6.9-1.667 686 REGPARM gcc-3.4' should be '2.6.9-1.667 686 REGPARM 4KSTACKS gcc-3.4'
如果用#modprobe --force-vermagic agpgart
还是不行,出现如下错误:
agpgart: no version magic, tainting kernel.
agpgart: Unknown symbol copy_from_user
agpgart: Unknown symbol copy_to_user
agpgart: version magic '2.6.9-1.667 686 REGPARM gcc-3.4' should be '2.6.9-1.667 686 REGPARM 4KSTACKS gcc-3.4'agpgart: no version magic, tainting kernel.
agpgart: Unknown symbol copy_from_user
agpgart: Unknown symbol copy_to_user
agpgart: no version magic, tainting kernel.
agpgart: Unknown symbol copy_from_user
agpgart: Unknown symbol copy_to_user
via_agp: no version magic, tainting kernel.
via_agp: disagrees about version of symbol agp_bridge
via_agp: Unknown symbol agp_bridge
via_agp: disagrees about version of symbol agp_remove_bridge
via_agp: Unknown symbol agp_remove_bridge
via_agp: disagrees about version of symbol agp_alloc_bridge
via_agp: Unknown symbol agp_alloc_bridge
via_agp: disagrees about version of symbol agp_add_bridge
via_agp: Unknown symbol agp_add_bridge
via_agp: disagrees about version of symbol get_agp_version
via_agp: Unknown symbol get_agp_version
via_agp: disagrees about version of symbol agp_put_bridge
via_agp: Unknown symbol agp_put_bridge
请问我哪里出错了?
在kernel中编译module是否这个过程? 必须针对你的内核重新编译!
因为 gcc 和 kernel 所使用的内核也是一个关键因素! 但是我的内核版本和所下module都是一样的,都是2.6.9-1.667啊。
而且gcc也是用FC3自带的,没有变过。。。。。 via芯片组兼容不好,最好本机器编译! agpgart: version magic '2.6.9-1.667 686 REGPARM gcc-3.4' should be '2.6.9-1.667 686 REGPARM 4KSTACKS gcc-3.4'agpgart: no version magic, tainting kernel.
这句是关键!你一定在开始编译内核的时候启用了 4K STACKS 支持,而在后来为编译模块而重新配置内核的时候没有启用 4K STACKS 支持,这样的模块当然不能用。 还有一点:如果启用了 4K STACKS 支持,就无法使用 reiserfs4 文件系统!
页:
[1]