Debian & Nvidia & Kernels 2.6.20/21

Getting this error message after you’ve compiled the nvidia video module and try to load it:

FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol ‘paravirt_ops’

This happens because paravirtualisation is enabled in these kernels, and causes the kernel to only allow GPL modules to build:

What happens is that when paravirtualization support is turned on many functions in the kernel call implicitly paravirt_ops – function marked as GPL only. One of these functions is udelay – function that makes a program stay idle for some period of time. And the nvidia driver uses udelay (I can’t imagine a driver that won’t use udelay somehow) and therefore you can not compile the driver normally.

This only happens if your running a 2.6.20 or 2.6.21 kernel on Debian. The quick fix (at least for me) is to upgrade to a 2.6.22 kernel and make sure you’ve upgraded nvidia-glx also. Alternatively, you can patch your kernel, see here for more detail and for links to patched verisons of the nvidia driver:
http://grizach.sc18.info/nvpatch/

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.