Ich habe das in https://www.forum-raspberrypi.de/Thread-ds3231-…ighlight=ds3231 erwähnte Modul mal auch bei einem Jessie-PI in Betrieb genommen.
Dabei bin ich hauptsächlich nach
nachdem das Modul aufgesteckt und in der "/boot/config.txt" die I²C-Schnittstelle aktiviert wurde
wird die Datei "/etc/conf.d/rtc-i2c" erstellt. (Das Verzeichnis /etc/conf.d muss noch erstellt werden)
# /etc/conf.d/rtc-i2c
#
# My chip is actually a ds3231n, but ds1307 driver works fine (ds3232 does not!)
#
CHIP="ds1307"
ADDRESS="0x68"
BUS="1"
In die Datei "/etc/modules-load.d/rtc-i2c.conf" kommt
Dann werden zwei Dateien in "/etc/udev/rules.d" erstellt
# /etc/udev/rules.d/50-rtc-i2c.rules
#
#
#I2C hardware device driver
ACTION=="add", KERNEL=="i2c_bcm2708", SUBSYSTEM=="module", TAG+="systemd"
und
# /etc/udev/rules.d/60-i2c_start.rules
#
#
#I2C hardware device driver
ACTION=="add", SUBSYSTEM=="rtc", ATTRS{hctosys}=="0", RUN+="/usr/bin/hwclock -s --utc"
Als nächsten kommt die Datei "/lib/systemd/system/rtc-i2c.service" dran
# /lib/systemd/system/rtc-i2c.service
[Unit]
Description=Initialize i2c hardware RTC device driver
DefaultDependencies=no
Requires=systemd-modules-load.service
After=systemd-modules-load.service
Before=sysvinit.target
ConditionPathExists=/sys/class/i2c-adapter
Conflicts=shutdown.target
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/rtc-i2c
ExecStart=/bin/sh -c "echo ${CHIP} ${ADDRESS} > /sys/class/i2c-adapter/i2c-${BUS}/new_device"
[Install]
WantedBy=sysinit.target
Alles anzeigen
Jetzt kann man mit "systemctl enable rtc-i2c.service" den systemd-Dienst starten.
Nicht vergessen, das Paket "fake-hwclock" zu deinstallieren und die Datei "/etc/adjtime" zu löschen.
Nach einen Neustart (wenn man das Modul schon drauf hat) oder runterfahren, aufstecken und neustarten
sollte alles laufen.
root@raspberry:~# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@raspberry:~#
root@raspberry:~# systemctl status rtc-i2c.service
● rtc-i2c.service - Initialize i2c hardware RTC device driver
Loaded: loaded (/lib/systemd/system/rtc-i2c.service; enabled)
Active: active (exited) since Do 1970-01-01 01:00:07 CET; 45 years 10 months ago
Process: 138 ExecStart=/bin/sh -c echo ${CHIP} ${ADDRESS} > /sys/class/i2c-adapter/i2c-${BUS}/new_device (code=exited, status=0/SUCCESS)
Main PID: 138 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/rtc-i2c.service
Jan 01 01:00:07 hotspot systemd[1]: Started Initialize i2c hardware RTC device driver.
root@raspberry:~#
Alles anzeigen
Wie man sieht, hat die Uhr die I²C-Adresse 0x68 und wurde initialisiert. Weitere I²C-Geräte kann man natürlich weiterhin betreiben. Wem das Modul, das ich genannte habe, nicht gefällt, kann, mit etwas basteln, z.B. auch http://www.raspberrypi-spy.co.uk/wp-content/upl…01-1024x683.jpg nehmen. Es müssen hier dann aber einige Widerstände http://www.raspberrypi-spy.co.uk/wp-content/upl…5/ds3231_02.jpg entfernt werden. Man kann auch bei dem von mir genannten den Stecker entfernen und dafür Leitungen einlöten.
Ein Problem ist nur die Batterie auf dem Modul. Die ist recht klein und gelötet.
Berichten im Internet nach hält sie nur ein Jahr
Wenn man Platz hat, sollte man Die Batterie durch einen Halter für eine CR2032 ersetzten.
Die hält ersten länger und ist zweitens leichter zu wechseln.
(Da die Befehle als 'root' abgesetzt werden müssen, bin ich nach dem Anmelden gleich mit "sudo su-" root geworden.)