Esta pagina se ve mejor con JavaScript habilitado

Añadir RTC a la RaspberryPi

 ·  🎃 kr0m

Para que nuestro RTC funcione tendremos que parchear las fuentes del kernel para añadir soporte para PCF2127A y compilar con soporte para I2C, yo recomiendo seguir  los pasos explicados en este artículo anterior donde se compilaba el kernel en un pc basado en x86 ya que será mucho mas rápido que compilar el kernel en la propia rasp.

Procedemos con el parcheo de las fuentes:

cd /usr/src/rpi_kernel/linux
wget https://github.com/afterthoughtsoftware/linux/commit/fd5ff2d88f470ed70ff58393eee61110b181816a.patch
patch -p1 < fd5ff2d88f470ed70ff58393eee61110b181816a.patch

Compilamos el kernel:

make ARCH=arm CROSS_COMPILE=${CCPREFIX} menuconfig

Device Drivers -> I2C support -> I2C Hardware Bus support -> BCM2708 BSC
Device Drivers -> Real Time Clock -> Philips PCF2127A (only I2C)

Debemos indicarle que dirección dentro del bus I2C tiene en RTC(0x51) y que módulo debe gestionarlo:

echo pcf2127a 0x51 > /sys/class/i2c-adapter/i2c-1/new_device

Asignamos la fecha manualmente y la transferimos al RTC:

date MMDDHHMMYYYY
hwclock -w

Si queremos leer la fecha guardad en el RTC basta con:

hwclock -r

Si queremos leer la fecha del RTC y configurar el SO:

hwclock -s

Para que todo funcione correctamente el timezone debe estar configurado de forma correcta:

  • Gentoo:

    cp /usr/share/zoneinfo/Europe/Madrid /etc/localtime
    echo “Europe/Madrid” > /etc/timezone

  • Debian:

    dpkg-reconfigure tzdata

En cada arranque leeremos la fecha del RTC y la configuraremos en el SO:

  • Gentoo:

    vi /etc/local.d/RTC.start

    echo pcf2127a 0x51 > /sys/class/i2c-adapter/i2c-1/new_device
    sleep 2
    hwclock -s &
    
    chmod 700 /etc/local.d/RTC.start
  • Debian:

    vi /etc/rc.local

    echo pcf2127a 0x51 > /sys/class/i2c-adapter/i2c-1/new_device
    sleep 2
    hwclock -s &
    

Ahora aunque apaguemos la rasp y le quitemos la alimentación la fecha no se perderá a no ser que se agote la pila de botón del RTC.

Si te ha gustado el artículo puedes invitarme a un RedBull aquí