You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在搭配NAS套件的NanoPi NEO LTS上加载板载DS1307 RTC?

解决NanoPi NEO LTS板载DS1307 RTC加载问题

步骤1:启用I2C总线

DS1307是I2C设备,先确保系统启用对应总线:

  • 加载必要内核模块:
    sudo modprobe i2c-dev
    sudo modprobe rtc-ds1307
    
  • 查看系统I2C总线列表:
    i2cdetect -l
    
    记下板载RTC连接的总线编号(通常是i2c-0或i2c-1)。
  • 扫描对应总线确认DS1307存在(默认地址为0x68):
    sudo i2cdetect -y 0
    
    输出中出现68即表示设备正常连接。

步骤2:手动绑定DS1307到I2C总线

通过sysfs完成设备绑定:

echo ds1307 0x68 | sudo tee /sys/class/i2c-adapter/i2c-0/new_device

将命令中的i2c-0替换为你实际查到的总线编号。执行后检查/dev目录,应该能看到rtc1:

ls -al /dev/rtc*

步骤3:配置开机自动加载

确保重启后设备自动生效:

  1. 创建模块加载配置文件,让系统开机自动加载所需模块:
    echo -e "i2c-dev\nrtc-ds1307" | sudo tee /etc/modules-load.d/rtc-ds1307.conf
    
  2. 创建systemd服务实现设备自动绑定:
    创建文件/etc/systemd/system/rtc-ds1307-setup.service,写入以下内容:
    [Unit]
    Description=Bind DS1307 RTC to I2C bus
    After=sysinit.target
    
    [Service]
    Type=oneshot
    ExecStart=/bin/sh -c 'echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device'
    RemainAfterExit=yes
    
    [Install]
    WantedBy=multi-user.target
    
    同样将i2c-0替换为实际总线编号。
  3. 启用并启动服务:
    sudo systemctl daemon-reload
    sudo systemctl enable --now rtc-ds1307-setup.service
    

步骤4:设置默认RTC为DS1307

让系统优先使用板载DS1307避免重启时间重置:

  • 确认RTC设备对应关系:
    cat /sys/class/rtc/rtc0/name
    cat /sys/class/rtc/rtc1/name
    
    确认rtc1对应ds1307。
  • 设置默认RTC并同步时间:
    sudo hwclock -w -f /dev/rtc1
    sudo ln -sf /dev/rtc1 /dev/rtc
    
    也可以编辑/etc/default/hwclock文件,将HWCLOCKDEVICE修改为/dev/rtc1,保存后重启系统验证。

内容的提问来源于stack exchange,提问作者JavaUser007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:18:09