升级到 Ubuntu 17.10 后实时时钟出现问题

升级到 Ubuntu 17.10 后实时时钟出现问题

请参阅下面的更新

我最近使用软件更新流程从 Ubuntu 17.04 升级到了 Ubuntu 17.10。更新完成且没有任何错误,Ubuntu 17.10 现在运行正常,没有任何重大问题。

但是,我之前运行的脚本rtcwake现在已停止工作。该脚本会在睡眠模式中经过一段时间后自动使我的笔记本电脑休眠,并且在 Ubuntu 17.04 中运行良好。

在故障排除的过程中,我发现问题出在rtcwake抱怨/dev/rtc0丢失的哪个上。

以下是示例rtcwake命令的输出:

peter@haven:~$ rtcwake -m no -s 1300
rtcwake: assuming RTC uses UTC ...
rtcwake: /dev/rtc0: unable to find device: No such file or directory

我确认该目录确实丢失了。由于它在升级之前可以正常工作,因此我不得不假设它之前就在那里,但我不确定。

在研究错误时,我发现了一些使用timedatectl和获取更多信息的建议hwclock,因此这里也是这些命令的结果。

输出timedatectl

peter@haven:~$ timedatectl
      Local time: Fri 2017-10-27 19:06:26 EDT
  Universal time: Fri 2017-10-27 23:06:26 UTC
        RTC time: n/a
       Time zone: America/New_York (EDT, -0400)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no

输出hwclock --debug

peter@haven:~$ sudo hwclock --debug
[sudo] password for peter: 
hwclock from util-linux 2.30.1
Trying to open: /dev/rtc0
Trying to open: /dev/rtc
Trying to open: /dev/misc/rtc
No usable clock interface found.
hwclock: Cannot access the Hardware Clock via any known method.

升级后,还有其他人遇到过类似的问题吗?如果没有,请提供任何建议,以便我以最佳方式进行故障排除。

更新

当我使用旧内核启动时,4.10.0-37-generic实时时钟工作正常。

dmesg当我启动内核时,我收到以下 RTC 消息4.13.0-16-generic

peter@haven:~$ dmesg | grep -i rtc
[    0.089393] RTC time: 17:03:55, date: 11/01/17
[    1.238784] rtc_cmos 00:01: RTC can wake from S4
[    1.238794] rtc_cmos: probe of 00:01 failed with error -16
[    1.295459] hctosys: unable to open rtc device (rtc0)

更新 #2

好吧,我开始相信我遇到了硬件问题,因为我发现我无法保存对 BIOS 的更改,也无法从 USB 启动。事实证明,我的笔记本电脑被这个错误感染了:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1734147导致我的 BIOS 被锁定在只读状态。

解决 BIOS 问题并修复 USB 启动问题后,我对 Ubuntu 17.10 进行了实时启动。在这种干净启动情况下,我的实时时钟问题仍然存在,但当我启动其他发行版(如 Linux Mint 18.3)时,实时时钟工作正常。我觉得这肯定与 Ubuntu 安装有关,甚至可能是内核错误。

更新 #3

更多证据表明这是一个内核错误:我实时启动了使用 Arch 内核的 Antergos Linux 副本,4.14.12-1-ARCH它表现出与 Ubuntu 17.10 相同的实时时钟问题。此外,我确认我之前启动的 Linux Mint 版本(参见更新 #2)是在 Ubuntu 内核上4.10.0-38-generic

因此,我怀疑这个错误是在内核 4.10 和 4.13 之间引入的。有人能为我提供提交内核错误的信息吗?

更新时间:2018 年 1 月 30 日

Launchpad 上报告的内核错误(https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1743027) 以及上游内核开发人员。

答案1

这已被确认为 Linux 内核的一个错误(请在此处关注该错误的状态:https://bugzilla.kernel.org/show_bug.cgi?id=199033)。

一种解决方法是使用 自定义配置内核,make menuconfig并禁用对CONFIG_WDAT_WDT驱动程序的支持。这消除了与 RTC 驱动程序的冲突并允许其正常运行。

相关内容