RTC DS1307 Zeit-Modul

  • ist ja alles soweit iO aber warum bekomme ich beim Abfragen mit

    keine Ausgabe sondern den Fehler:

    ??

    Es ist ebem nicht alles i.O. Sonst würdest Du an der Adresse der RTC nicht ein UU sehen und der Aufruf von hwclock keinen Fehler verursachen.

    Also nochmal: Was bedeutet "UU" laut Deiner Manpage zu i2detect ?

    Servus !

    RTFM = Read The Factory Manual, oder so

  • Ich meine nicht, sondern so steht es da, zumindest bei mir:

    "UU". Probing was skipped, because this address is currently in use by a driver

    Was auch soviel heisst, dass es die Adresse am i2c Bus gibt.

    Du kannst jetzt mit dmesg, ps herumsuchen, oder die Logfiles durchwühlen. Höchstwahrscheinlich wirst Du draufkommen, dass der Treiber für den DS1307 zweimal geladen wurde und mit zwei verschiedenen Adressen im Hauptspeicher liegt.

    Ich bezweifle daher Deine Behauptung, dass Du alle alten, falschen Einstellungen rückgängig gemacht hast.

    Servus !

    RTFM = Read The Factory Manual, oder so

  • Es ist ebem nicht alles i.O. Sonst würdest Du an der Adresse der RTC nicht ein UU

    Bis dahin doch! UU heißt used. Und genau das ist die richtige Anzeige, wenn das i²C-Tool nach dem Initialisieren der Hardwareuhr aufgerufen wird. Was jetzt noch Probleme macht, ist der Zugriff auf die Uhrenschnittstelle, die wie üblich bei Linux als Datei dargestellt wird ("Alles ist Datei").

    Ich habe gerade einen kleinen Blitz im Geiste. Du arbeitest doch mit dem user pi, oder? Mach mal bitte folgendes:

    Code
    sudo adduser pi i2c

    Suche auch mal nach Verzeichnissen wie /sys/class/i2c-adapter/i2c-1, da müsste die Hardware hängen.

    #dtoverlay=i2c-rtc, ds1307=on

    mach mal das # weg, oder ist das ein Tippfehler?

    Es ist irgendwas mit der Verzeichnisstruktur faul. Versuch auch mal hwclock ohne sudo.

  • ohne sudo kommt genau das:

    Code
    hwclock: Cannot access the Hardware Clock via any known method.
    hwclock: Use the --debug option to see the details of our search for an access method.

    und als --debug

    Code
    hwclock from util-linux 2.29.2
    hwclock: cannot open /dev/rtc: Keine Berechtigung
    No usable clock interface found.
    hwclock: Cannot access the Hardware Clock via any known method.

    und als i2cdetect -y 1 das gleiche wie vorher...

    Gruß pro2311:)

  • Sorry es gibt auch eine conf.txt in der ist der oben angezeigte Inhalt. in der config.txt steht:

    :wallbash:

    Gruß pro2311:)

  • Die beiden Zeilen habe ich jetzt auch mit in die richtige config.txt (die andere "conf.txt" ist gelöscht) mit eingesetzt und es gibt keine Veränderung. Auch die Zeilen :

    Code
    dtparam=i2c_arm=on
    dtoverlay=i2c-rtc,ds1307=on

    wurden mit und ohne "#" versehen und danach wurde ein reboot gemacht alles bleibt gleich.

    Gruß pro2311:)

  • Hast Du die fake-hwclock entfernt? Wenn nicht, mach das mal noch vorher. Dann:

    dtparam=i2c_arm=on
    dtoverlay=i2c-rtc,ds1307

    Letzter Versuch, trag mal die beiden Sachen so wie oben ein (ich habe das =on hinter ds1307 entfernt), achte darauf, dass diese Zeilen in Deiner config.txt keinesfalls doppelt vorkommen. Neustart, Nachsehen: sudo hwclock -D -r

  • Nach der Änderung und reboot kommt bei der Abfrage

    Code
    sudo hwclock -D -r

    das hier:

    Code
    hwclock from util-linux 2.29.2
    Using the /dev interface to the clock.
    Last drift adjustment done at 1551885238 seconds after 1969
    Last calibration done at 1551885238 seconds after 1969
    Hardware clock is on UTC time
    Assuming hardware clock is kept in UTC time.
    Waiting for clock tick...
    /dev/rtc does not have interrupt functions. Waiting in loop for time from /dev/rtc to change
    hwclock: ioctl(RTC_RD_TIME) to /dev/rtc to read the time failed: Das Argument ist ungültig
    ...synchronization failed

    :?:

    Gruß pro2311:)

  • Hast Du die fake-hwclock entfernt? Wenn nicht, mach das mal noch vorher.

    Letzter Versuch, bei mir hier klappts nämlich (mit einer DS3231)

    [Link]

    Gemacht?

    Code
    sudo apt-get -y remove fake-hwclock
    sudo update-rc.d -f fake-hwclock remove
    sudo systemctl disable fake-hwclock

    und

    Now with the fake-hw clock off, you can start the original 'hardware clock' script.Run

    sudo nano /lib/udev/hwclock-set and comment out these three lines:

    Code
    #if [ -e /run/systemd/system ] ; then
    # exit 0
    #fi
  • Beim

    Code
    sudo systemctl disable fake-hwclock

    kommt das hier:

    Code
    Failed to disable unit: No such file or directory

    ich habe dann aber ein reboot gemacht und das Ergebnis von

    Code
    sudo hwclock -D -r

    ist hier zu sehen:

    Code
    hwclock from util-linux 2.29.2
    Using the /dev interface to the clock.
    Last drift adjustment done at 1551885238 seconds after 1969
    Last calibration done at 1551885238 seconds after 1969
    Hardware clock is on UTC time
    Assuming hardware clock is kept in UTC time.
    Waiting for clock tick...
    /dev/rtc does not have interrupt functions. Waiting in loop for time from /dev/rtc to change
    hwclock: ioctl(RTC_RD_TIME) to /dev/rtc to read the time failed: Das Argument ist ungültig
    ...synchronization failed

    Gruß pro2311:)

  • Der Fehler scheint bei einigen Modulen aufzutreten. Hier sind einige Lösungen erwähnt, vielleicht nützt das. Wenn nicht:

    Da ich weiß, dass es geht, würde ich an Deiner Stelle mit einem sauberen System (z.b. Raspbian lite) die Anleitung Schritt für Schritt durchgehen. Die ist zwar noch für die Vorgängerversion jessie, funktioniert aber auch bei stretch. Du must aufpassen, dass genau so und korrekt nachzuvollziehen (conf.txt ist etwas anderes als config.txt)

    Grüße, STF

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!