Folgende Warnungen sind aufgetreten: | |||||||||||||||
Warning [2] Undefined variable $unreadreports - Line: 34 - File: global.php(961) : eval()'d code PHP 8.2.24 (Linux)
|
[Tutorial] RTC in CarPi einbinden - Druckversion +- RasPiCar Projekt Forum (https://RasPiCarProjekt.de) +-- Forum: Software (https://RasPiCarProjekt.de/forumdisplay.php?fid=4) +--- Forum: Programmierung (https://RasPiCarProjekt.de/forumdisplay.php?fid=18) +--- Thema: [Tutorial] RTC in CarPi einbinden (/showthread.php?tid=1415) |
[Tutorial] RTC in CarPi einbinden - Jack - 24.04.2018 Bekanntermaßen besitzt der Raspberry Pi ja keine eingebaute Echtzeituhr. Normalerweise ist das kein Problem solange der Pi eine Internetverbindung hat und über diese die korrekte Uhrzeit beziehen kann. Doch was tun wenn der Pi in einem Auto verbaut ist und somit eine Internetverbindung garnicht oder nur umständlich herzustellen ist? In diesem Fall ist eine Real Time Clock (RTC) die Lösung! Dieses Tutorial beschreibt wie man ein RTC-Modul unter Raspbian Jessie einbindet. Dazu verwenden wir ein DS3231, das wesentlich genauer arbeitet als ein DS1307. ############################################################################## WARNUNG: Wie immer bei Eingriffen ins System ist es ratsam, vorher ein Backup zu erstellen! ############################################################################## 1. Hardware-Setup: Verbindet das RTC-Modul entsprechend folgendem Schema mit dem Pi: (Anmerkung: Falls schon ein Radio-Modul (SI4703) am Pi angeschlossen ist, dann sind die I2C-Pins (GPIO2 und GPIO3) bereits belegt. Das macht aber überhaupt nichts. Hängt einfach das Modul dazu, der I2C kann damit umgehen.) Nun gehts an’s Eingemachte: 2. Terminal-Fenster öffnen und die /boot/config.txt bearbeiten: Code: sudo nano /boot/config.txt Hier die folgende Zeile einfügen: Code: dtoverlay=i2c-rtc,ds3231 Speichern (CTRL-o und ENTER) und schließen (CTRL-x) 3. Nun müssen die zukünftig nicht mehr gebrauchten Dienste fake-hwclock und ntp beendet werden: Code: sudo systemctl stop hwclock.sh fake-hwclock ntp 4. Neue Datei erstellen Code: sudo nano /etc/systemd/system/hwclock-sync.service und mit folgendem Inhalt versehen: Code: [Unit] 5. Bearbeiten Code: sudo nano /etc/rc.local folgendes vor „exit 0“ einfügen: Code: [ ! -e /var/lib/systemd/clock -a "`systemctl is-active systemd-timesyncd | grep -i active`" ] && timedatectl set-ntp 1 > /dev/null 2>&1 6. Neue Datei: Code: sudo nano /etc/systemd/timesyncd.conf mit folgendem Inhalt: Code: [Time] 7. Mit folgendem Kommando wird die automatische Zeit-Synchronisierung über RTC (oder NTP falls Internetverbindung besteht) beim Systemstart angestoßen: Code: sudo systemctl enable hwclock-sync systemd-timesyncd 8. Anstatt eines Reboots starten wir die Dienste manuell: Code: sudo systemctl start hwclock-sync systemd-timesyncd Damit ist die Einrichtung abgeschlossen. Ob alles richtig gelaufen ist, können wir nun mit Code: timedatectl Local time: So 2018-01-05 14:00:34 CET Universal time: So 2018-01-05 13:00:34 UTC RTC time: So 2018-01-05 13:00:33 Time zone: Europe/Vienna (CET, +0100) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no 9. Die Dienste ntp und fake-hwclock werden nun nicht mehr benötigt und können deinstalliert werden. Dafür einfach folgende Schritte nacheinander ausführen: Code: sudo systemctl stop fake-hwclock ntp Hinweis: Gerade nach einer Ersteinrichtung kann es sein, dass die RTC nicht synchron mit der Netzwerkzeit ist. Deshalb führen wir als letzten Schritt noch einen Reset der RTC durch Code: timedatectl set-local-rtc false Falls Datum/Uhrzeit immer noch nicht stimmen: Synchronisieren mit ntp: Code: timedatectl set-ntp 1 Das war’s! Credits: Ehre wem Ehre gebührt! Das ganze habe ich mir nicht selbst ausgedacht. Weitestgehend habe ich das dieser Quelle entnommen. Ich habe es nur übersetzt und in kleineren Details abgeändert. Wer sich mehr in's Thema vertiefen möchte, kann hier mal reinschauen: https://oberguru.net/linux/zeit-zeitserver-zeitzonen-rtc.html https://wiki.archlinux.org/index.php/Time#Time_synchronization Have fun! RE: [Tutorial] RTC in CarPi einbinden - Astraracer87 - 08.05.2018 Hallo Jack, Ich habe eine Frage zu der Anleitung, ich habe bei Punkt 6 bereits ein existierendes File „timesyncd.conf“ und nicht neu erstellt wird wie von dir übersetzt. Jetzt hab ich mal in die Originale Anleitung rein gelesen, da steht nix von erstellen sondern von Editieren, werd da aber nicht Schlau draus?! Was muss ich da jetzt machen? Muss ich da was machen, was muss da wohin? Oder kann das so bleiben? Danke für das tolle Tutorial und deine Hilfe Grüße David RE: [Tutorial] RTC in CarPi einbinden - Jack - 09.05.2018 In dieser Datei werden NTP-Server definiert, über die per NTP (falls Internetverbindung besteht) ein Timesync stattfindet. Wenn die Datei schon existiert und dort NTP-Server eingetragen sind, dann kannst du sie so lassen wie sie ist. Falls sie leer ist, dann fügst du den Inhalt wie oben beschrieben ein. RE: [Tutorial] RTC in CarPi einbinden - Astraracer87 - 09.05.2018 Hallo, Darin steht: Code: [Time] RE: [Tutorial] RTC in CarPi einbinden - Jack - 09.05.2018 Bin nicht ganz sicher ob die Syntax so stimmt. Die Zeile mit der Serverliste sollte eigentlich mit "NTP=" beginnen (s. hier). Ebenfalls weiß ich nicht, ob diese NTP-Server gültig sind. Um sicher zu gehen würde ich empfehlen den Inhalt der Datei durch den im Tutorial genannten zu ersetzen. RE: [Tutorial] RTC in CarPi einbinden - frankie0815 - 23.05.2018 Kleine Stolperfalle: in der /etc/RC.local die einzufügende Zeile: das Zeichen zwischen " systemclt is-active ..... grep -i active " jeweils nach und vor den doppelten Anführungsstrichen ist ein sogenannter "Back-quote" und befindet sich auf der deutschen Standardtastatur oben rechts neben dem Fragezeichen und wird mit Shift erreicht. Ich hatte prompt das falsche Zeichen (Shift-Raute) genommen und mich über die Fehlermeldung gewundert. RE: [Tutorial] RTC in CarPi einbinden - Jack - 23.05.2018 Deswegen ist Copy&Paste wenn möglich vorzuziehen. RE: [Tutorial] RTC in CarPi einbinden - frankie0815 - 23.05.2018 Wenn ich wüsste, wie Copy-Paste bei Putty geht, müsste ich nicht abtippen. RE: [Tutorial] RTC in CarPi einbinden - Jack - 23.05.2018 Zum Einfügen eines zuvor kopierten Strings musst du in PuTTY nur einen Rechtsklick machen. Oder auf der Tastatur Shift+Insert. |