커널 시계가 1시간에 30초 늦게 갑니다. 의견 부탁드립니다.
글쓴이: lland76 / 작성시간: 수, 2009/12/30 - 12:30오전
PPC cpu 에 linux 2.6.x 커널을 사용합니다.
그런데 1시간에 30초 정도 늦게 시계가 가네요. (커널 시간)
외부 RTC 는 정상적으로 동작을 하고 있습니다.
1시간에 한번씩 rtc 시간값을 커널에 반영을 하긴하는데
1시간에 30초 오차면 시스템에 문제가 있는것 같아서요..
H/W 적인 문제인지 S/W 적으로 세팅 문제인지
감이 잡히지 않네요.
의견 부탁드립니다.
감사합니다.
Forums:


저도 예전에 이런 문제로 고민했던 적이 있었는데...
몇년전에 작업했던 내용이라 정확하게 알려드릴수 없지만 참고정도만 하세요.
말씀 드리는건 AU1200기준으로 작업했던 내용입니다. 어차피 코어 안에 들어가면 파일들은 거이 비슷하게 존재하리라 생각합니다.
RTC는 arch/mips/au1200/common/time.c 에 포함되어 있습니다
리눅스에서는 타임을 기준시간부터의 현재시간까지 초단위 32비트값으로 가지고 있습니다
이것을 시간으로 변환 사용합니다 (mktime() 등 time.h 참조)
AU1200의 커널의 경우 rtc(초당 32768)및 toy(초당 1) 를 사용합니다
rtctrim 을 32767 이므로 리눅스부팅전 재설정 하시기 바랍니다.
void timer_setup (void)
{
int val;
val = readl(gpio2_dir);
val |= (0x1 << 12);
writel(val,gpio2_dir);
writel(32768,sys_rtctrim);
// writel(32767,sys_rtctrim);
writel(0, sys_toywrite);
writel(326, sys_toytrim);
writel(0x1<<8,sys_cntrctrl);
cpuIrqEnable(IRQ_TOY_TICK, INT_RISING_EDGE, (void *)time_isr, 0);
} */
// writel(32767,sys_rtctrim); 주석처리된 rtc값 32767의 값을 변경해서 오차를 수정했던적이 있었습니다.
저는 이문제까지는 해결했었는데 마지막에 부팅시 1초가 빨라지는 문제가 있었는데 그건 시간이 없어서 수정을 못했었네요.
좋은 결과 있길 바라겠습니다...^^