Relógio do Windows XP configurado incorretamente após sair do modo de suspensão

2

Eu inicializo o Linux e o Windows XP no meu laptop. Eu adicionei a seguinte chave de registro no XP para suportar o Universal Time a partir do BIOS:

HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal

O relógio está ajustado corretamente quando eu inicio o XP, mas se a máquina acordar do sono, o relógio estará desligado por algumas horas.

Existe uma maneira de o XP usar a configuração da Hora Universal corretamente durante o despertar? Se não, posso evitar que o XP ajuste o relógio no recomeço?

    
por lajos 18.10.2009 / 18:46

3 respostas

5

Meu palpite é que o Windows de alguma forma se comporta mal após o despertar do sono em relação à hora do sistema. De acordo com um artigo da Wikipédia , a chave do registro citada não funciona totalmente, mesmo em versões recentes do Windows:

Windows expects the real-time clock of the computer to run on local time. Since Windows NT there has been a registry entry RealTimeIsUniversal=1, but this feature is not supported or fully implemented yet (including Vista), so it is not possible to run the real-time clock on Coordinated Universal Time.

Acho que a sua melhor aposta aqui seria dizer ao Linux que o relógio do sistema é executado na hora local e morder a bala duas vezes por ano com o horário de verão.

ETA: Este artigo detalha o problema um pouco mais e também sugere que os problemas com essa chave de registro foram corrigidos no Vista SP2 e no Windows 7:

2001-07-09: I got a reply from someone in Microsoft's Base Kernel Team who got interested in RealTimeIsUniversal and they had a look at the relevant parts of the NT kernel source code. The RealTimeIsUniversal flag is there (a leftover from the days when NT still ran on RISC machines with UTC RTCs), but its implementation seems now incomplete and it is currently not covered by Microsoft's documentation and regression test suite, therefore using it is not recommended at this time. A couple of potential RealTimeIsUniversal bugs have been identified over the past few days, there might be more. For instance, the kernel debugger assumes that the CMOS time is local time and will get the time wrong when RealTimeIsUniversal=1. There might be a similar problem in the code that resumes processing after the CPU was suspended or in the code that calculates DST change times.

2008-10-31: Hurray! Someone from Microsoft's Core Operating Systems Division hints in an email to me that both Vista SP2 and Windows 7 will fix the problems in the RealTimeIsUniversal=1 support that have made running the CMOS clock in UTC so far not practical with Windows (i.e., the time was wrong after resuming a suspended/hibernating Windows). He warns though that this improved support for UTC in the CMOS clock may not immediately be widely documented and details may change in the future.

Então, concluindo, acho que você tem duas opções:

  1. Atualize para um sistema operacional recente.
  2. Altere o Linux para a hora local.

P.S. Ao contrário de outros cartazes aqui, isso não pode ser a bateria do CMOS. O relógio de tempo real não é alimentado pela bateria desde que o sistema tenha energia. Isso inclui o modo de suspensão (obviamente). Caso a bateria do CMOS esteja inativa, o relógio em tempo real se redefiniria para as configurações de fábrica, o que geralmente é feito em 1º de janeiro alguns anos atrás. Um par de horas compensadas simplesmente não acontece, já que não há um "estado" de relógio que sobreviva a uma perda de energia completa. Não é como um relógio de parede com uma bateria escamosa que retém seu tempo mesmo quando a bateria está morta.

    
por 18.10.2009 / 20:51
2

Se a hora estiver correta quando você inicializar (porque está sendo sincronizado) e estiver correta, contanto que o Windows esteja lá para avancá-lo, mas não avance quando o Windows estiver adormecido, provavelmente você deve verificar a bateria do CMOS .

    
por 18.10.2009 / 18:52
2

Não soa como a bateria do CMOS, pois geralmente redefine o tempo para uma data fixa, em vez de "ficar fora de algumas horas".

Outra solução temporária é instalar algo como Atomic Clock Sync e configurá-lo para "Auto Synchronize Daily". Isso trará o relógio de volta à linha.

    
por 18.10.2009 / 19:41