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:
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 linuxIdentify the current kernel version:
$ uname -r
2.6.16-1.2080_FC5Download the
kernel-*.src.rpmfrom http://download.fedora.redhat.com/pub/fedora/linux/core/updates/5/SRPMS/.Install
kernel-*.src.rpm:$ sudo rpm -i kernel-2.6.16-1.2080_FC5.src.rpm
Prepare the kernel sources:
$ cd /usr/src/redhat/SPECS
$ sudo rpmbuild -bp --target=i686 kernel-2.6.specIf you don't have
rpmbuild, you can obtain it via:$ sudo yum install rpm-build
Link
/usr/src/linuxto the new source:$ sudo ln -s /usr/src/redhat/BUILD/kernel-2.6.16/linux-2.6.16.i686 /usr/src/linux
Name the kernel. Edit
Makefileand change the value ofEXTRAVERSION:$ cd /usr/src/linux
$ sudo emacs MakefileI set mine like this:
EXTRAVERSION = -1.2080_FC5
Prepare the kernel modules:
$ sudo make oldconfig
$ sudo make modules_prepareEdit
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;Build the VMWare tools:
$ sudo vmware-config-tools.pl
This time, vmware-config-tools.pl succeeds, and all is well.