Originally Posted by JaXXoN
The compilation actually went ok, but the module fails to load, because GPL-only symbols are not exported to non-GPL modules.
There are two solutions: either, modify EXPORT_SYMBOL_GPL(lockdep_init_map) in the kernel sources (kernel/lockdep.c:1940) to EXPORT_SYMBOL(lockdep_init_map) and recompile/install the kernel, or manually add the symbol information to the nvidia driver module:
cd <nvidia driver sources>
SYMBOL=`grep lockdep_init_map$ /boot/System.map-2.6.18-rc1 | colrm 9`
ld -m elf_i386 --defsym lockdep_init_map=0x$SYMBOL -r -o nvidia.ko nvidia.o nvidia.mod.o
On x86_64, you have to use "colrm 17" instead of "colrm 9" in the third line!
I didn't yet actually tried if the driver will then work on 2.6.18-rc1, but the above method(s) to get rid of missing symbols works nice for nvidia drivers on top of xen-enabled linux kernels.
which xen enabled Kernel will work with which nvidia Driver?