Making ServWise
50% off all hosting at servwise

OpenSuse 11.2 Xen and nVidia Drivers

The latest release of OpenSuse 11.2 ships with the new 190 drivers from nVidia, which are not compatible with Xen. Well that may be but here is how to get it working with the 185 drivers. The main problem is you get a modpost GPL infringment, which prevents the kernel module being linked, but you can get around it:

FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol 'xen_features'

Here are the steps:

1) Download NVIDIA-Linux-x86_64-185.18.36-pkg2.run from nvidia
2) execute


chmod +x NVIDIA-Linux-x86_64-185.18.36-pkg2.run
./NVIDIA-Linux-x86_64-185.18.36-pkg2.run --extract-only
cd NVIDIA-Linux-x86_64-185.18.36-pkg2/usr/src/nv

3) edit Makefile.kbuild, and after

EXTRA_CFLAGS += -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wpointer-arith -Wno-multichar -Werror -mcmodel=kernel -mno-red-zone -fno-defer-pop -MD $(DEFINES) $(INCLUDES) -Wsign-compare -Wno-cast-qual -Wno-error

Insert:


XEN_FEATURES := $(shell grep "D xen_features" /boot/System.map-$(shell uname -r) | colrm 17)
EXTRA_LDFLAGS := --defsym xen_features=0x$(XEN_FEATURES)

Note: the colrm 17 is applicable to 64bit only. For 32bit, use colrm 9.

4) The usual:


export IGNORE_XEN_PRESENCE=1
export SYSSRC=/lib/modules/$(uname -r)/source
export SYSOUT=/lib/modules/$(uname -r)/build
make module

Then copy nvidia.ko to /lib/modules/2.6.31.5-0.1-xen/updates/
and ../../X11R6/lib/modules/drivers/nvidia_drv.so to /usr/lib64/xorg/modules/updates/drivers/

(adjust these for your install).

6) Either modprobe nvidia or reboot and startx

Comments are closed.