07, 08 Nov 2001 Installing VMware express 2.0.4 on SuSE Linux 7.3 ================================================= by Volker Kuhlmann This text is based on an earlier version for SuSE Linux 7.2. Applies to: ---------- SuSE Linux 7.3 Kernel 2.4.10-4GB VMware 2.0.4 express VMware-express-2.0.4-1133.i386.rpm (I can't see a reason why workstation should be different) Symptom: ------- During the configuration of vmware (by running vmware-config.pl as root) and compilation of the vmware kernel modules, the compilation fails with missing version.h and modversions.h, or says that they're not suitable. Additionally, the vmware modules fail to compile on kernel version 2.4.7 and up. Cause: ----- SuSE does not install version.h in a place where it can be found, and does not use kernel module versions in their kernels and thus has no modversions.h. VMware has not updated their module code for newer kernels. Solution: -------- Create the missing header files before compiling the vmware kernel modules. 1) Install package kernel-source-2.4.10.SuSE (I used kernel-source-2.4.10.SuSE-8.i386.rpm from CD 2.) Make sure the running kernel fits this source. Boot the correct kernel if not. 2) Create header files cd /usr/src/linux make mrproper make cloneconfig Turn on module versions. Make no other change to the kernel configuration, and leave the maximum suported memory at 4GB (vmware won't work with 64GB). There are several ways to do this: make xconfig Enter "Loadable module support" (2nd down on the left), and set "set version information on all module symbols" to yes. Save and exit. make menuconfig ... make config ... make dep This has created the missing header files. DO NOT COMPILE MODULES (waste of time) or INSTALL THE KERNEL OR MODULES (warranty/support void if done)! 3) Provide a missing symlink: ln -s ../../etc/init.d/vmware /usr/sbin/rcvmware This lets you start the vmware networking with rcvmware start/stop, like any other service. John McNulty remarks: A more complete solution there would be to copy /etc/init.d/skeleton to /etc/init.d/rcvmware and then edit the contents to call /usr/sbin/rcvmware. Once done, run ( cd / ; insserv /etc/init.d/rcvmware ) which will create start and stop link, slotted into the startup sequence according to the dependencies selected in the INIT comments (see insserv man page) at the start of the script. True, but it creates files which are then not part of any rpm. This might not be an issue to everyone. I find it works fine with just the symlink, and it's started at boot. 4) Patch the vmware module code Download the file: ftp://platan.vc.cvut.cz/pub/vmware/vmware-ws-1142-for-2.4.7a.tar.gz cd /usr/lib/vmware/modules/source tar -xpzf vmware-ws-1142-for-2.4.7a.tar.gz mv vmware-ws-1142-for-2.4.7a/* . 5) Configure vmware vmware-config.pl Pretty much all of the questions can be answered by pressing enter. This compiles the modules and overwrites the existing ones in /lib/modules/`uname -r`/misc/. The existing modules are SuSE-supplied (part of package k_deflt or similar) and may or may not work. 6) Run rcvmware start # this happens with the next boot vmware # this starts vmware and the configuration wizzard Have fun, Volker