CONFIG_RTC_SYSTOHC: 커널에서 NTP 동기화 옵션을 사용하는 방법

CONFIG_RTC_SYSTOHC: 커널에서 NTP 동기화 옵션을 사용하는 방법

커널 3.10에 다음과 같은 옵션이 있다는 것을 알았습니다.CONFIG_RTC_SYSTOHC

Device Drivers -> RTC -> Set the RTC time based on NTP synchronization

도움말은 다음과 같이 말합니다.

If you say yes here, the system time (wall clock) will be stored
in the RTC specified by RTC_HCTOSYS_DEVICE approximately every 11
minutes if userspace reports synchronized NTP status.

이 기능을 사용하는 방법을 이해하지 못합니다. 이는 시간을 동기화하는 데 더 이상 사용자 공간 도구( )가 필요하지 않다는 뜻인가요 ntpdate? 이것이 를 사용하는 것과 어떻게 다릅니까 ntpdate? 사용할 NTP 서버를 어디에서 지정합니까?

누군가 이것을 명확히 할 수 있습니까?

답변1

Linux는 하드웨어 시계(RTC라고도 함)에 관계없이 내부적으로 시간을 저장합니다. 이는 시스템이 실행 중일 때 한 번 date(Linux 시계) 표시되고 실행 중일 때 다른 시간 hwclock(하드웨어 시계)이 표시될 수 있음을 의미합니다.

일반적으로 컴퓨터가 부팅될 때 hwclock -hctosys( .ntpdhwclock -systohc

이제 시스템이 정지되거나 예기치 않게 재부팅되면 어떻게 됩니까? 시계가 하드웨어와 동기화되지 않습니다. 다음에 부팅할 때 하드웨어 시계가 정확하지 않기 때문에 시계 오차가 클 수 있습니다. 다음 번에는 "시스템을 ntpdate이전처럼 부팅 해야 합니다 ntpd. 그렇지 않으면 ntpd시간이 동기화되지 않을 수 있기 때문입니다. 왜냐하면 현재 시계와 실제 시간 사이의 차이가 너무 크기 때문입니다." 이 접근 방식의 문제점은... 자체적으로 동기화되지 않은 머신과 동기화하면 ntp어떻게 됩니까 ? 그러면 정확한 시간을 알 수 없게 됩니다.

따라서 이 모든 것을 피하려면 유지하는 것이 좋습니다.옳은시간은 항상 하드웨어와 동기화됩니다. 당신이 요구하는 커널 옵션은 시간이 실제로 NTP와 동기화되어 있는지 확인하는 것입니다(알 수 있는 방법이 있습니다...). 그렇다면 해당 시간(시스템 시간이라고도 함)을 Linux 시간에서 주기적으로 동기화합니다. 하드웨어 시계이므로 갑작스러운 시스템 충돌을 포함하여 항상 매우 정확합니다.

관련 정보