Raspberry Pi mit Real-Time-Clock DS3231 aufrüsten
Im Handel gibt es ein fertiges Uhrenmodul, RTC DS3231. Die Pin-Belegung passt exakt auf die GPIO-Schnittstelle des Raspberry Pi. Der passende Treiber ist bereits vorhanden. Die zur Installation nötigen Schritte sind in ein paar Minuten erledigt.
I2C-Treiber aktivieren
Mit raspi-config
können wir das Laden der I2C-Treiber einschalten: Dazu wählen Sie Advanced Options | <A7 I2C und aktivieren dann alle Punkte. Nach dem Neustart des Rechners sollten die entsprechenden Treiber geladen sein.
pi@raspberry:~$ sudo raspi-config
Module laden
Damit die Module i2c-bcm2708
und i2c_dev
geladen werden, tragen wir diese in die Datei /etc/modules
ein.
pi@raspberry:~$ sudo vi /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
i2c-bcm2708
i2c_dev
I2C-Tools installieren
Nun installieren wir I2C-Tools und starten das System danach neu.
pi@raspberry:~$ sudo apt-get update && sudo apt-get install i2c-tools
Nach dem Neustart überprüfen wir mit folgendem Befehl, ob das Uhrenmodul geladen und am I2C-Bus angemeldet ist.
pi@raspberry:~$ sudo i2cdetect -y 1
Diese Ausgabe nutzen wir nun, um das System entsprechend zu konfigurieren. Mit folgendem Befehl definiert, dass am I2C-Bus unter der Adresse 0x68h
ein Gerät, in diesem Fall das DS3231-Modul, angeschlossen ist.
pi@raspberry:~$ sudo echo ds3231 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device
Damit nach einem Neustart das Gerät wieder erstellt und geladen ist, tragen wir folgendes in der Datei /etc/rc.local
vor exit 0 ein.
pi@raspberry:~$ sudo vi /etc/rc.local
....
# create DS3231 device
echo ds3231 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
# syncronize ntp time and set hwclock
ntpd -4 -gq && hwclock -w
exit 0
Der zweite Befehl der mit ntpd
anfängt, aktualisiert die Netzwerk Zeit und aktualisiert danach die Hardware Zeit.
Falls die Systemzeit nicht stimmen sollte, stellen Sie diese mit sudo date -s "Oct 2 2022 17:28:00"
zuerst einmal ein, bevor Sie wiederum die Hardware-Uhr mit dieser abgleichen.
Als nächstes starten wir den Raspberry neu, damit das rtc Modul geladen wird. Mit folgendem Befehl können wir anzeigen lassen, ob das Modul ordnungsgemäß geladen wurde. Dies erkennen wir an dem UU
, satt der vorherigen 68
.
pi@raspberry:~$ sudo i2cdetect -y 1
Aufräumen
Haben Sie alles eingerichtet, schalten Sie die softwarebasierte Uhr und die Verbindung zum NTP-Dienst ab Diese Änderungen wirken allerdings erst nach dem nächsten Reboot.
pi@raspberry:~$ sudo update-rc.d ntp disable
pi@raspberry:~$ sudo update-rc.d fake-hwclock disable