Para compilar los modulos de kernel de vmware necesitamos tener los keaders (linux-headers-server). En versiones modernas del kernel, puede que esto nos traiga problemas a la hora de compilar los módulos. Errores del estilo de:

En mi setup, tengo un enlace /usr/src/linux que apunta al directorio concreto /usr/src/linux-headers-version-que-uso. Adecualo a tu configuracion y version concreta.

The directory of kernel headers (version @@VMWARE@@ UTS_RELEASE) does not match your running kernel (version 2.6.35.24-server)

Si nos ocurre esto, deberemos localizar el archivo utsrelease.h, y añadir la linea que contiene a version.h

Clarifico las cosas. Metemos la linea define de /usr/src/linux-headers-2.6.35-24-server/include/generated/utsrelease.h

#define UTS_RELEASE "2.6.35-24-server"

en /usr/src/linux-headers-2.6.35-24-server/include/linux/version.h para que quede así:

#define LINUX_VERSION_CODE 132643
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
#define UTS_RELEASE "2.6.35-24-server"

Si volvemos a compilar nos encontraremos con un nuevo error, que dice:

“The path “/usr/src/linux/include” is a kernel header file directory, but it does not contain the file “linux/autoconf.h” as expected

Copiandolo a donde corresponde, solucionamos el tema:

cp /usr/src/linux-headers-2.6.35-24-server/include/generated/autoconf.h /usr/src/linux-headers-2.6.35-24-server/include/linux/