Sorry but... how to create the oem.tgz file from the files provided from geobrush?
I tried to build it (using Ubuntu), but it gave me this output:
gcc: vmkdrivers/src26/drivers/net/r8169/r8169.c: Nessun file o directory
gcc: no input files
gcc: vmkdrivers/src26/common/vmklinux_module.c: Nessun file o directory
gcc: no input files
ld: bora/build/scons/build/vmkdriver-r8169.o/release/vmkernel64/SUBDIRS/vmkdrivers/src26/drivers/net/r8169/r8169.o: No such file: No such file or directory
It created the folders bora/build/scons/build/vmkdriver-r8169.o/release/vmkernel64/SUBDIRS/vmkdrivers/src26/drivers/net/r8169
, but they're empty.
To compile this module, you need to have the Open Source Driver tarball from VMWare (obtainable here
untgz the tarball into a directory (preferably not . ) IGNORE THE RPMs.
Do not install them. Do not fiddle with them. They will cause you to go sterile, especially the kernel source.
Go into the directory you extracted the tarball into and find the tgz named vmkdrivers-gpl.tgz. This tarball has the source and includes for ESX(i) 4 modules. Move this tgz file out of the directory and into your ~.
Whack the directory with the RPMs, as you will not need them. Yes, you will not need the kernel source RPM included with the tarballs.
untgz the vmkdrivers-gpl.tgz and wander into the resulting directory.
Now create the path for the module you are trying to compile, for this instance we will need to use mkdir -p vmkdrivers/src26/drivers/net/r8169
Copy the r8169.c file into that directory.
Move the build-vmkdrivers.sh to another filename, build-vmkdrivers.sh-orig or something like that. Copy the included sh file into its place.
Run the build-vmkdrivers.sh. You will see warnings, but hopefully not errors. After the dust settles, you will find the module you need in bora/build/scons/build/vmkdriver-<MODULE>/release/vmkernel64/
Do not go into the SUBDIR folders, these are staging areas for object files related to the module linking. You /will/ find an .o file in there, but as there are other object files required for the module to function properly; you will spend days trying to figure out why the module you carefully cobbled together module turns into post-consumer dinner when you try to load it.
If you do not find a .o file in the above directory, the compile failed. If you do find a .o file in the directory, it compiled. You will have to copy the .o file to an ESX box to test and see if it works.