Uncategorized

vmare-modules-1.0.0.15-r1 on gentoo-sources-2.6.26-r3 having problems.

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.