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.

2006-04-07

Giving up: FC4 isn't good enough on Dell Latitude D610

Configuring Fedora Core 4 on the Dell Latitude D610 was simply too time consuming, and many things were too difficult. The last straw was when I needed to give a presentation to a prospective customer. I jumped through the right hoops to get an X server running at the right resolution and scan rate for the projector, but the presentation went poorly because I spent that time fussing with X instead of preparing for the presentation.

I wiped FC4 and installed Windows XP. Now everything just works, including the things that FC4 couldn't do well:

  • Microsoft Exchange client: Evolution is almost, but not quite, an adequate Exchange client. Outlook is just better.

  • WiFi: It just works. I need this when I'm traveling and the only available network is wireless.

  • Toggle external display: Press the right button combination, and it just works. This is important. With X, I could send the display to a projector or to the built-in LCD screen, but not to both simultaneously.

  • PocketPC sync: ActiveSync just works. Despite valiant efforts, I couldn't get synce and Evolution to do it.

  • Suspend/resume: This is required for a portable computer. With Windows, it just works. FC4 could suspend like a champ, but it couldn't resume properly.

  • VPN: The Cisco VPN client just works. This is another thing I need when I'm away from the office.

As much as I would prefer to have Fedora Core as my PC's OS, it just doesn't cut it on the D610. Windows simply works better on this hardware. I now run FC5 as a VMWare guest OS, and it's almost as good as the real thing.

LinkWithin

Related Posts with Thumbnails