Corregir hora del fake-hwclock de RaspberryPi

Es probable que te hayas dado cuenta de que la hora del reloj de hardware de Raspberry Pi (hwclock) no es la misma que la del reloj de software (date). Vamos a ver cómo ajustar a hora del reloj de hardware de Raspberry Pi (fake hwclock).

 
corregir hora fake hwclock raspberry
 

Revisando los logs de syslog (var/log/syslog) en la Raspberry, hay algo que me llamó la atención. Se trataba del mensaje de advertencia:
 
“La última hora de montaje del superbloque está en el futuro”.
 


#011(por menos de un día, probablemente debido a que el reloj del hardware está mal puesto).
 



May 3 02:17:51 Rasp systemd-fsck[126]: La última hora de montaje del superbloque está en el futuro.
May 3 02:17:51 Rasp systemd-fsck[126]: #011(por menos de un día, probablemente debido a que el reloj del hardware está mal puesto)

 

corregir hora hwclock raspberry

 

 

Comprobamos el desajuste horario entre el reloj de software y el reloj de gardware (fake-hwclock):



Hacemos un

date

 

y luego un

cat /etc/fake-hwclock.data

 

hora raspberry diferente que hwclock
 

 
Nos percatamos fácilmente de que la hora no es la misma. Parece que la hora del fake-hwclock tiene un desajuste de 2 horas menos que la hora real que nos muestra el reloj por software del sistema (date).
 


 

 
 

La Raspberry Pi no dispone de un reloj en tiempo real (RTC). Por eso existe fake-hwclock; se trata de un script que guarda la hora real y la carga al inicio.
 


Lo que ocurre en este caso es que la hora de fake-hwclock usa la hora universal, mientras que podemos ver que nuestra hora real en este caso es una hora UTC, concretamente CEST, que es el horario de verano de Europa Central.

Lo que podemos hacer es una pequeña trampa al script de fake-hwclock. Le modificaremos un parámetro, para que no use la hora universal.
 
Editamos el fichero /sbin/fake-hwclock:

sudo vi /sbin/fake-hwclock

 
en la línea 30-37 (por ahí …), veremos lo siguiente:

date -u '+%Y-%m-%d %H:%M:%S' > $FILE

 

Pues lo modificamos eliminando el -u,

cambiar hora universal en /sbin/fake-hwclock

 

que significa que usará el tiempo UTC (universal).

date -u | Universal time

 


 

Lo dejamos así:

fake-hwclock | hora no universal

 

Lanzamos el script que recoge la hora y la almacena en el reloj de hardware:

sudo fake-hwclock

 

y volvemos a comprobar la hora y fecha por software y la del reloj de hardware:

date
cat /etc/fake-hwclock.data

 



corregida hora software y hora hardware hwclock raspbery
 


 

 

Y podemos comprobar que la hora por software (date) y la hora de harware (fake-hwclock) ya se encuentran sincronizadas en nuestra Raspberry Pi.