Si recordáis, hace poco instalé Arch Linux ARM en mi Raspberry Pi y una de las primeras tareas fue cambiar la zona horaria. Sin embargo, al reiniciar el dispositivo, la fecha del sistema siempre arranca en epoch, es decir, el 1 de enero de 1970 (más información en una de nuestras pasadas y apocalípticas entradas). La razón está clara, ¿a qué no has visto ninguna pila en la placa?. Efectivamente, Raspberry Pi no dispone de reloj RTC...
Ahora tenemos tres opciones: 1/ añadir y configurar nuestro propio reloj de sistemas por hardware-reloj, 2/ hacer una "ñapa" por software tipo fake-hwclock (salvar la hora en un fichero y cargarla al inicio) o 3/ ser más precisos e instalar NTP para sincronizar la hora, que es la solución más barata y eficiente si nuestra RPi tiene conexión a red en el arranque. Así que ¡vamos con ello!
Entre ntpd o openntpd (ntpdate está ya discontinuado) me quedo con el primero. Así que empezamos a instalarlo:
Se recomienda usar la opción iburst eya que envía una serie («burst») de paquetes solo si no se puede obtener una conexión con el primer intento:
Para los que todavía añoren systemv/initscripts decirles que systemd es más rápido, modular y seguro, tiene capacidades “hotplug”, lleva un registro (journal) mediante cgroups y paraleliza la activación de daemons mediante sockets entre otras ventajas...
Ahora tenemos tres opciones: 1/ añadir y configurar nuestro propio reloj de sistemas por hardware-reloj, 2/ hacer una "ñapa" por software tipo fake-hwclock (salvar la hora en un fichero y cargarla al inicio) o 3/ ser más precisos e instalar NTP para sincronizar la hora, que es la solución más barata y eficiente si nuestra RPi tiene conexión a red en el arranque. Así que ¡vamos con ello!
Entre ntpd o openntpd (ntpdate está ya discontinuado) me quedo con el primero. Así que empezamos a instalarlo:
[usuario1@pirobot1 rc.d]$ sudo pacman -Sy ntp
[sudo] password for usuario1:
:: Synchronizing package databases...
core 38.6 KiB 86.2K/s 00:00 [#######################################################] 100%
extra 443.9 KiB 227K/s 00:02 [#######################################################] 100%
community 460.5 KiB 280K/s 00:02 [#######################################################] 100%
alarm 6.0 KiB 1057K/s 00:00 [#######################################################] 100%
aur is up to date 0.0 B 0.00B/s 00:00 [-------------------------------------------------------] 0%
resolving dependencies...
looking for inter-conflicts...
Targets (1): ntp-4.2.6.p5-13
Total Download Size: 0.38 MiB
Total Installed Size: 1.46 MiB
Proceed with installation? [Y/n]
:: Retrieving packages from extra...
ntp-4.2.6.p5-13-armv6h 388.3 KiB 182K/s 00:02 [#######################################################] 100%
(1/1) checking package integrity [#######################################################] 100%
(1/1) loading package files [#######################################################] 100%
(1/1) checking for file conflicts [#######################################################] 100%
(1/1) checking available disk space [#######################################################] 100%
(1/1) installing ntp [#######################################################] 100%
Optional dependencies for ntp
libedit: ntpdc, ntpq
A continuación volveremos a seleccionar nuestra zona horaria mediante el comando timedatectl, que lo único que hará es enlazarla (symlink) con /etc/localtime.[usuario1@pirobot1 rc.d]$ sudo timedatectl set-timezone Europe/Madrid
Comprobamos...[usuario1@pirobot1 rc.d]$ sudo timedatectl status
Local time: Tue 2013-02-12 14:07:56 CET
Universal time: Tue 2013-02-12 13:07:56 UTC
Timezone: Europe/Madrid (CET, +0100)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: no
Last DST change: DST ended at
Sun 2012-10-28 02:59:59 CEST
Sun 2012-10-28 02:00:00 CET
Next DST change: DST begins (the clock jumps one hour forward) at
Sun 2013-03-31 01:59:59 CET
Sun 2013-03-31 03:00:00 CEST
Ahora tenemos que modificar el fichero de configuración. Para ello empezamos indicando como servidores NTP una lista de alias que hacen referencia a servidores nacionales. Además de estos servidores, podemos añadir alguno más, que podemos conseguir en la página de servidores NTP públicos (http://www.pool.ntp.org/). Se recomienda usar la opción iburst eya que envía una serie («burst») de paquetes solo si no se puede obtener una conexión con el primer intento:
vi /etc/ntp.conf
[root@pirobot1 ~]# vi /etc/ntp.conf
# With the default settings below, ntpd will only synchronize your clock.
#
# For details, see:
# - the ntp.conf man page
# - http://support.ntp.org/bin/view/Support/GettingStarted
# - https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon
# Associate to public NTP pool servers; see http://www.pool.ntp.org/
server 3.es.pool.ntp.org iburst
server 0.europe.pool.ntp.org iburst
server 2.europe.pool.ntp.org iburst
Ahora como solo queremos sincronizar nuestro reloj del sistema sin atender peticiones externas de otros equipos, aplicamos lo siguiente con el objetivo de denegar dichas peticiones:# Only allow read-only access from localhost
restrict default noquery nopeer
restrict 127.0.0.1
restrict ::1
Después, especificamos la ubicación del archivo drift (que realiza un seguimiento de la desviación del horario del sistema) y, opcionalmente, la ubicación del archivo de registro: # Location of drift file
driftfile /var/lib/ntp/ntp.drift
Posteriormente sincronizamos manualmente la hora:[root@pirobot1 ~]# ntpd -qg
ntpd: time set +1360794632.505991s
[root@pirobot1 ~]# date
Wed Feb 13 23:47:48 CET 2013
Por último, sólo nos queda añadir el daemon al inicio mediante systemctl.Para los que todavía añoren systemv/initscripts decirles que systemd es más rápido, modular y seguro, tiene capacidades “hotplug”, lleva un registro (journal) mediante cgroups y paraleliza la activación de daemons mediante sockets entre otras ventajas...
root@pirobot1 ~]# systemctl enable ntpd
ln -s '/usr/lib/systemd/system/ntpd.service' '/etc/systemd/system/multi-user.target.wants/ntpd.service'
[root@pirobot1 ~]# systemctl start ntpd
Y ya tenemos nuestra Raspberry Pi preparada para estar siempre en hora y lista para empezar a hacer cosas más serias...
Me sale error al utilizar sudo pacman -Sy ntp, me dice que no se encuentra el comando pacman "sudo: pacman: command not found"
ResponderEliminar