3
如何在Raspbian上安装实时时钟(RTC)?
我有: Raspberry Pi与2015-05-05-raspbian-wheezy 连接了ds1307(这是一个Adafruit板,未安装上拉电阻)。 我如何能: 配置驱动程序 确保Pi在启动时实际使用RTC时间? 据我所知,我实际上已经完成了第一部分,但是第二部分却没有运气。由于以下原因,许多信息(包括Adafruit说明)已过时:https://www.raspberrypi.org/forums/viewtopic.php?t = 97314 所以,第一步:在raspi-config中启用I2c和驱动程序,添加dtoverlay=i2c-rtc,ds1307到/boot/config.txt的末尾,您已经有了驱动程序,并且hwclock现在对我有用(显然无法运行i2cdetect,更多内容)稍后)。 现在,您需要删除fake-hwclock并进行设置,以使其在启动时实际读取rtc。我一直在尝试遵循此建议-这与我所见过的其他事情基本一致,并且是最近的-https: //www.raspberrypi.org/forums/viewtopic.php?p=842661#p842661 (这是针对其他RTC的,但是我只关注第二部分有关删除false-hwclock的信息)。 但是没有运气,我的pi上不存在“需要注释的行”。我的pi出现在1970年1月1日00:00,hwclock -r说RTC已损坏。即使自设置RTC并重新启动pi以来我没有关闭电源,所以看来它一定已被启动损坏。 我也根本无法运行i2cdetect。它抱怨设备/ dev / i2c(something)不存在-确实不存在... 临时更新 好的,我已经确定: 损坏仅是时间/日期信息。如果我使用i2cset用某种模式填充nvram,则该信息不会在重新启动时被修改,但年份为0x66 如果我,ds1307从dtoverlay=i2c-rtc,ds1307config.txt中的行中删除,则系统启动时不会破坏RTC!这支持驱动程序本身正在破坏数据的想法。我看过驱动程序代码,它会花费时间并更改它不喜欢的内容(例如,它将12个小时更改为24个小时的格式)。因此,可能的问题是驱动程序是在I2C端口实际上尚未准备好工作时安装的(可能是由于时钟未准备好吗?) 如果我在启动后执行此操作:sudo sh -c 'echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device'它将导致rtc_ds1307驱动程序加载,并显示/ dev / rtc0。而且时间还可以。这样就可以用作修改启动脚本的基础 还有一个有趣的细节:如果我hwclock -s在写入/sys/..../new_device之后立即在脚本中使用,它将失败。sleep 0.5两者之间必须有a 或某物。 这样看来,我现在拥有可以关闭,启动并具有正确时间的系统-我会尽快对其进行正确记录。