CONFIG_RTC_SYSTOHC: como usar a opção de sincronização NTP no kernel

3

Eu tenho notado no kernel 3.10, existe uma opção CONFIG_RTC_SYSTOHC

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

A ajuda diz:

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.

Não entendo como posso usar essa função. Isso significa que não preciso mais de ferramentas de espaço de usuário ( ntpdate ) para sincronizar a hora? Como isso é diferente de usar ntpdate ? Onde eu especifico o servidor ntp a ser usado?

Alguém poderia esclarecer?

    
por Martin Vegter 21.08.2013 / 10:05

1 resposta

3

O Linux armazena tempo internamente, independentemente do seu relógio de hardware (também conhecido como RTC). Isso significa que seu sistema pode mostrar uma vez quando você executa date (relógio do Linux) e uma hora diferente quando você executa hwclock (relógio de hardware).

Normalmente, você quer carregar o tempo do hardware para o Linux quando a máquina inicializa (com hwclock -hctosys ), e quando a máquina fica inativa, você quer armazenar seu tempo bastante preciso (você usa ntpd , não é?;)) - de volta ao relógio do hardware, com hwclock -systohc .

Agora, o que acontece se o seu sistema morrer, reinicializar de forma anormal, etc? O relógio não é sincronizado com o hardware. Na próxima inicialização, você pode ter um grande relógio distorcido, porque o relógio do hardware não é tão preciso ... da próxima vez você dirá "Preciso do meu sistema para começar com ntpdate antes de ntpd , porque senão, ntpd pode não sincronizar o tempo, porque o delta no relógio atual e o tempo real é muito grande ". O problema com essa abordagem é ... o que acontece se você sincronizar com uma máquina que por si só não está em sincronia, e então seu ntp nunca terá a hora certa?

Portanto, para evitar tudo isso, é bom manter o tempo correto sincronizado com o hardware em todos os momentos. O que a opção do kernel que você está perguntando parece fazer é observar se o seu tempo está realmente sincronizado com o NTP (há uma maneira de saber disso ...) - e se for - sincronizar essa hora regularmente do tempo do Linux ( também conhecido como System Time), para o relógio de hardware, por isso será muito preciso em todos os momentos, incluindo falhas súbitas do sistema.

    
por 22.08.2013 / 01:25