目的:自动运行有保障,不受断电困扰。

机器:GL-INET v1
有关该路由器的详细参数:https://revspace.nl/GL-iNet
OpenWRT版本:Barrier Breaker
TinyRTC模块,DS1307
需要四个脚:SDA(18),SCL(19),+3.3V,GND

=============两个思路(本文用第二种)===========
I.编译源码,将kmod-rtc-ds1307模块直接编入内核并生成ipk包;
(可能会碰到内核兼容问题,适合量产)
II.将rtc-ds1307.ko内核模块放入/lib/modules/3*/内,调用i2c工具挂载RTC设备。(碰到内核兼容问题的几率小,适合个人)
III.直接找kmod-rtc-ds1307的包,附后(可能会碰到内核兼容问题,成功安装过一次)
================准备工作===================
1.增加内核对RTC模块的支持
kernel_menuconfig
–>Device Drivers
–>Real Time Clock
+Set the RTC time based on NTP synchronization
+/sys/class/rtc/rtcN (sysfs)
+/proc/driver/rtc (procfs for rtcN)
+/dev/rtcN (character devices)
+Dallas/Maxim DS1307/37/38/39/40, ST M41T00, EPSON RX-8025
*tips:
-Set system time from RTC on startup and resume
不启用此功能,为了避免以下报错:
[ 2.960000] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
启动顺序很靠前,无奈还不能一步到位。

2.增加i2c设备支持
menuconfig
–>kernel support
–>I2C support
+kmod-i2c-core
+algo-bit,i2c-gpio;
+kmod-i2c-gpio-custom

3.检测工具
menuconfig
–>Utilities
+dmesg 查看内核日志
+hwclock 时钟管理
+i2c-tools i2c工具集,检测、读取i2c设备数据

================转折================
查查看,menuconfig菜单中有无以下选项:
–>kernel modules–>other modules
kmod-rtc-ds1307
tips:有你就直接选中吧,万事大吉,直接编译。

============如果没有,继续看============

1.选好其他自己想要的功能后,先编译;
2.完成后,可以得到rtc-ds1307.ko(关键);
路径:/openwrt/barrier_breaker/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.10.49/drivers/rtc

感谢其他开发者的努力,我才能顺利获悉此路径:
https://dev.openwrt.org/changeset/42791
tips:如果你想获知如何创建kernel modules packages,可继续参阅如下网站:
https://downloads.openwrt.org/kamikaze/docs/openwrt.html#x1-470002.1.3

3.机器刷好固件,将rtc-ds1307.ko文件放入/lib/modules/3*/目录下;

4.载入i2c模块insmod i2c-dev

5.载入设备:insmod i2c-gpio-custom bus0=0,18,19
18指代GPIO18,SDA接口;
19指代GPIO19,SCL接口;
*应根据实际连接情况对指令做出相应的调整,
insmod i2c-gpio-custom bus0=0,SDA,SCL

6.检查系统是否已经探测到DS1307硬件:i2cdetect -y 0
正常情况:
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: – – – – – – – – – – – – –
10: – – – – – – – – – – – – – – – –
20: – – – – – – – – – – – – – – – –
30: – – – – – – – – – – – – – – – –
40: – – – – – – – – – – – – – – – –
50: 50 – – – – – – – – – – – – – – –
60: – – – – – – – – 68 – – – – – – –
70: – – – – – – – –

DS1307 i2c设备地址:0x68

7.注册新设备
echo ds1307 0x68 > ‘/sys/class/i2c-dev/i2c-0/device/new_device’

8.如果一切正常,可以使用hwclock -r 读取到rtc模块硬件时间,也可以在/dev目录下看到rtc0;

9.同步浏览器时间,用hwclock -w 将时间写入rtc硬件中;

10.添加开机启动脚本,用于开机自动注册i2c设备并将系统时间修正为硬件时间,内容如下:
vi /etc/rc.local

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
# sign the rtc device
insmod i2c-dev
insmod i2c-gpio-custom bus0=0,18,19
echo ds1307 0x68 > '/sys/class/i2c-dev/i2c-0/device/new_device'
hwclock -sexit 0

重启

END

========================================
kmod-rtc-ds1307内核包
http://openwrt.jaru.eu.org/barrier_breaker/ar71xx/packages/
不知是谁,但我暂时还不能做出来。

========================================
经过近2个月的测试,
1.模块稳定性高;
2.ds1307模块走得快,宜联网后定时使用hwclock -w 进行校正。

参考:
http://blog.oldcomputerjunk.net/tag/embedded/
Using an i2c RTC with the Carambola2 (or any OpenWRT modified router)
https://learn.adafruit.com/adding-a-real-time-clock-to-raspberry-pi?view=all
adding-a-real-time-clock-to-raspberry-pi
https://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-i2c
configuring-i2c
http://blog.csdn.net/manfeel/article/details/43165589
为OpenWrt添加实时钟(RTC)–以MT7620为例
https://dev.openwrt.org/changeset/42791
kernel: add rtc-ds1307 module support
http://kernelreloaded.blog385.com/index.php/archives/adding-rtc-to-embedded-devices-running-openwrt/
虽只有一半,但很有用。

