hwclock:无法通过任何已知方法访问硬件时钟

Tom*_*art 5 debian time-synchronization clock-synchronization

在 Debian 服务器上,我遇到了以下问题hwclock

$ hwclock --show 
hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --debug option to see the details of our search for an access method.
Run Code Online (Sandbox Code Playgroud)

系统在 backports 内核上运行Debian 4.9.18-1~bpo8+1 (2017-04-10)

这是调试输出:

$ hwclock --debug
hwclock from util-linux 2.25.2
hwclock: cannot open /dev/rtc: Device or resource busy
No usable clock interface found.
hwclock: Cannot access the Hardware Clock via any known method.
Run Code Online (Sandbox Code Playgroud)

时钟源:

$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource
tsc
Run Code Online (Sandbox Code Playgroud)

最后,rtc设备存在:

$ ls -l /dev/rtc*
lrwxrwxrwx 1 root root      4 Apr 29 16:41 /dev/rtc -> rtc0
crw------- 1 root root 253, 0 Apr 29 16:41 /dev/rtc0
Run Code Online (Sandbox Code Playgroud)

Tom*_*art 6

问题似乎与以下内容有关clocksource,请检查available_clocksource

\n\n
$ cat /sys/devices/system/clocksource/clocksource0/available_clocksource\ntsc hpet acpi_pm\n
Run Code Online (Sandbox Code Playgroud)\n\n

基于对“\xe2\x80\x9cclocksource tsc不稳定\xe2\x80\x9d是什么意思?”的回答 看起来TSC(时间戳计数器)不太可靠。

\n\n

通过更新,/etc/default/grub您可以切换到另一个可用的时钟源。我正在使用HPET

\n\n
GRUB_CMDLINE_LINUX_DEFAULT="clocksource=hpet"\n
Run Code Online (Sandbox Code Playgroud)\n\n

并更新 grub:

\n\n
update-grub2\n
Run Code Online (Sandbox Code Playgroud)\n\n

重新启动后hwclock再次工作(只需重新启动而不进行任何修改也可能有帮助 - 这可能只是多长时间的问题)。

\n\n

注意:最佳时钟源可能取决于您的主板和 CPU 型号。

\n