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