May 302011
 

Seems nvidia this time wasn’t ready for the leap of version done by linus.

Lucky enough it seems only two little patches are needed to get the kernel module to build (at least using the 275.09 driver)

One was already done during the merge window and posted by an nvidia developer

the other is as simple just place 3.1 where is 2.7

— kernel/nv-linux.h    2011-05-30 10:02:23.823008954 +0200
+++ kernelnew/nv-linux.h    2011-05-30 10:03:01.933064849 +0200
@@ -44,7 +44,7 @@
#  define KERNEL_2_4
#elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
#  error This driver does not support 2.5 kernels!
-#elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 7, 0)
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(3, 1, 0)
#  define KERNEL_2_6
#else
#  error This driver does not support development kernels!

 

this will allow the module to build

May 142011
 

UPDATE5: As it seems many are using still the 7.1.x series of vmware. As vmware didn’t update the kernel sources in there but only for 8.0.0 (I wonder why… maybe marketing reasons), as some have pointed out in the comments, in order to make these patches work you just need to change the version of vmware stated in the patch script to 7.1.5 instead of 7.1.4. Same goes for the player from 3.1.4 to 3.1.5.

UPDATE4: A fix for guest kernel modules is available here

UPDATE3: It seems the patchv3 had a little bug, which prevented, at least,  building on linux 3.0.0-rc1, I’ve replaced the file so if you’ve downloaded the archive before you’ve seen this update please get it again (even more if you had issues with it)

UPDATE2: I’ve added the script which was frequently used for vmware patches in the past (had also to fix it in order to make it handle vmblock) and I’ve also updated the patch to pass the correct variable to kern_path function. vmware2.6.39patchv3.tar

This is an update to the previous post fixing some issues with the patch in the vmblock module (so it doesn’t crash anymore and it initializes properly) and should support building also on previous kernels.

Even though VMware updated their packages to support up to 2.6.38 kernel series the support for linux is still quite lacking as they forgot entirely to support 2.6.39 which was just released.

So, as it seems no one bothered yet according to google and vmware community, in order to overcome this problem I had to put my hands at sources in order to make the modules build and run under this new version of the kernel. So little by little I’ve removed many of remaining things needing the BLK or which used wrongly SPINLOCK defines (we are talking of defines which were discouraged use since some years according to kernel documentation floating around).

The process was quite successful and I could run the VM well.

Attached Files:

  • patch vmware patch for linux 2.6.39 (v2)

    Perfectly working patch for vmware in order to use it with the linux 2.6.39 kernel

  • vmware2.6.39patchv3.tar

    This patch fixes vmware products module kernels in order to run on linux 2.6.39. Changelog from the second patch: -fixed a wrong varriable being passed to kern_path -added a script based on Artem S. Tashkinov's work (it needed to be fixed in order to patch also vmblock)