2006-04-11

Fedora Core 5 under VMWare 5.5

I gave up on Fedora Core as the base OS on my laptop, but I still need to use Linux for development work. I now am running Fedora Core 5 as a guest OS under VMWare. This works pretty well.

SpeedStep

According to cygwin, the laptop's CPU is:

$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
type : primary processor
cpu family : 6
model : 13
model name : Intel(R) Pentium(R) M processor 2.13GHz
stepping : 8
brand id : 6
cpu count : 0
apic id : 0
cpu MHz : 2128
fpu : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clfl dtes acpi mmx fxsr sse sse2 ss tmi pbe tm2 est

This CPU implements SpeedStep. Its maximum speed is 2.128 GHz, but it usually runs at a lower frequency.

The FC5 guest paused every few seconds, making it virtually unusable. It turns out that this is a known problem with VMWare guests running on SpeedStep-enabled hosts. To solve the problem, I added the following lines to file c:/Documents and Settings/All Users/Application Data/VMware/VMware Workstation/config.ini:

host.cpukHz = 2128000
host.noTSC = TRUE
ptsc.noTSC = TRUE

Now it still pauses ocassionally, but it's completely usable.

vmware-config-tools.pl

The VMWare kernel module is required to get full use of the FC5 guest. Unfortunately, Fedore Core's kernel doesn't match its kernel header files:

$ uname -a
Linux foo 2.6.16-1.2080_FC5 #1 Tue Mar 28 03:38:34 EST 2006 i686 i686
i386 GNU/Linux
$ sudo vmware-config-tools.pl

Stopping VMware Tools services in the virtual machine:
Guest operating system daemon: [ OK ]
Guest filesystem driver: [ OK ]
Trying to find a suitable vmhgfs module for your running kernel.

None of the pre-built vmhgfs modules for VMware Tools is suitable for your running kernel. Do you want this program to try to build the vmhgfs module for your system (you need to have a C compiler installed on your system)? [yes]

Using compiler "/usr/bin/gcc". Use environment variable CC to override.

What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include] /usr/src/kernels/2.6.16-1.2080_FC5-i686/include
The kernel defined by this directory of header files does not have the same address space size as your running kernel.

What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include]

It is possible to build the VMWare kernel module without building a kernel from source. Using Red Hat's release notes, a kernel thread on the VMWare forum, and a vmware-config-tools.pl thread on the VMWare forum, I follow these steps:

  1. Clean up stuff from old kernels:

    $ cd /usr/src/redhat/SOURCES
    $ rm -f kernel*
    $ rm -f linux*
    $ rm -f patch*
    $ cd ../SPECS
    $ rm kernel-2.6.spec
    $ cd /usr/src
    $ rm linux
  2. Identify the current kernel version:

    $ uname -r
    2.6.16-1.2080_FC5
  3. Download the kernel-*.src.rpm from http://download.fedora.redhat.com/pub/fedora/linux/core/updates/5/SRPMS/.

  4. Install kernel-*.src.rpm:

    $ sudo rpm -i kernel-2.6.16-1.2080_FC5.src.rpm
  5. Prepare the kernel sources:

    $ cd /usr/src/redhat/SPECS
    $ sudo rpmbuild -bp --target=i686 kernel-2.6.spec

    If you don't have rpmbuild, you can obtain it via:

    $ sudo yum install rpm-build
  6. Link /usr/src/linux to the new source:

    $ sudo ln -s /usr/src/redhat/BUILD/kernel-2.6.16/linux-2.6.16.i686 /usr/src/linux
  7. Name the kernel. Edit Makefile and change the value of EXTRAVERSION:

    $ cd /usr/src/linux
    $ sudo emacs Makefile

    I set mine like this:

    EXTRAVERSION = -1.2080_FC5
  8. Prepare the kernel modules:

    $ sudo make oldconfig
    $ sudo make modules_prepare
  9. Edit vmware-config-tools.pl:

    $ sudo emacs /usr/bin/vmware-config-tools.pl

    Replace these broken lines:

      $header_page_offset =~ s/^$pattern \(?0x([0-9a-fA-F]{8,}).*$/$1/;
    if ($header_page_offset =~ /[0-9a-fA-F]{8,}/) {

    with these fixed ones:

      if ($header_page_offset =~ /^$pattern (\?0x([0-9a-fA-F]{8,}))/) {
    $header_page_offset = $1;
  10. Build the VMWare tools:

    $ sudo vmware-config-tools.pl

This time, vmware-config-tools.pl succeeds, and all is well.

No comments:

LinkWithin

Related Posts with Thumbnails