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
jondaley on
April 18, 2008, 12:28 am
| Read 5905 times
Category
Programming:
[
first]
[
previous]
[
newest]
Kernel hacking -> CONFIG_UNUSED_SYMBOLS
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
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
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.
hmmm -mm kernel is the problem....
compiled the vanilla kernel with the patches and works. do not install the -mm patchbundle
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.
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.
Jorge :
make menuconfig
then search with / keyword "symbols"
This is in kernel hacking section
I guess I'll need to make the "next" links more obvious, since two of you haven't seen it.
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
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.