VMware Communities
apapadop
Contributor
Contributor
Jump to solution

vmware-config-tools.pl detects kernel headers version @@VMWARE@@ UTS_RELEASE

VMware Workstation 6.5.5-build 328052 running on Windows XP.

My Ubuntu 10.10 VM gave me a prompt this morning that the installed VMware tools are out of date. So I started the upgrade process.

Installation appears to go fine upto this point:

The installation of VMware Tools 7.8.8 build-328052 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/vmware-uninstall-tools.pl".

Before running VMware Tools for the first time, you need to configure it by
invoking the following command: "/usr/bin/vmware-config-tools.pl". Do you want
this program to invoke the command for you now? [yes]

I get a lot of warnings of this type:

insserv: warning: script 'K01acpi-support' missing LSB tags and overrides
The script you are attempting to invoke has been converted to an Upstart
job, but lsb-header is not supported for Upstart jobs.
insserv: warning: script 'alsa-mixer-save' missing LSB tags and overrides
insserv: Default-Start undefined, assuming empty start runlevel(s) for script `alsa-mixer-save'
insserv: Default-Stop  undefined, assuming empty stop  runlevel(s) for script `alsa-mixer-save'
The script you are attempting to invoke has been converted to an Upstart
job, but lsb-header is not supported for Upstart jobs.

And then it's time to compile modules:

What is the location of the directory of C header files that match your running
kernel? [/usr/src/linux/include] /usr/src/linux-headers-2.6.35-24-generic/include

The directory of kernel headers (version @@VMWARE@@ UTS_RELEASE) does not match
your running kernel (version 2.6.35-24-generic).  Even if the module were to
compile successfully, it would not load into the running kernel.

For the record:

root@ubuntu:~# uname -a
Linux ubuntu 2.6.35-24-generic #42-Ubuntu SMP Thu Dec 2 01:41:57 UTC 2010 i686 GNU/Linux

So how can the VMware Tools configuration script be instructed to detect the right version of the kernel headers?

Thanks

Alex

0 Kudos
1 Solution

Accepted Solutions
thingy
Enthusiast
Enthusiast
Jump to solution

Hello Alex,

Hopefully the following will assist you in getting a bit further with installing vmware tools on your Linux guest.

# Needed for building kernel modules

sudo apt-get install build-essentials

# Chdir to the correct headers directory wrt to your running kernel

cd /usr/src/linux-headers-`uname -r`/include/linux

# Add the missing utsreleases info into the version.h file

cat ../generated/utsrelease.h >> version.h

# The vmware tools build script also wants access to the autoconf.h file, so setup a symlink

ln -s ../generated/autoconf.h

You can now install VMware tools using: /usr/bin/vmware-config-tools.pl

Note, if some of the modules don't compile, you will need to find a patch for them. Search google and these forums for the patches for vmxnet et al.

regards,

Jinesh

View solution in original post

0 Kudos
3 Replies
thingy
Enthusiast
Enthusiast
Jump to solution

Hello Alex,

Hopefully the following will assist you in getting a bit further with installing vmware tools on your Linux guest.

# Needed for building kernel modules

sudo apt-get install build-essentials

# Chdir to the correct headers directory wrt to your running kernel

cd /usr/src/linux-headers-`uname -r`/include/linux

# Add the missing utsreleases info into the version.h file

cat ../generated/utsrelease.h >> version.h

# The vmware tools build script also wants access to the autoconf.h file, so setup a symlink

ln -s ../generated/autoconf.h

You can now install VMware tools using: /usr/bin/vmware-config-tools.pl

Note, if some of the modules don't compile, you will need to find a patch for them. Search google and these forums for the patches for vmxnet et al.

regards,

Jinesh

0 Kudos
apapadop
Contributor
Contributor
Jump to solution

Thank you Jinesh, this works.

(please note that the build-essentials were already installed - this error message is not related to required software not being there)

With the steps you provided the kernel header version is located correctly and the setup carries on, but as you noted some modules cannot be compiled and need to be skipped, resulting in a flaky vmware tools installation.

Overall, not the smoothest experience - some of this stuff should certainly be automated with a smarter installation script.

Cheers

Alex

0 Kudos
LovesTha
Contributor
Contributor
Jump to solution

# Add the missing utsreleases info into the version.h file

cat ../generated/utsrelease.h >> version.h

This appears to have been outdated now.

Trying to get these to compile against 3.7 I found that the contents of utsrelease.h didn't contain the bits that are needed.

I believe this file is expected to have LINUX_VERSION_CODE and KERNEL_VERSION() defined, something like:

#define LINUX_VERSION_CODE 198400
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 😎 + (c))

So I believe that the current correct version is:

cat ../generated/uapi/linux/version.h

Which got my stuff to compile.

About the same time I noticed this great link in some other thread: https://wiki.archlinux.org/index.php/VMware#3.7_kernels

0 Kudos