viernes, 29 de mayo de 2009

Debian Etch: Problemas con hardware clock (Argentina)

Toda esta mañana me ha tomado poder solucionar un problema que a simple vista puede ser de lo MAS TRIVIAL:
Cambiar la hora en un sistema Debian Linux y que quede permanente ese cambio una vez reiniciada la maquina para la zona horaria de ARGENTINA.
Bueno, el problema surgio cuando trate de sincronizar el reloj de las BIOS con el del sistema mediante:

# hwclock --hctosys
Cannot access the Hardware Clock via any known method.
Use the --debug option to see the details of our search for an access method.

Ok! hagamos un debug entonces!

# hwclock --debug
hwclock from util-linux-2.12r
hwclock: Open of /dev/rtc failed, errno=16: Dispositivo o recurso ocupado.
No usable clock interface found.
Cannot access the Hardware Clock via any known method.

Intente muchas cosas que se sugieren en internet, hasta agregarle a la linea del kernel en grub 'noapic nolapic acpi=noacpi acpi=off' sin ningun tipo de exito.

Entonces se me ocurrio sincronizar el reloj del sistema con algun servidor ntp en internet, sabiendo que cuando no haya internet tampoco va a haber sincronizacion.

# ntpdate -d lerc-dns.lerc.nasa.gov
(este server es uno entre tantos que probe...)

Despues de una larga espera en silencio:

29 May 13:38:32 ntpdate[3217]: ntpdate 4.2.2p4@1.1585-o Sun May 10 17:09:17 UTC 2009 (1)
transmit(139.88.35.33)
transmit(139.88.35.33)
transmit(139.88.35.33)
transmit(139.88.35.33)
transmit(139.88.35.33)
139.88.35.33: Server dropped: no data
server 139.88.35.33, port 123
stratum 0, precision 0, leap 00, trust 000
refid [139.88.35.33], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time: 00000000.00000000 Thu, Feb 7 2036 6:28:16.000
originate timestamp: 00000000.00000000 Thu, Feb 7 2036 6:28:16.000
transmit timestamp: cdca63db.2ad9ad85 Fri, May 29 2009 13:38:35.167
filter delay: 0.00000 0.00000 0.00000 0.00000
0.00000 0.00000 0.00000 0.00000
filter offset: 0.000000 0.000000 0.000000 0.000000
0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

29 May 13:38:36 ntpdate[3217]: no server suitable for synchronization found

Asi que buscando informacion se me sugiere que quizas iptables este bloqueando el puerto 123, el cual es el responsable de sincronizar nuestro reloj de sistema con un servidor reloj dedicado.
Bien... la mañana va pasando y ahora se me pide que averigue sobre el tema de iptables...
No me doy por vencido, debe de haber otra forma...
Recuerdo entonces que en /usr/share/zoneinfo estan todas las tablas de uso horario, pero ademas encuentro un enlace llamado localtime, entonces averiguo un poco mas sobre él:

# ls -l /usr/share/zoneinfo/localtime
lrwxrwxrwx 1 root root 14 2009-05-29 11:45 localtime -> /etc/localtime

¡Bien! apunta a /etc. ¿Y si renombro 'localtime'? ¿que sucedera? ¿Debian interpretara que no tiene parametros de hora local y se volvera hora universal?

# mv /etc/localtime /etc/localtime.old
# date
vie may 29 13:59:42 UTC 2009

¡EXCELENTE! ahora esta es la hora que queria queria ver.
Ya que es una solucion medio atada con alambre, pero sinceramente no disponia de tanto tiempo para investigar este problema, que arranca avisando que el dispositivo de bloque /dev/rtc esta ocupado por otro recurso el cual desconozco.

Tambien no me debo de olvidar que en /etc/default/rcS tengo una opcion que dice UTC=yes y que se hablo mucho en los foros como posible solucion cambiarlo a 'no'. No lo he probado. Pero mi problema se ha solucionado.
Gracias por leer!

No hay comentarios:

Publicar un comentario