# /dev/rtc does not have interrupt functions.

## arrummzen

I need interrupt functions in my rtc device. I recently upgraded my kernel from gentoo-2.6.23-r6 to gentoo 2.6.28-r5. After the upgrade I lost interrupt functions. I am on AMD64 and my motherboard is an ASUS DSGC. My current kernel config is the result of doing a make oldconfig on my old config file and accepting the defaults. Grepping .config for RTC shows no change. What must I do to get my interrupts back? 

```

theta linux # hwclock --debug

hwclock from util-linux-ng 2.14.1

Using /dev interface to clock.

Last drift adjustment done at 0 seconds after 1969

Last calibration done at 0 seconds after 1969

Hardware clock is on UTC time

Assuming hardware clock is kept in UTC time.

Waiting for clock tick...

/dev/rtc does not have interrupt functions. Waiting in loop for time from /dev/rtc to change

...got clock tick

Time read from Hardware Clock: 2009/04/28 02:48:44

Hw clock time : 2009/04/28 02:48:44 = 1240886924 seconds since 1969

Mon Apr 27 19:48:44 2009  -0.920876 seconds

```

Thank you for your time,

Arrummzen

----------

## Abraxas

What RTC drivers do you have enabled?

----------

## justinkb

have you done make menuconfig and looked at the rtc options (some new stuff added in .27 iirc)?

----------

## arrummzen

I had

zcat /proc/config.gz | grep RTC

```

CONFIG_HPET_EMULATE_RTC=y

CONFIG_RTC=y

# CONFIG_SND_RTCTIMER is not set

# CONFIG_RTC_CLASS is not set

```

Now I have

zcat /proc/config.gz | grep RTC

```

CONFIG_HPET_EMULATE_RTC=y

CONFIG_RTC_LIB=m

CONFIG_RTC_CLASS=m

# RTC interfaces

CONFIG_RTC_INTF_SYSFS=y

CONFIG_RTC_INTF_PROC=y

CONFIG_RTC_INTF_DEV=y

# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set

# CONFIG_RTC_DRV_TEST is not set

# I2C RTC drivers

# CONFIG_RTC_DRV_DS1307 is not set

# CONFIG_RTC_DRV_DS1374 is not set

# CONFIG_RTC_DRV_DS1672 is not set

# CONFIG_RTC_DRV_MAX6900 is not set

# CONFIG_RTC_DRV_RS5C372 is not set

# CONFIG_RTC_DRV_ISL1208 is not set

# CONFIG_RTC_DRV_X1205 is not set

# CONFIG_RTC_DRV_PCF8563 is not set

# CONFIG_RTC_DRV_PCF8583 is not set

# CONFIG_RTC_DRV_M41T80 is not set

# CONFIG_RTC_DRV_S35390A is not set

# CONFIG_RTC_DRV_FM3130 is not set

# CONFIG_RTC_DRV_RX8581 is not set

# SPI RTC drivers

# Platform RTC drivers

CONFIG_RTC_DRV_CMOS=m

# CONFIG_RTC_DRV_DS1286 is not set

# CONFIG_RTC_DRV_DS1511 is not set

# CONFIG_RTC_DRV_DS1553 is not set

# CONFIG_RTC_DRV_DS1742 is not set

# CONFIG_RTC_DRV_STK17TA8 is not set

# CONFIG_RTC_DRV_M48T86 is not set

# CONFIG_RTC_DRV_M48T35 is not set

# CONFIG_RTC_DRV_M48T59 is not set

# CONFIG_RTC_DRV_BQ4802 is not set

# CONFIG_RTC_DRV_V3020 is not set

# on-CPU RTC drivers

```

Maybe someone with working rtc interrupt functions could post a copy of their zcat /proc/config.gz | grep RTC?

I know I need some kind of option set in the kernel, I just can't figure out which one.

Thank you for your time,

Arrummzen

----------

## abienkow

 *Quote:*   

> 
> 
> ```
> CONFIG_RTC_DRV_CMOS=m 
> ```
> ...

 

This is the major change that happend between 2.6.23 and 2.6.27 I believe, I had a similar problem.

Are you loading this module at startup?

try 

```
lsmod | grep -i rtc
```

rtc_cmos is the module that should show up loaded or make this build-in module

----------

## arrummzen

I was already loading the rtc_cmos module. 

```

arrummzen@theta ~ $ lsmod | grep rtc

rtc_cmos               12824  0 

rtc_core               18500  1 rtc_cmos

rtc_lib                 4736  1 rtc_core

```

I think perhaps gentoo's /dev is bugged. /usr/src/linux/Documentation/rtc.txt says that /dev/rtc should be a character device (major 10, minor 135) but gentoo put 

```

lrwxrwxrwx 1 root root 4 Apr 28 16:33 /dev/rtc -> rtc0

crw-r--r-- 1 root root 251, 0 Apr 28 16:33 /dev/rtc0

```

Is this what you have in /dev? 

I note that gentoo's /dev/rtc and /dev/rtc0 do not have the node values that the kernel documentation specifies. Why?

Thank you for your time,

Arrummzen

----------

