我已经使用 Raspberry Pi 制作了一个可编程电源开关(尽管这个问题不是特定于 RPi 的 - 它更像是“通用 Linux”,其问题是由硬件缺陷引起的。)Raspberry 没有电池供电的 RTC;它旨在通过网络启动后立即联网工作并同步其时钟。
我的问题是,当我通过网络对所述开关进行编程时,我可以在给定的时间以这种方式打开/关闭给定的插座,但设备本身将用于不同的位置,包括非联网的位置。当我将它从我对其进行编程的位置带到要插入的位置时,它会断电并且时钟会丢失状态。在我重新打开电源后,它无法连接来恢复日期。
断电的几分钟对我来说不是问题 - 我不介意时钟差一两分钟。我介意它是否在 43 年之前关闭,就像我打开非联网后的情况一样。
是否有一些巧妙的方法可以将启动时的时钟恢复到系统因断电而停机之前的状态?(每秒将其写入作为 RPi 的存储介质的 SD 卡会非常快地杀死该卡,因此这不是一个选择。)
我有一个连接了 GPS 模块的 Raspberry Pi。由于所有 GPS 卫星上都有非常精确的原子钟,我想将 Pi 的时钟与卫星的时钟同步。我知道如何从卫星获取日期和时间,并通过以下方式设置我的 Pi 时间:
sudo date -s "MAR 14 2016 14:53:09"
但这只是精确到秒,我想至少得到毫秒,但我更喜欢纳秒。
我知道date +%s%N
以纳秒为单位返回时间。
如何以纳秒为单位设置时间?
在ntpd
内核中,每 11 分钟将系统时间复制到硬件时钟。
但是,如果系统时间和硬件时钟不同步超过 30 分钟,则不会发生此复制,并且系统和硬件时钟保持不同步。
如果系统和硬件时钟不同步超过30分钟,有没有办法让11分钟模式工作,或者有没有其他工具可以用来自动同步系统和硬件时钟?
在无数次查找如何使用gettimeofday()
时,我决定这次快速深入了解一下 vDSO,因为我对它只有一个模糊的认识,并且想知道是否有任何我应该注意的使用陷阱。
根据/sf/ask/2983569921/,如果 vDSO 正在使用,则strace
不应显示或。gettimeofday
clock_gettime
嗯,看起来我的 ThinkPad T400 已经坏了一段时间了:从我记事起,我就一直看到“大量”这样的电话。strace
(特别是来自 QEMU。)
如果我尝试testgtod.c
(运行gettimeofday()
1000 次)上述问题:
$ strace ./testgtod 2>&1 | grep clock_gettime | wc -l
1000
Run Code Online (Sandbox Code Playgroud)
目前,我能发现的 ThinkPad 和 i3 台式机之间的唯一区别是 i3 使用 TSC,而 ThinkPad 使用 HPET,因为tsc: Marking TSC unstable due to TSC halts in idle
. (想知道这是否是一个暂停/恢复的事情,但后来注意到了时间戳 - 这是启动后的 1.53 秒。)T400(当前......)运行 Arch,而 i3 盒子运行 Debian 9。
上述问题也参考了dump-vdso.c
。T400 上的 vDSO 对我来说看起来相当不错:
$ …
Run Code Online (Sandbox Code Playgroud) 我从头开始启动 Linux 服务器 (Amazon Linux 2)。
我在东京地区,我像这样更改了时区信息;
ll /etc/localtime
# lrwxrwxrwx 1 root root 25 Feb 22 10:11 /etc/localtime -> ../usr/share/zoneinfo/UTC
# backup
sudo cp -p /etc/localtime /etc/localtime.org
# change timezone
sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ll /etc/localtime
# lrwxrwxrwx 1 root root 30 Mar 10 22:06 /etc/localtime -> /usr/share/zoneinfo/Asia/Tokyo
Run Code Online (Sandbox Code Playgroud)
现在以下内容已受到影响,比 UTC 早 9 小时,这对我来说似乎足够了。
然而,我在谷歌上搜索发现一些文章建议您还应该更改硬件时钟。
# default
cat /etc/sysconfig/clock
# ZONE="UTC"
# UTC=true
Run Code Online (Sandbox Code Playgroud)
是不是修改这个文件比较好?
如果是这样,怎么办?什么会受到影响?
我本来要写命令tmux detach
,但我不小心按下了其他一些键/组合键,并在整个终端上看到了一个大时钟。只打印了时间,没有其他任何内容。
我不知道它的出现是因为我不知情地安装了一个软件包,还是因为一个原生的 Linux/centos 软件包。
我可以说我发现的最相关的事情是这个答案中出现的图像。
文本字体与上述图像中的字体非常相似。