I had the privilege of installing VMWare 1.0.5 on a brand new 2.6.25 kernel. I downloaded the
2.6.XX patch for vmware 1.0.4, applied the one change from asm to linux in vcpuset.h. That had worked for me before when using 1.0.5 on a 2.6.24 kernel, but today I downloaded a 2.6.25 kernel for someone and of course, someone changed something slightly, causing the vmware module (vmnet) to no longer compile. Fortunately for me, a small bit of hacking fixed it, and now I can go to bed.The function that is missing in the 2.6.26 kernel is sock_valbool_flag, which was recently made inline, so it causes a "implicit declaration of function" error when running the standard vmware-config.pl script. I saw that the function still exists in the kernel sources, but was made a static function, and moved to sock.c. So, after taking a look at the function, I figured it wouldn't hurt to simply copy it from sock.c into vmware's bridge.c and off I went. tada!
Posted by
Jon Daley on
April 18, 2008, 12:28 am
| Read 68689 times
Category
Programming:
[
first]
[
previous]
[
next]
[
newest]
Doesn't work for me (VMware-server-1.0.5-80187.i386.rpm, kernel 2.6.25.4):
/tmp/vmware-config2/vmmon-only/./include/compat_wait.h:60: error: conflicting types for 'poll_initwait'
include/linux/poll.h:65: error: previous declaration of 'poll_initwait' was here
/tmp/vmware-config1/vmmon-only/linux/driver.c:147: warning: initialization from incompatible pointer type
/tmp/vmware-config1/vmmon-only/linux/driver.c:151: warning: initialization from incompatible pointer type
Simply killing the bogus poll_initwait redefinition in compat_wait.h fixes that.
Next error:
/tmp/vmware-config3/vmmon-only/linux/hostif.c:3363: error: 'struct task_struct' has no member named 'nice'
Looks like for some reason the Makefiles didn't define VMW_HAVE_SET_USER_NICE even though 2.6.25.3 has it, simply replacing #if defined(VMW_HAVE_SET_USER_NICE) with #if 1 fixes that (and of course breaks old kernels)
After that, it compiles, but hits the init_mm reference which a quick grep can't locate.
I apparently haven't run vmware in a while, and went to try it today, but discovered that I have upgraded my kernel since the last time I ran it, and of course, vmware is using old API calls, and so doesn't work on 2.6.26...
So, off to try virtualbox instead, which seems to be kept much more up-to-date by the authors, rather than users having to depend on people like me to do the authors' work for them.
Start your stopwatches, let's see how this switchover goes.
So, the stopwatches have been running an awfully long time. I have been unable to get vmware 1.0.7 running on 2.6.26. I even tried out some other virtual systems, but I can't find one that allows direct access to the hard drive, rather than a virtual hard drive file. urgh.
I guess I'll need to dual-boot to DOS to finish up a project.
I ended up switching over to VirtualBox. Though even that wasn't as straightforward as I am used to on Debian. (I am running "squeeze", and the modules package for virtualbox hasn't been updated properly to run with the kernel that is distributed with squeeze, so I had to play around with it).