OpenWRT添加RTC时钟模块(DS1307)相关推荐

  1. 树莓派3B添加DS1307 RTC时钟模块

    前段时间用树莓派做了一个小项目,到实施阶段后才突然发现树莓派没有硬件时钟,最后在某宝找到了时钟模块,商家只提供硬件,不提供技术服务,只能百度搜索配置方法,最后参照树莓派 3B+ 安装 DS1307 R ...

  2. 张高兴的 Windows 10 IoT 开发笔记:RTC 时钟模块 DS3231

    原文:张高兴的 Windows 10 IoT 开发笔记:RTC 时钟模块 DS3231 GitHub:https://github.com/ZhangGaoxing/windows-iot-demo/ ...

  3. (米联客MSXBO)开发板 osrc-lab LINUX下RTC时钟模块使用

    概述 RTC(real-time clock)简称实时时钟,是日常生活中应用最为广泛的消费类电子产品之一.它为人们提供精确的实时时间或者为电子系统提供精确的时间基准,而备份电池在掉电后数据不丢失,在下 ...

  4. 树莓派4b设置RTC时钟模块DS3231

    1 检查环境 由于在工程实现中,我发现树莓派的ip设置有问题,居然连不上外网.以及网络下载缓慢的问题,针对这两点,参考博客如下: IP设置检查:https://blog.csdn.net/taw199 ...

  5. 嵌入式开发——rtc时钟调试笔记

    前段时间在调试AM335X的rtc时钟功能,一开始是使用芯片内部的rtc时钟模块,后来发现功耗有点高,转而使用rtc时钟芯片,型号为ds1672..现在把两者的调试要点记录下来,方便后续的查阅. 注: ...

  6. ardino DS1307时钟模块

    ardino开发版 x1 DS1307时钟模块x1 接线: VCC-5V GND-GND(负极) CLK-SCL DAT-SDA 代码: #include <RtcDS1307.h> #i ...

  7. 第十三届蓝桥杯嵌入式备赛-STM32G431-进阶模块调试⑦RTC时钟

    目录 0.前言 1.功能要求 2.STM32Cubemx初始化 3.程序实现 main.c相关初始化 RTC函数 RTC_CalendarGet()日期时间获取函数 设置日期RTC_SetDate和时 ...

  8. 中国实时时钟(RTC)模块市场深度研究分析报告

    [报告篇幅]:113 [报告图表数]:151 [报告出版时间]:2021年9月 报告摘要 2020年中国实时时钟(RTC)模块市场规模达到了 亿元,预计2027年可以达到  亿元,未来几年年复合增长率 ...

  9. 树莓派基础实验32:DS1302实时时钟模块实验

    一.介绍   现在有很多流行的串行时钟芯片,如DS1302,DS1307,PCF8485等,由于简单的接口,低成本和易用性,他们被广泛应用于电话.传真.便携式仪器等产品领域.在本实验中,我们将使用DS ...

最新文章

  1. 在服务器上排除问题的头五分钟
  2. vs2013编译apr时遇到的疑难杂症
  3. 计算机与图像处理论文标题,数字图像处理论文各种题目.doc
  4. linux /proc/cpuinfo文件分析
  5. jquery和php上传文件进度条,jQuery实现文件上传进度条特效_jquery
  6. java 判断文件是否打开过_【后端开发】Java中如何判断文件是否被隐藏?(代码示例)...
  7. Json 语法 格式
  8. Java多线程编程 深入详解
  9. 爱加密脱壳(持续更新)
  10. 圆柱体积计算机公式,圆柱体积计算公式
  11. Linux查看文件大小的命令du的简单介绍
  12. 小程序在政务服务平台建设中如何发挥价值
  13. 最全的英语收藏夹(精品)
  14. 六年一轮回:大数据改变的,不仅仅是我的专业!
  15. 安卓救砖或删除第三方ROM推广APP
  16. 机器学习数据集划分留出法,留一法,交叉法,自助法
  17. mysql中使用CONCAT()函数,TRUNCATE()函数将小数转换成百分比
  18. 行业最常见的7种AGV导航系统方式
  19. 扫码枪(条码枪)v1.0可以实现无焦点捕获扫码输入,并可上传数据到服务器
  20. CSS filter有哪些用途

热门文章

  1. 完美世界手游服务器维护时间表,完美世界手游开服表
  2. 100张经典信息可视化图表,让你脑洞大开
  3. 大数据培训班课程表介绍
  4. 【Maven安装本地jar包】 Unknown lifecycle phase
  5. 井下关于风速的规定_矿井有害气体最高允许浓度、温度、风速的规定 -
  6. 如何配置管理员权限并删除文件
  7. win10删除文件时提示需要管理员权限
  8. 常用Excel和Word操作收集整理
  9. rebar3使用介绍(三)命令
  10. 【算法】Manacher(马拉车)算法