After compiling a new kernel for my gentoo vmware server, I ran module-rebuild -X rebuild, since I knew I needed to build vmware-modules against the new kernel tree. Shortly after the emerge, I ran into the following compliation error:
After compiling a new kernel for my gentoo vmware server, I ran module-rebuild -X rebuild, since I knew I needed to build vmware-modules against the new kernel tree. Shortly after the emerge, I ran into the following compliation error:
Using 2.6.x kernel build system.
make -C /usr/src/linux/include/.. M=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-2.6.26-gentoo-r3'
make[1]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule.
WARNING: Symbol version dump /usr/src/linux-2.6.26-gentoo-r3/Module.symvers
is missing; modules will have no dependencies and modversions.
CC [M] /var/tmp/portage/app-emulation/vmware-modules-1.0.0.15-r1/work/vmmon-only/linux/driver.o
/var/tmp/portage/app-emulation/vmware-modules-1.0.0.15-r1/work/vmmon-only/linux/driver.c:171: error: unknown field 'nopage' specified in initializer
/var/tmp/portage/app-emulation/vmware-modules-1.0.0.15-r1/work/vmmon-only/linux/driver.c:172: warning: initialization from incompatible pointer type
/var/tmp/portage/app-emulation/vmware-modules-1.0.0.15-r1/work/vmmon-only/linux/driver.c:175: error: unknown field 'nopage' specified in initializer
/var/tmp/portage/app-emulation/vmware-modules-1.0.0.15-r1/work/vmmon-only/linux/driver.c:176: warning: initialization from incompatible pointer type
make[3]: *** [/var/tmp/portage/app-emulation/vmware-modules-1.0.0.15-r1/work/vmmon-only/linux/driver.o] Error 1
make[2]: *** [_module_/var/tmp/portage/app-emulation/vmware-modules-1.0.0.15-r1/work/vmmon-only] Error 2
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.26-gentoo-r3'
make: *** [vmmon.ko] Error 2
*
* ERROR: app-emulation/vmware-modules-1.0.0.15-r1 failed.
* Call stack:
* ebuild.sh, line 49: Called src_compile
* environment, line 3208: Called linux-mod_src_compile
* environment, line 2427: Called die
* The specific snippet of code:
* eval "emake HOSTCC=\"$(tc-getBUILD_CC)\" CROSS_COMPILE=${CHOST}- LDFLAGS=\"$(get_abi_LDFLAGS)\" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS} " || die "Unable to emake HOSTCC="$(tc-getBUILD_CC)" CROSS_COMPILE=${CHOST}- LDFLAGS="$(get_abi_LDFLAGS)" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}";
* The die message:
* Unable to emake HOSTCC=i686-pc-linux-gnu-gcc CROSS_COMPILE=i686-pc-linux-gnu- LDFLAGS= auto-build VMWARE_VER=VME_S1B1 KERNEL_DIR=/usr/src/linux KBUILD_OUTPUT=/usr/src/linux
*
* If you need support, post the topmost build error, and the call stack if relevant.
* A complete build log is located at '/var/tmp/portage/app-emulation/vmware-modules-1.0.0.15-r1/temp/build.log'.
* The ebuild environment file is located at '/var/tmp/portage/app-emulation/vmware-modules-1.0.0.15-r1/temp/environment'.
After doing some of debugging (emerged linux-headers, etc), I still ran into problems. I found this insanely long bug thread which has a solution. I’ll post the quick version.
The first step is to wget the following files and put them into /usr/portage/app-emulation/vmware-modules/files/
http://www.paldo.org/paldo/sources/VMware-server/VMware-server-vmmon-1.0.6-91891.tar.bz2
http://www.paldo.org/paldo/sources/VMware-server/VMware-server-vmmon-1.0.6-91891-2.6.27-1.patch.bz2
http://www.paldo.org/paldo/sources/VMware-server/VMware-server-vmnet-1.0.6-91891.tar.bz2
http://www.paldo.org/paldo/sources/VMware-server/VMware-server-vmnet-1.0.6-91891-2.6.27-1.patch.bz2
Next, you will need to edit the ebuild
vi /usr/portage/app-emulation/vmware-modules/vmware-modules-1.0.0.15-r1.ebuild
Here is the ebuild:
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/vmware-modules/vmware-modules-1.0.0.15-r1.ebuild,v 1.4 2007/07/12 06:39:56 mr_bones_ Exp $
KEYWORDS="amd64 x86"
VMWARE_VER="VME_S1B1"
inherit vmware-mod
src_unpack() {
unpack ${A}
modver="1.0.6-91891"
patchver="1.0.6-91891-2.6.27-1"
for mod in ${VMWARE_MODULE_LIST}; do
cd "${S}"
tar -xf "${FILESDIR}"/VMware-server-${mod}-${modver}.tar.bz2
epatch "${FILESDIR}"/VMware-server-${mod}-${patchver}.patch.bz2
cd "${S}"/${mod}-only
EPATCH_SUFFIX="patch"
epatch "${FILESDIR}"/patches
# [[ -d "${FILESDIR}"/patches/${mod} ]] && epatch "${FILESDIR}"/patches/${mod}
convert_to_m "${S}"/${mod}-only/Makefile
done
}
Next you will need to make a new digest:
cd /usr/portage/app-emulation/vmware-modules/
ebuild vmware-modules-1.0.0.15-r1.ebuild digest
emerge -pv vmware-modules
You should be good to go. I have a Gentoo client and Windows client. Both came up after rebooting in to the 2.6.26 kernel.