This is by way of helping others not to go through the struggle I went 
through on Monday :)

It *can* be done, but it's not exactly intuitive...

First of all, you need the latest VMware (2.0.4) which at least has built 
in base support for SMP 2.4.3. It doesn't have a compatible vmnet module 
though.

You need to:

1. hack bin/vmware-config.pl.

1a. Comment out lines 900 to 913:

 $header_smp = direct_command(shell_string($gHelper{'grep'}) . ' 
CONFIG_SMP ' . shell_string($answer . '/linux/autoconf.h'));
 if (not ($header_smp eq '')) {
   [...]
 }

This is because VMware's SMP detection as supplied doesn't match Mandrake.

1b. This may not be necessary, but I did it as part of earlier thrashing 
around and it certainly does no harm; after line 1241 (ie. after the 
foreach loop) in routine build_module add the line:

    $gHelper{gcc}='kgcc';

so VMware builds use the same compiler as kernel builds.

2. Untar vmnet.tar in lib/modules/source and, in the vmnet-only 
subdirectory:

2a. Edit Makefile, uncomment the "SUPPORT_SMP=1" line and possibly (see 
1b.), change "CC = gcc" to "CC = kgcc".

2b. Edit vnetInt.h and insert before line 26 (#  ifdef skb_shinfo) the 
following:

# ifndef skb_datarefp
#  define skb_datarefp(skb) skb_shinfo(skb)
# endif

2c. tar the vmnet-only directory back into vmnet.tar.

3. Kernel rebuild time. Mandrake supply /usr/src/linux configured for 
non-SMP and the vmnet build doesn't like this. In /usr/src/linux:

3a. make distclean
3b. cp /boot/config .config
3c. make oldconfig
3d. make dep
3e. make clean
3f. make bzImage
3g. make modules

Actually, 3e. is almost certainly pointless and I doubt that 3g is 
necessary (and takes an age even on this twin 933 box). Whatever.

4. Finally, you need to edit /usr/src/linux/include/linux/version.h and 
change:

#define UTS_RELEASE "2.4.3-10mdk"

to:

#define UTS_RELEASE "2.4.3-10mdksmp"

'10' above may be '20' or some other value, depending on what flavour of 
Mandrake 8 you're running (I'm still on RC1).

5. After all this, you can do your ./vmware-install.pl and (if you're 
very, very lucky) it will all work as well as it does here.

So there you go... :)

Pete

Reply via email to