El reloj de Windows XP se configuró incorrectamente después de reanudar la suspensión

2

Arranco dual Linux y Windows XP en mi computadora portátil. Agregué la siguiente clave de registro en XP para admitir Universal Time desde el BIOS:

HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal

El reloj está configurado correctamente cuando inicio XP, pero si la máquina se despierta, el reloj está apagado un par de horas.

¿Hay alguna manera de que XP use la configuración de hora universal correctamente durante la activación? Si no es así, ¿puedo evitar que XP configure el reloj para reanudar?

lajos
fuente

Respuestas:

5

Supongo que Windows de alguna manera se comporta mal al despertar del sueño con respecto a la hora del sistema. De acuerdo con un artículo de Wikipedia, la clave de registro que está citando no funciona completamente, incluso en versiones recientes de Windows:

Windows espera que el reloj de la computadora en tiempo real se ejecute a la hora local. Desde Windows NT ha habido una entrada de registro RealTimeIsUniversal = 1, pero esta característica aún no es compatible o no está completamente implementada (incluida Vista), por lo que no es posible ejecutar el reloj en tiempo real en Tiempo Universal Coordinado.

Creo que su mejor apuesta aquí sería decirle a Linux que el reloj del sistema se ejecuta en hora local y morder la bala dos veces al año con DST.

ETA: Este artículo detalla un poco más el problema y también sugiere el hecho de que los problemas con esa clave de registro se arreglan en Vista SP2 y Windows 7:

2001-07-09:Recibí una respuesta de alguien en el Equipo Base Kernel de Microsoft que se interesó en RealTimeIsUniversal y echaron un vistazo a las partes relevantes del código fuente del kernel NT. El indicador RealTimeIsUniversal está allí (un resto de los días en que NT todavía se ejecutaba en máquinas RISC con UTC RTC), pero su implementación ahora parece incompleta y actualmente no está cubierta por la documentación de Microsoft y el conjunto de pruebas de regresión, por lo tanto, no se recomienda su uso en esta vez. Se han identificado un par de posibles errores de RealTimeIsUniversal en los últimos días, podría haber más. Por ejemplo, el depurador del kernel supone que la hora CMOS es la hora local y que la hora será incorrecta cuando RealTimeIsUniversal = 1.

31-10-2008: ¡Hurra! Alguien de la División de Sistemas Operativos Core de Microsoft me insinúa un correo electrónico que tanto Vista SP2 como Windows 7 solucionarán los problemas en el soporte RealTimeIsUniversal = 1 que han hecho que ejecutar el reloj CMOS en UTC hasta ahora no sea práctico con Windows (es decir, el tiempo estaba mal después de reanudar un Windows suspendido / hibernando). Sin embargo, advierte que este soporte mejorado para UTC en el reloj CMOS puede no estar inmediatamente documentado ampliamente y los detalles pueden cambiar en el futuro.

Entonces, concluyendo, creo que tienes dos opciones:

  1. Actualice a un sistema operativo reciente.
  2. Cambie Linux a la hora local.

PD: Al contrario de otros carteles aquí, esta no puede ser la batería CMOS. El reloj en tiempo real no funciona con la batería mientras el sistema tenga energía. Esto incluye el modo de suspensión (obviamente). En caso de que la batería CMOS esté agotada, el reloj en tiempo real se restablecería a su configuración de fábrica, que generalmente es el 1 de enero hace unos años. Un par de horas de compensación simplemente no sucede, ya que no hay un "estado" de reloj que sobreviva a una pérdida de energía completa. No es como un reloj de pared con una batería escamosa que retiene su tiempo incluso cuando la batería está agotada.

Joey
fuente
2

Si el momento es correcto cuando arranca (porque se está sincronizando), y es correcto siempre que Windows esté allí para avanzar, pero no avanza cuando Windows está dormido, entonces lo más probable es que deba verificar la batería CMOS.

harrymc
fuente
Si la batería CMOS está agotada, entonces el reloj se reinicia a sí mismo. Sin embargo, esto solo sucedería si cortara la alimentación de la computadora.
Joey el
En mi humilde opinión, Windows no olvida la hora actual cuando está dormido. El reloj de hardware simplemente no avanza. Estás confundiendo el sueño con el reinicio.
harrymc
El reloj de hardware avanza solo, siempre que tenga energía. Esto no es algo que hace el sistema operativo. Windows, sin embargo, se basa en el RTC solo al inicio y, de todos modos, mantiene el tiempo. Por lo tanto, cada vez que el RTC y el cronometraje de Windows no estén sincronizados (inicio, activación del modo de suspensión / hibernación), debe actualizar su propio reloj. Y ahí es donde yacen los insectos; Vea el artículo que vinculé en mi respuesta.
Joey el
2

No suena como la batería CMOS, ya que generalmente restablece el tiempo a una fecha fija en lugar de estar "apagado un par de horas".

Otra solución temporal es instalar algo como Atomic Clock Sync y configurarlo en "Sincronización automática diaria". Esto hará que el reloj vuelva a estar en línea.

ChrisF
fuente