Quote:
Originally Posted by mrkawphy
The basic of the problem is that when I run the install from the CLI I receive an error stating this
Code:
make[1]: Leaving directory `/usr/src/kernels/2.6.18-1.2869.fc6-i686'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/vmware-config3/vmmon-only'
Unable to make a vmmon module that can be loaded in the running kernel:
insmod: error inserting '/tmp/vmware-config3/vmmon.o': -1 Invalid module format
There is probably a slight difference in the kernel configuration between the
set of C header files you specified and your running kernel. You may want to
rebuild a kernel based on that directory, or specify another directory.
For more information on how to troubleshoot module-related problems, please
visit our Web site at "http://www.vmware.com/download/modules/modules.html" and
"http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html".
Execution aborted.
Now I am aware that The Kernel being used needs to match the devel files as well as the header files. Here is the output from the CLI to reflect I am running matching kernels.
Code:
[root@**** vmware-distrib]# uname -r
2.6.18-1.2869.fc6
[root@**** vmware-distrib]# rpm -qa | grep kernel
kernel-2.6.18-1.2869.fc6
kernel-devel-2.6.18-1.2869.fc6
kernel-headers-2.6.18-1.2869.fc6
As far as I can tell I am runnning all matching kernel files and do not understand how one file can "vary" from the others without the version numbers being different?
|
That does seem logical. You might have something else wrong that gets misinterpreted by the scripts in the makefile.
Quote:
It also mentions I can build my kernel from that folder? If this is a viable option could someone direct me to a location on where I can read up on some resources for such a task?
|
It is a viable option to try and get VMWare to compile.
One of the first things I did when I got FC6 was to download and build my "own" kernel to add certain things that I needed that were not in the "stock" FC6 kernel. Go to kernel.org and download the most current one you can find. The file you are looking for looks like this:
41861968 Oct 25 12:50 linux-2.6.18.1.tar.bz2
(or get a newer one / one with higher version numbers.)
Be sure to get a "stable" one, i. e. one without the letters "rc" in the name, from one of the "stable" directories. "Rc" kernels are release candidates and might not be 100% stable.
Once you have this file, unpack it in /usr/src/kernels on your FC6 installation. These are exactly the steps I used to get my "own" 2.6.18.1 kernel compiled and working on my FC6 install:
1. cd /usr/src/kernels
bunzip2 linux-2.6.18.1.tar.bz2
tar xvf linux-2.6.18.1.tar.bz2
2. Go into the directory and configure the kernel:
cd linux-2.6.18.1
make clean
make mrproper
make xconfig (if you are in the gui, otherwise run
make menuconfig
)
3. In the screen that appears, configure the kernel. This can be a bit tricky, mostly you should be ok if you leave things as they are. If you find, in the eventually resulting kernel, that some things are missing, you need to repeat this step and add them. Basically you need to decide what the kernel you are going to build will contain. If using make xconfig, you can tick an option (tickmark), make it a module (dot) or switch an option off (empty block).
4. Once you have configured the kernel to your satisfaction, save the configuration. This is done differently in menuconfig and xconfig, check the screen to see what to do. (Menuconfig is text based.)
5. Back in the terminal screen from where you started the config program, do the following:
make all
make modules_install
make install
This will compile and install the kernel. In FC6 this also fixes up GRUB automatically and makes the new kernel available for booting.
6. Once you have done the above, the new kernel is available for use. Reboot, and see if you see it in the GRUB list of available kernels to run. DO NOT RUN THE NEW KERNEL YET - just check that is IS, in fact, available to be booted.
7. Boot again into the stock FC6 kernel (the one with FC6 in the name).
(The following steps only 8-22 apply if you are using a vendor-provided Linux driver for your display card - if you are using a stock X Window driver, these steps don't apply - don't do them! If you do not know what I'm talking about here, skip the steps - you are most likely using a stock driver)
8. A problem with compiling your "own" kernel is that a kernel version can only work with its "own" kernel modules. In my case, I have a Nvidia based display card. This requires a kernel module to work correctly with my Linux. Thus, when I compiled my "own" kernel, this module stopped working and I could not get into my GUI.
9. If you are using a NVidia / ATI card that need a kernel module to work, you now need to get the source and compile a new kernel module against your new kernel. I'm going to cover the steps related to the NVidia driver. The current Linux NVidia driver can be downloaded from the NVidia website.
10. Once you have the driver, put it in your home directory.
11. Now we need to tell the system to boot in text mode (not gui mode) under the new kernel, so that, while running the new kernel, you can compile the graphics driver for your display card.
12. Open a terminal and edit /etc/inittab. Be careful! Screwing up here can badly stuff up your system.
13. In the /etc/inittab file, look for a line that says
id:5:Initdefault:
and change this line to
id:3:Initdefault:
MAKE SURE YOU CHANGE THE 5 TO A 3, NOT -ANYTHING- ELSE!
14. Now reboot your machine, and when the GRUB menu comes up, choose the new kernel you compiled yourself.
15. Hopefully it will boot, but instead of getting your graphical login screen, you'll get a text prompt. Login with your root password.
16. Go to the place where you put the Nvidia driver. Execute it:
NVIDIA-Linux-x86-1.0-9631-pkg1.run
17. Follow the prompts that appear, and when the installer asks if it can try and download a kernel interface for your running kernel, say no. When it asks if it can try and compile its own interface, say yes.
18. Hopefully, the driver will now compile by itself. It may ask if it is OK to remove the old driver, say yes. If this does not appear don't worry, it then means you are compiling the driver for the first time.
19. Once the process completes, and you have your terminal prompt back, type
startx
to see if the new driver works. You should now get to a desktop that looks exactly like your "normal" desktop once you have logged in.
20. If you are satisfied the driver works, exit X Windows back to the text terminal.
21. Again edit /etc/inittab and set the 3 in the initdefault line back to 5, in order to get the system to start in graphical mode again.
22. Save the inittab file, reboot, and choose to run your "new" kernel.
NOTE - the "old" kernel is still there and available for use if you have some kind of drastic problem with the new one - simply select it when you boot in GRUB to use it. Note though that your display might not work, since / if you have a kernel-specific driver module. In that case, reverse the procedure above - boot the "new" kernel, reset the runlevel to 3, recompile the driver against the "old" kernel, then set the runlevel back to 5 and reboot.
Also note that the above steps in a similar fashion will need to be done for every "custom" kernel module you use. For example, at a certain stage I had a custom network card driver that I had to compile myself. Each time I compiled a new kernel, I also had to recompile this driver "against" that new kernel to get it work in the "new" kernel.
Once you have done the above, you should be able to try to compile VMWare against the "new" kernel and the "new" kernel's source and header files. Note that you might need to specify the explicit location of the kernel header files to be 100% sure VMWare's ./configure is finding the "right" kernel headers. Try ./configure --help in the VMWare source directory to find out how to specify this. Usually it is something like
./configure --with-kernel-headers=/usr/src/kernels/linux-2.6.18.1
Quote:
I realize this is not a VMware support forum and am not asking for help on how to run or maintain VMware itself. I am looking figure out if there is a way to establish if my kernels are different and if so how can I verify it and possibly revert back to a prev kernel or somehow force them to align with each other. Thanks folks. Please feel free to toss in any questions about info I may be missing. Cheers!
Dan
|
Well, the above should be a precis version of one possible solution to the apparent kernel / kernel source mismatch you are experiencing - by going to a completely different / self-compiled kernel, you should solve the mismatch problem you have...