带有 RTC 和 Ubuntu 20.04 的 Rapsberry Pi 4

带有 RTC 和 Ubuntu 20.04 的 Rapsberry Pi 4

我有一台 Raspberry Pi 4,上面安装了 Ubuntu 20.04。不幸的是,它不会一直连接到互联网,这意味着每次重启后日期都会被设置回构建时间。我添加了一个外部 RTC 模块(在 IIC 总线上工作的 DS3231),可以用 读取时间hwclock --show

dtoverlay=i2c-rtc,ds3231添加到 后/boot/firmware/usercfg.txt,模块rtc_ds1307现在会在启动时加载。唯一的问题是,Ubuntu 似乎在加载模块之前尝试从 RTC 设置系统时间(参见dmesg下面的输出)。启动后,我可以通过运行 手动将时间设置为 RTC 上的时间sudo hwclock --hctosys

有什么建议可以解决这个问题吗?有什么方法可以让模块更快地加载吗?

我尝试将其添加到超级用户/root crontab:

@reboot sleep 10; hwclock --hctosys

但它似乎不起作用。

输出自dmesg | grep rtc

[    0.000000] Kernel command line:  coherent_pool=1M 8250.nr_uarts=1 bcm2708_fb.fbwidth=0 bcm2708_fb.fbheight=0 bcm2708_fb.fbswap=1 smsc95xx.macaddr=DC:A6:32:43:2B:86 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyS0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc quiet splash
[    1.726560] hctosys: unable to open rtc device (rtc0)
[    2.470632] rtc-ds1307 1-0068: registered as rtc0

答案1

我正在做同样的事情,但对此还很陌生。

看看这是否有帮助,https://wiki.52pi.com/index.php/DS1307_RTC_Module_with_BAT_for_Raspberry_Pi_SKU:_EP-0059#Compatibility_List

我认为您需要编辑脚本文件“/lib/udev/hwclock-set”,正如 Michael 所说,如下所示。

#!/bin/sh
# Reset the System Clock to UTC if the hardware clock from which it
# was copied by the kernel was in localtime.

dev=$1
# COMMENT OUT NEXT THREE LINES
#if [ -e /run/systemd/system ] ; then
#    exit 0
#fi

if [ -e /run/udev/hwclock-set ]; then
    exit 0
fi

if [ -f /etc/default/rcS ] ; then
    . /etc/default/rcS
fi

# These defaults are user-overridable in /etc/default/hwclock
BADYEAR=no

我的时钟还没到,所以我还没有试过。如果它对你有用,请告诉我。

相关内容