Hi all,
I'm trying to install VMplayer 2.0.2 or 2.0.1 on an older Linux SuSE 8.2-based system which runs a plain-vanilla 2.4.32 kernel.
After the succesfull RPM-based installation, when I run "vmware-config.pl", the configuration process aborts the moment it tries to load the
"vmmon.o" module, complaining about an unresolved symbol "set_user_nice":
"...
make: Leaving directory `/tmp/vmware-config1/vmmon-only'
Unable to make a vmmon module that can be loaded in the running kernel:
/tmp/vmware-config1/vmmon.o: unresolved symbol set_user_nice
/tmp/vmware-config1/vmmon.o:
Hint: You are trying to load a module without a GPL compatible license
and it has unresolved symbols. The module may be trying to access
GPLONLY symbols but the problem is more likely to be a coding or
user error. Contact the module supplier for assistance, only they
can help you.
There is probably a slight difference in the kernel configuration between the
set of C header files you specified and your running kernel. You may want to
rebuild a kernel based on that directory, or specify another directory.
For more information on how to troubleshoot module-related problems, please
visit our Web site at "http://www.vmware.com/download/modules/modules.html" and
"http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html".
Execution aborted.
"
Installing VMplayer 2.0.0 in exactly the same environment does succeed !
A more complete log is attached.
Any ideas or suggestions ?
Thanks,
Thomas
It's a pain to do, but it's not impossible. You have to adjust the autoconf set_user_nice part so that it will try and detect the presence or absence of that function for any kernels < 2.5.0
However, after I did that and got everything started, I found myself unable to log in because 2.0 beta1/beta2 no longer ship with functional libpam libraries for systems that don't ship with pam from the distribution.
Back to 1.0.5...
I found the same problem compiling wmware-server-1.0.6 for kernel 2.4.36.5
I have hacked /tmp/vmware-config0/vmmon-only/include/compat_sched.h in this manner:
/*
set priroty for specified thread. Exists on 2.6.x kernels and some 2.4.x ven
*/
// #if defined(VMW_HAVE_SET_USER_NICE)
// #define compat_set_user_nice(task, n) set_user_nice((task), (n))
// #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
// #define compat_set_user_nice(task, n) do { (task)->priority = 20 - (n); } whi
// #elif !defined(VMW_HAVE_SET_USER_NICE)
#define compat_set_user_nice(task, n) do { (task)->nice = (n); } while (0)
// #endif
Use at own risk!
Alessandro