VMWare 1.0.5 Server patch for 2.6.25 kernel – April 18, 2008

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!

Questions? Have Anything to Add?
(your comments will be published on this site - click here for private questions)

«Previous   1 2

Kernel hacking -> CONFIG_UNUSED_SYMBOLS

Posted by jondaley on May 4, 2008, 7:09 am

Ok i asked google and it's on "Kernel Hacking".
I'm compiling kernel and tomorow when i'll be next to the machine i'll reboot it and test and let you know.
Thanks,
Jorge

Posted by Jorge Bastos on May 4, 2008, 7:39 am

patches worked perfectly on vmware 1.0.5 and custom linux-2.6.25.1-x64 host.

i just patched the installer tar files, makes it easier :)

many thanks

Posted by timoid on May 4, 2008, 4:59 pm

hello,
applied your patches but now i get the nopage error..... can you help me out?

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config6/vmmon-only'
make -C /lib/modules/2.6.25-mm1-helux/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD /. modules
make[1]: Entering directory `/usr/src/linux-2.6.25-mm1-helux'
CC [M] /tmp/vmware-config6/vmmon-only/linux/driver.o
/tmp/vmware-config6/vmmon-only/linux/driver.c:146: error: unknown field ānopageā specified in initializer
/tmp/vmware-config6/vmmon-only/linux/driver.c:147: warning: initialization from incompatible pointer type
/tmp/vmware-config6/vmmon-only/linux/driver.c:150: error: unknown field ānopageā specified in initializer
/tmp/vmware-config6/vmmon-only/linux/driver.c:151: warning: initialization from incompatible pointer type
make[2]: *** [/tmp/vmware-config6/vmmon-only/linux/driver.o] Error 1
make[1]: *** [_module_/tmp/vmware-config6/vmmon-only] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.25-mm1-helux'
make: *** [vmmon.ko] Error 2
make: Leaving directory `/tmp/vmware-config6/vmmon-only'
Unable to build the vmmon module.

Posted by herwarth on May 5, 2008, 10:23 am

hmmm -mm kernel is the problem....
compiled the vanilla kernel with the patches and works. do not install the -mm patchbundle

Posted by herwarth on May 6, 2008, 9:10 am

I came here to report sucess and unsucess.
Now i have the other problem herwarth reported, but I just using 2.6.26-rc1.

What it can be done?

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config6/vmmon-only'
make -C /lib/modules/2.6.26-rc1/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-2.6.25'
CC [M] /tmp/vmware-config6/vmmon-only/linux/driver.o
/tmp/vmware-config6/vmmon-only/linux/driver.c:146: error: unknown field 'nopage' specified in initializer
/tmp/vmware-config6/vmmon-only/linux/driver.c:147: warning: initialization from incompatible pointer type
/tmp/vmware-config6/vmmon-only/linux/driver.c:150: error: unknown field 'nopage' specified in initializer
/tmp/vmware-config6/vmmon-only/linux/driver.c:151: warning: initialization from incompatible pointer type
make[2]: *** [/tmp/vmware-config6/vmmon-only/linux/driver.o] Error 1
make[1]: *** [_module_/tmp/vmware-config6/vmmon-only] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.25'
make: *** [vmmon.ko] Error 2
make: Leaving directory `/tmp/vmware-config6/vmmon-only'
Unable to build the vmmon module.

Posted by Jorge Bastos on May 6, 2008, 2:55 pm

First, thanks so much for this patch.

Second, to jondaley: in the directory where you extraceted the kernel source type (as root) `make menuconfig`. Towards the bottom you will have a Kernel Hacking section. select it and hit enter. The option is there. After you enable the unused/obsolete symbols you will have to recompile and install the new kernel.

Posted by Luke Grady on May 9, 2008, 2:00 pm

Jorge :
make menuconfig

then search with / keyword "symbols"

This is in kernel hacking section

Posted by Raphael on May 11, 2008, 3:15 pm

I guess I'll need to make the "next" links more obvious, since two of you haven't seen it.

Posted by jondaley on May 11, 2008, 4:25 pm

Hi,
I just want to say - thank you. These patches has been solved my problem with very new 2.6.25.3 kernel and vmware-server-1.0.5. Thanks a lot.

P.S. It seems we should migrate to server 2.0 is there any who already play with it ? I'm litle bit worried about native console ...

B

Posted by Tsvetin Vasilev on May 17, 2008, 3:46 am

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.

Posted by bero on June 11, 2008, 7:23 am

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.

Posted by jondaley on September 23, 2008, 3:16 pm

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.

Posted by jondaley on September 27, 2008, 12:06 pm
«Previous   1 2