Ubuntu 8.04 LTS and Ubuntu 7.10, 64-Bit SMP Can Stall When Running, Installing, or Booting on an Intel Host
search cancel

Ubuntu 8.04 LTS and Ubuntu 7.10, 64-Bit SMP Can Stall When Running, Installing, or Booting on an Intel Host

book

Article ID: 329283

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

Ubuntu 8.04 LTS and Ubuntu 7.10, 64-bit SMP guest operating system might take a long time to install (up to two hours with numerous error messages), might stall at boot, or might stall while running on an Intel Host.
When booting, this guest might stall at the following line:

* Loading hardware drivers...
piix4_smbus 0000:00:07.3: Host SMBus controller not enabled!


Resolution

To install and run the Ubuntu 8.04 LTS or Ubuntu 7.10, 64-bit SMP guest operating system successfully, add the clocksource=acpi_pm kernel option:
  1. Boot the operating system from the CD-ROM.

  2. Select Install To The Hard Disk option.

  3. Press F6for Other Options.

    The following line appears:

    Boot options file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz quiet --

  4. Add the clocksource=acpi_pm kernel option as follows:

    Boot options file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz quiet clocksource=acpi_pm --

  5. Press Enter to start the installation.

  6. After the installation is completed and the guest reboots, the GRUB countdown appears, which is set to three seconds by default.
To reboot the Ubuntu 8.04 LTS or Ubuntu 7.10, 64-bit SMP guest operating system successfully, add the clocksource=acpi_pm kernel option:
  1. Press Esc to intercept the GRUB countdown and enter the GRUB menu.

  2. Select the option Ubuntu 8.0.4 LTS (7.10) kernel 2.6.22-14-server and press E to start editing.

  3. Scroll to the kernel /boot/vmlinuz-2.6.22-14-server root=UUID=...... ro quiet splash line.

    The parameters at the end of this line are kernel command-line options.

  4. Press E again to edit this line, and add the clocksource=acpi_pm parameter to the end of the line.

    kernel /boot/vmlinuz-2.6.22-14-server root=UUID=...... ro quiet splash clocksource=acpi_pm

  5. Press Enter to accept the changes.

  6. Press B to boot with the Ubuntu 8.04 LTS (7.10), kernel 2.6.22-14-server and clocksource=acpi_pm parameter.

 

 

After the guest starts, edit the /boot/grub/menu.lst file to make these changes permanent, which will ensure that each time you reboot or run the guest it does not stall:
  1. Log in as root at the command line.

  2. Use the vi editor to edit the /boot/grub/menu.lst file.

    You will see following section in the file:

    title Ubuntu 8.04 LTS(7.10), kernel 2.6.22-14-server
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.22-14-server root=UUID=...... ro quiet splash
    initrd /boot/initrd.img-2.6.22-14-server
    quiet

  3. Add the clocksource=acpi_pm kernel option to the end of the following line:

    kernel /boot/vmlinuz-2.6.22-14 -server root=UUID=...... ro quiet splash

  4. Save the changes.

Additional Information:

Starting with Linux Kernel 2.6.18, the CPU's Time Stamp Counter (TSC) is used to keep time, and when booting sometimes the kernel mis-detects the frequency of this counter. This may result in severe clock drift, which is impossible for ntpd to correct. On some systems it may work well enough to run ntpd, but ntpd gets a slightly different calibration each time you reboot. This may cause a start-up transient when you reboot because the drift file (Purpose of the file is to track clock's error rate and automatically adjust ntp overtime) will be off. The transient may vary from few milliseconds to hours at times; however, this is still far too inaccurate for NTP to correct.

The correct solution is to use the old acpi_pm clock, which is used in earlier kernels. For more information, see Kernel 2.6 Mis-Detecting CPU TSC Frequency.

Concerning other available clocksource parameters in the Linux kernel, you can read about them at the linux.org's website in the Kernel Parameters Document. Look for the keyword clocksource