У меня есть Raspberry Pi 4 и установленный Ubuntu 20.04. К сожалению, он не будет постоянно подключен к Интернету, что означает, что после каждой перезагрузки дата будет возвращена к времени сборки. Я добавил внешний модуль RTC (DS3231, работающий на шине IIC) и могу считать время с помощью «hwclock --show».
После добавления «dtoverlay = i2c-rtc, @ перезагрузить сон 10; hwclock --hctosys но это, похоже, не работает.
Вывод из "dmesg | grep rtc":
[0.000000] Командная строка ядра: coherent_pool = 1M 8250.nr_uarts = 1 bcm2708_fb.fbwidth = 0 bcm2708_fb.fbheight = 0 bcm2708_fb.fbswap = 1 smsc95xx.macaddr = DC: A6: 32: c: 2: v: 2: B: 2: B: 2: C: 2: B: 2: C: 2: v: 2: v: 2: v: 2: v: 2: v: 2: v: 2: 0: 2: 2: 2: 2: v: 2: 2: vc: v2: v2: v2: v2: b2: b2: bc: fc: sbsc_cd_m_ru mem_base = 0x3ec00000 vc_mem.mem_size = 0x40000000 net.ifnames = 0 dwc_otg.lpm_enable = 0 console = ttyS0,115200 console = tty1 root = LABEL = доступный для записи rootfstype = ext4 elevator = deadline rootwait fixrtc quiet splash] 115050
[1.726560] hctosys: невозможно открыть устройство rtc (rtc0)
[2.470632] rtc-ds1307 1-0068: зарегистрирован как rtc0
I followed these directions to set mine up. The rc.local portion is probably what you're after.
Я работаю над тем же и довольно плохо знаком с этим.
Посмотрите, поможет ли это, https://wiki.52pi.com/index.php/DS1307_RTC_Module_with_BAT_for_Raspberry_Pi_SKU:_EP-0059#Compatibility_List
Я думаю, вам нужно отредактировать файл скрипта "/lib/udev/ hwclock-set», как сказал Майкл, чтобы он выглядел ниже.
#!/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
Мои часы еще не пришли, поэтому я еще не пробовал. Дайте мне знать, если это работает для вас.