Creative Commons

2006-12-20 14:27:46

Fedora Core 6 as a VMWare Guest OS

A friend of mine had a Windows XP host and couldn't be without Linux. So I recommended installing VMWare and running Linux (specifically, Fedora Core 6) as a guest OS. It shouldn't be too bad. VMWare is rather easy to get working.
It started out fine; VMWare got installed and after some fiddling with ISO's, Fedora was installed. Once Fedora was installed there was a noticable problem, actually, a few. First, the resolution couldn't go above 800x600. Second, the mouse needed to be released by Ctrl+Alt instead of VMWare detecting when it hit the edge and releasing it automatically. The solution, VMWare Tools.
He installed the RPM and ran the config script. Uh oh. It errored out telling him that he didn't have the correct kernel headers for his kernel. I took a peek at the error and noticed something. The error produced two things of interest. First was the kernel headers version we needed for the install and second was the kernel version the script detected us as running. The problem was that the first thing was a variable. Instead of showing us a kernel version, it showed us something like @@VMWARE@@. That caught my eye and I realized that the script was not detecting the kernel version properly. Second was the kernel that we were running, which was "2.6.18-1.2868.fc6." To fix this issue, we vi'd the file and searched for @@VMWARE@@ trying to find how it was set. We eventually determined that the variable $header_version_uts was at fault. It wasn't being set properly. The solution was to manually set this variable. Our file had this variable at line 1919, so we commented it out and set our own. (Note that the version we set is the same name as the directory found in /usr/src/kernels.)
# $header_version_uts = direct_command( # shell_string($gHelper{'echo'}) . ' ' # . shell_string('#include ' . "\n" . $pattern # . ' UTS_RELEASE') . ' | ' . shell_string($gHelper{'gcc'}) # . ' ' . shell_string('-I' . $answer) . ' -E - | ' # . shell_string($gHelper{'grep'}) . ' ' . shell_string($pattern)); $header_version_uts = "2.6.18-1.2868.fc6";
So we ran the config script again and it completed successfully... or so we thought. The mouse still wouldn't auto-release. This time the problem was in xorg.conf. Apparently it didn't get updated with the vmware mouse driver. Instead, it was just using the generic mouse driver. Make your InputDevice section for the mouse look like this (of course keeping any options for z-axis mapping if you have a scroll wheel mouse):
Section "InputDevice" Identifier "Mouse0" Driver "vmmouse" Option "Protocol" "Auto" Option "Device" "/dev/input/mouse0" EndSection
And add this line into the ServerLayout section:
InputDevice "Mouse0" "CorePointer"
After restarting X, everything worked like a charm.


Post a comment!