СМ. ОБНОВЛЕНИЯ НИЖЕ
Недавно я обновился с Ubuntu 17.04 до Ubuntu 17.10, используя процесс обновления программного обеспечения. Обновление завершено без каких-либо ошибок, и Ubuntu 17.10 теперь работает без каких-либо серьезных проблем.
Тем не менее, я запускал скрипт ранее, который использует rtcwake, который с тех пор перестает работать. Сценарий автоматически сместится с ноутбуком после установленного периода времени в спящем режиме и отлично работает в Ubuntu 17.04.
В процессе устранения неполадок я обнаружил, что проблема связана с rtcwake, который жалуется около /dev/rtc0 отсутствует.
Здесь выводится команда sample 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 часы реального времени работают нормально.
Я получаю следующие сообщения RTC в dmesg при загрузке ядра 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)
UPDATE # 2
Ну, я был начиная с уверенности, что у меня возникла проблема с аппаратным обеспечением, поскольку обнаружение я не смог сохранить изменения в моем BIOS и не мог загрузиться с USB. Как оказалось, мой ноутбук был укушен этой ошибкой: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1734147, в результате чего моя BIOS была заблокирована в состоянии только для чтения.
Как только я решил проблему с BIOS, и исправил проблему с загрузкой USB, я сделал живую загрузку Ubuntu 17.10. Проблема с моими часами реального времени по-прежнему существует в этом чистом сценарии загрузки, но когда я загружаю другие дистрибутивы, такие как Linux Mint 18.3, и часы реального времени работают нормально. Я считаю, что это определенно связано с установкой Ubuntu, возможно, даже с ошибкой ядра.
UPDATE # 2
Больше доказательств того, что это Ядро: я загрузил копию Antergos Linux, которая использовала ядро Arch 4.14.12-1-ARCH, и у нее была та же проблема с часами реального времени, что и Ubuntu 17.10. Кроме того, я подтвердил, что версия Mint Linux, которую я загрузил ранее (см. Обновление № 2), была в ядре Ubuntu 4.10.0-38-generic.
Итак, я подозреваю, что когда-то между ядрами 4.10 и 4.13 была введена эта ошибка. Может ли кто-нибудь предоставить мне информацию для подачи ошибок ядра?
UPDATE 30 января 2018 года
Ошибка ядра на Launchpad ( https://bugs.launchpad.net / ubuntu / + source / linux / + bug / 1734147 ) и с разработчиками ядра выше.
Это было подтверждено как ошибка в ядре Linux (следуйте статусу ошибки здесь: https://bugzilla.kernel.org/show_bug.cgi?id=199033).
A обходной путь - настраивать ядро с помощью make menuconfig и отключать поддержку драйвера CONFIG_WDAT_WDT. Это устраняет конфликт с драйвером RTC и позволяет ему нормально работать.
Это было подтверждено как ошибка в ядре Linux (следуйте за статусом ошибки здесь: https://bugzilla.kernel.org/show_bug.cgi?id=199033).
A обходной путь - настраивать ядро с помощью make menuconfig и отключать поддержку драйвера CONFIG_WDAT_WDT. Это устраняет конфликт с драйвером RTC и позволяет ему нормально работать.