You are not logged in.
Managed to get vmware workstation working with kernel 2.6.25.
I downloaded the any-any-patch from here:
http://vmkernelnewbies.googlegroups.com … te-116.tgz
and followed the instructions from here:
http://www.tfug.org/pipermail/tfug/2008 … 18337.html
Edit:
I added this
---------------------------------------------------------------------------------------------------
static inline void sock_valbool_flag(struct sock *sk, int bit, int valbool)
{
if (valbool)
sock_set_flag(sk, bit);
else
sock_reset_flag(sk, bit);
}
---------------------------------------------------------------------------------------------------
to vmware's bridge.c and did not modify sock.h
http://jon.limedaley.com/plog/archives/ … .25-kernel
Extract the any-any-patch. Then extract vmnet.tar and edit the filter.c file and change line 48 and 53 as follows
static struct nf_hook_ops vmnet_nf_ops[] = {
{ .hook = VNetFilterHookFn,
compat_nf_hook_owner
.pf = PF_INET,
48---->> .hooknum = 1,
.priority = NF_IP_PRI_FILTER - 1, },
{ .hook = VNetFilterHookFn,
compat_nf_hook_owner
.pf = PF_INET,
53----->>> .hooknum = 4,
.priority = NF_IP_PRI_FILTER - 1, }
};
line 233
--->> transmit = (hooknum == 4);
save the file and tar up the vmnet-only to vmnet.tar
Copy over the vmnet.tar file and replace the vmnet.tar file of the the any-any-patch.
Run runme.pl
Edit: There were two other changes that I made http://article.gmane.org/gmane.linux.re … evel/76714
I changed ( .pte = val ) to ( pte:val) in page.h and ( .pte = ret ) to ( pte:ret) in paravirt.h in /usr/src/kernel-2.6.25etc/include/asm/
Last edited by kishd (2008-05-04 16:44:19)
---for there is nothing either good or bad, but only thinking makes it so....
Hamlet, W Shakespeare
Offline
It would be better to do this properly and change these NF_IP_LOCAL_IN and NF_IP_POST_ROUTING to NF_INET_LOCAL_IN and NF_INET_POST_ROUTING respectively.
Offline
I am trying to get VMware Server 1.0.5 running under a recently built 2.6.25 kernel. I have patched as stated above -- although am getting a different compile error. Here is the error which occurs during task.o compilation of the vmmon-only driver;
make[1]: Entering directory `/usr/src/linux-2.6.25-iCEBURG'
CC [M] /tmp/vmware-config2/vmmon-only/linux/driver.o
CC [M] /tmp/vmware-config2/vmmon-only/linux/driverLog.o
CC [M] /tmp/vmware-config2/vmmon-only/linux/hostif.o
CC [M] /tmp/vmware-config2/vmmon-only/common/comport.o
CC [M] /tmp/vmware-config2/vmmon-only/common/cpuid.o
CC [M] /tmp/vmware-config2/vmmon-only/common/hash.o
CC [M] /tmp/vmware-config2/vmmon-only/common/memtrack.o
CC [M] /tmp/vmware-config2/vmmon-only/common/phystrack.o
CC [M] /tmp/vmware-config2/vmmon-only/common/task.o
cc1plus: warning: command line option "-Werror-implicit-function-declaration" is valid for C/ObjC but not for C++
cc1plus: warning: command line option "-Wdeclaration-after-statement" is valid f or C/ObjC but not for C++
cc1plus: warning: command line option "-Wno-pointer-sign" is valid for C/ObjC bu t not for C++
cc1plus: warning: command line option "-Wstrict-prototypes" is valid for C/ObjC but not for C++
In file included from /tmp/vmware-config2/vmmon-only/common/hostKernel.h:56,
from /tmp/vmware-config2/vmmon-only/common/task.c:30:
include/asm/page.h: In function 'pte_t native_make_pte(pteval_t)':
include/asm/page.h:128: error: expected primary-expression before ')' token
include/asm/page.h:128: error: expected ';' before '{' token
include/asm/page.h:128: error: expected primary-expression before '.' token
include/asm/page.h:128: error: expected `;' before '}' token
In file included from /tmp/vmware-config2/vmmon-only/common/task.c:1194:
/tmp/vmware-config2/vmmon-only/common/task_compat.h: At global scope:
/tmp/vmware-config2/vmmon-only/common/task_compat.h:9: warning: 'typedef' wa s ignored in this declaration
make[2]: *** [/tmp/vmware-config2/vmmon-only/common/task.o] Error 1
make[1]: *** [_module_/tmp/vmware-config2/vmmon-only] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.25-iCEBURG'
make: *** [vmmon.ko] Error 2
make: Leaving directory `/tmp/vmware-config2/vmmon-only'
Unable to build the vmmon module.
GCC Environment
[root@Slade vmware-any-any-update116]# gcc --version
gcc (GCC) 4.3.0
Perhaps I am missing a config setting in my kernel config...
Any ideas?
edit
I was able to get passed the error following a lead from Tom London on the FC9 Mailing List (http://article.gmane.org/gmane.linux.re … evel/76714).
I decompressed the any-to-any patch vmmon.tar, and changed line 56 of common/hostKernel.h to read:
/* For __PAGE_OFFSET --hpreg */
# include <asm/page.vmware.h>
and then went to my kernel headers [/usr/src/linux] include/asm directory, and copied page.h to page.vmware.h... then changed line 128 of page.vmware.h to read;
static inline pte_t native_make_pte(pteval_t val)
{
return (pte_t) { pte:val };
}
I could now compile -- but cannot load the module due to unknown symbols. At this point... I think I need a better understanding of what is going on!
Thanks!
~ Brice Burgess
Last edited by nesta (2008-04-20 04:47:44)
Offline
nesta, I had forgot to mention in my post that I had changed ( .pte = val ) in [/usr/src/linux] include/asm/paravirt.h and page.h to read ( pte:val ).
---for there is nothing either good or bad, but only thinking makes it so....
Hamlet, W Shakespeare
Offline
kishd,
I already made the change to the include/asm/page.h ... although felt that it may result in system wide instability as that's a very important file! So, I cloned it as include/asm/page.vmware.h and made my changes to that file (as described above). This didn't work, however, as it threw an unknown symbol error on loading the module.
I am not sure if this is an any-to-any (version 116) bug, a VMware issue, a g++ (version 3.04) issue, or a kernel header issue either. In the meantime, I'll be trying out VMware server 2.0 beta 2 to see if it will run in my environment. Will keep you posted.
~ Brice
Offline
nesta, the change also needs to be made in ..../asm/paravirt.h
Perhaps the any-any patch is not needed for vmware server. See this post
http://jon.limedaley.com/plog/archives/ … .25-kernel
Last edited by kishd (2008-04-20 16:51:22)
---for there is nothing either good or bad, but only thinking makes it so....
Hamlet, W Shakespeare
Offline
I have the same problem and IMO the problem is that there's a version mismatch between the kernel we have installed and the headers:
$ pacman -Q kernel-headers
kernel-headers 2.6.24.3-1
After that I think anyany-update16 will be needed and those patches (http://jon.limedaley.com/plog/archives/ … .25-kernel).
Offline
I was able to get it all up and running. Here goes;
VMWare 1.0.5 on 2.6.25 steps;
1) Download the TAR binary from http://www.vmware.com/download/server/
2) Uncompress, run vmware-install.pl as root.
2a. I choose to install the binaries to /opt/vmware/bin for organizational purposes.
2b. Do not choose to run vmware-config.pl. If you do by accident, no problem. Proceed to step 3 when compilation fails.
3) Download the vmmon-2.6.25.patch and vmnet-2.6.25 path courtesy of Jon Daley (http://jon.limedaley.com/plog/archives/ … .25-kernel)
3a. Copy the patches to the VMware module source [e.g. /opt/vmware/lib/vmware/modules/source or /usr/lib/vmware/modules/source ]
4) Apply the patches to the VMware modules (see 3a above for example of file locations)
4a. Uncompress vmnet.tar and vmmon.tar
4b. Apply the appropriate patch for example;
--
cd vmmon-only
patch -p1 < ../vmmon-2.6.25.patch
...
--
5) Overwrite the VMware modules with your patched version (remove old .tar, replace with .tar of patched version)
5a. remove old module
5b. tar patched version for example;
--
rm vmmon.tar vmnet.tar
tar cvf vmmon.tar vmmon-only/
tar cvf vmnet.tar vmnet-only/
--
6) Build VMware (run vmware-config.pl, e.g. /opt/vmware/bin/vmware-config.pl)
NOTES:
1. Make sure your [2.6.25] kernel has compiled with UNUSED_SYMBOLS enabled.
( Kernel Hacking > Enable unused/obsolete exported symbols )
1a. If it is not, you will recieve complaints about unrecognized symbol (init_mm) during vmmon compilation.
2b. You can always rebuild your kernel and compile VMware 1.0.5 later, so don't worry too much about this at first.
Hope this helps,
~ Brice
Offline
Gah, I've been using linux for 12 years now. It's good to see how it has matured to where it is now.
(read: 12 years in linux and I still end up with hacks like these)
Not flaming anyone but blaming the system!
Nesta, you are talking about vmware server while this is about vmware workstation. Should we assume that the procedure you explain works with workstation as well?
Last edited by voidzero (2008-04-28 21:40:35)
Offline
I was able to get it all up and running. Here goes;
VMWare 1.0.5 on 2.6.25 steps;
[...]
~ Brice
Thanks for this info, Brice. For some reason, though, the patches failed for me. When I try to patch vmmon.tar, I get this:
[root@thinkpad source]# cd vmmon-only
[root@thinkpad vmmon-only]# patch -p1 < ../vmmon-2.6.25.patch
patching file include/vcpuset.h
Hunk #1 FAILED at 71.
1 out of 1 hunk FAILED -- saving rejects to file include/vcpuset.h.rej
patching file include/vm_basic_types.h
Hunk #1 succeeded at 163 (offset 9 lines).
Hunk #3 succeeded at 273 with fuzz 1 (offset 11 lines).
patching file linux/driver.c
Hunk #1 FAILED at 1655.
1 out of 1 hunk FAILED -- saving rejects to file linux/driver.c.rej
patching file Makefile.kernel
Hunk #1 FAILED at 6.
1 out of 1 hunk FAILED -- saving rejects to file Makefile.kernel.re
Does anybody out there see what the problem might be? Are these patches specifically for VMware Server and therefore won't work on VMware Workstation? Thanks.
Offline
The patches at http://bbs.archlinux.org/viewtopic.php?id=47704 DO work!
They're not mine, I just modified the PKGBUILD for vmware-workstation-modules (see that post)
Bye
Offline
nesta could you please upload somewhere those patched vmmon.tar and vmnet.tar files?
Offline
WKS 6.5 beta and not yet released WKS 6.0.4 and Server 1.0.6 do not need any patching with linux 2.6.25
Last edited by Kaso_Da_Zmok (2008-05-20 16:40:12)
Offline