# [SOLVED] VMware Player Real Time Clock

## NTICompass

When I try to run an OS on Vmware Player 3.1, I get the following error:

"The host high-resolution timer device (/dev/rtc) is not available (Inappropriate ioctl for device). Without this device, the guest operating system can fail to keep time correctly. For more information, see http://www.vmware.com/info?id=34." 

In /var/log/messages, I get this:

Jun  5 17:33:17 Hypercube kernel: /dev/vmmon[6268]: /dev/rtc enable interrupt failed: -25

What is wrong?  I am running VMware player on Gentoo 64-bit, 2.6.32 kernel.Last edited by NTICompass on Fri Jun 11, 2010 9:11 pm; edited 1 time in total

----------

## BradN

Probably what you need to do is alter your host kernel config to enable high resolution timer support (I think they use HPET as an acronym, high precision event timer) - I'm not at a machine with kernel sources available at the moment so I can't help you more specifically, but probably someone reading this can post where the relevant settings are.

----------

## NTICompass

I am running kernel version 2.6.32-gentoo-r7 (64-bit).  I have these settings in my kernel config set:

```

Processor type and features->

    [*] Tickless System (Dynamic Ticks)

    [*] High Resolution Timer Support

    Timer frequency (250Hz)  <- I have a quad core system (250Hz * 4 = 1000Hz)

Device drivers ->

    Character devices ->

        <*> Enhanced Real Time Clock Support (legacy PC RTC driver)

        [*] HPET - High Precision Event Timer

            [*] Allow mmap of HPET

```

----------

## cach0rr0

can you post:

```

zgrep RTC /proc/config.gz

```

from your host OS

mainly curious about the state of:

```

CONFIG_RTC_DRV_CMOS

```

----------

## NTICompass

```

nticompass@Hypercube ~ % zgrep RTC /proc/config.gz 

CONFIG_HPET_EMULATE_RTC=y

CONFIG_RTC=y

# CONFIG_SND_RTCTIMER is not set

# CONFIG_RTC_CLASS is not set

```

Hmmmm, CONFIG_RTC_DRV_CMOS isn't there.

----------

## cach0rr0

let me look on a newer kernel, that was 2.6.29 (sorry about that)

hold...will edit this post in a tick...

edit 1 -

see if you have these ticked beneath Device Driver=>Real Time Clock

```

[*]   /sys/class/rtc/rtcN (sysfs)

[*]   /proc/driver/rtc (procfs for rtc0)

-*-   /dev/rtcN (character devices) 

```

edit 2 -

mine:

```

# zgrep ^CONFIG.*RTC /proc/config.gz 

CONFIG_HPET_EMULATE_RTC=y

CONFIG_RTC_LIB=y

CONFIG_RTC_CLASS=y

CONFIG_RTC_INTF_SYSFS=y

CONFIG_RTC_INTF_PROC=y

CONFIG_RTC_INTF_DEV=y

CONFIG_RTC_DRV_CMOS=y

```

edit 3 -

I think this is the one we're missing

```

CONFIG_RTC_INTF_DEV:

  │ Say yes here if you want to use your RTCs using the /dev

  │ interfaces, which "udev" sets up as /dev/rtc0 through

  │ /dev/rtcN.

  │               

  │ You may want to set up a symbolic link so one of these

  │ can be accessed as /dev/rtc, which is a name

  │ expected by "hwclock" and some other programs. Recent

  │ versions of "udev" are known to set up the symlink for you.

  │

  │ If unsure, say Y.

```

the second part is especially relevant. This option should be enabled, and if using udev, /dev/rtc should exist.

(NOTE: after comparing the two, this setting was identical for 2.6.29 and 2.6.32 - so I suspect I have these options available because of what I have ticked in edit #1)

----------

## NTICompass

Device Driver=>Real Time Clock wasn't checked... odd.  I checked it, and am currently recompiling the kernel (with all those options selected).  Let's see what happens.

----------

## NTICompass

Thanks, cach0rr0.  It's working correctly now!

----------

## cach0rr0

no prob. I only get things right 1 out of 10 times, so I'm always quite glad to hear when I do!  :Laughing: 

----------

