OpenWRT添加RTC时钟模块(DS1307)

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

机器: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 -s

exit 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/
虽只有一半,但很有用。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在OpenWrt系统中添加4G模块,需要按照以下步骤进行操作: 1. 确保OpenWrt系统已经正确安装和配置在目标设备上。你可以参考OpenWrt官方文档或社区的指南来完成这一步骤。 2. 确定你的设备支持的4G模块类型。有许多不同的4G模块可供选择,包括基于标准和芯片组的不同。你可以参考你的设备的说明手册或4G模块的规格说明来确认兼容性。 3. 将4G模块插入到你的设备的适配器或扩展槽上。确保插入正确,跟随设备和模块的说明提示进行操作。 4. 连接到OpenWrt设备的Web界面或SSH终端。你可以使用你的Web浏览器访问设备的IP地址,或者使用SSH客户端连接到目标设备。 5. 在OpenWrt设备的管理界面中,导航到“网络”-“接口”部分。你应该能找到一个可以编辑的接口,可能是WWAN接口。 6. 在接口编辑页面中,选择“4G模块”的配置选项。这些选项可能会因4G模块的型号和制造商而异。你需要提供相应的APN设置、拨号号码和凭据等信息。 7. 配置好4G模块后,点击“保存”并应用更改。OpenWrt将尝试连接到4G网络,并为你提供无线网络访问。 8. 检查网络连接,确保4G连接正常。你可以尝试通过ping命令测试设备的互联网访问能力,或者在Web界面中查看接口的状态信息。 请注意,上述步骤是一个基本的指南,实际的过程可能因设备和4G模块的不同而有所不同。为了成功添加4G模块,你可能需要参考相关的OpenWrt文档、论坛帖子或社区讨论来获取更具体的步骤和配置要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值