hw clock – Не найдено подходящего интерфейса часов

Вопрос или проблема

Я использую Linux 6.1 с Yocto 4.2 mickeldore. Я пытаюсь синхронизировать свой hwclock с системным часами с помощью команды sudo hwclock -w --verbose

Это не удается и выводит следующее сообщение

hwclock from util-linux 2.38.1
System Time: 1729058181.939602
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.

Н ни одно из моих /dev/rtc, похоже, не настроено, и когда я выполняю dmesg, это не показывает никаких включенных rtc.

Я проверил дерево устройств и вижу, что модуль RTC DS1336 добавлен к устройству

    /* Модуль RTC DS1337 */
    rtc@68 {
        status = "okay";
        compatible = "dallas,ds1337";
        reg = <0x68>;
    };

При помощи bitbake -c menuconfig я включил DS1337, /dev/rtcN (символьные устройства) и /sys/class/rtc/rtcN (sysfs). После загрузки нового ядра ничего не изменилось.

Занимаясь этой проблемой, я не уверен, как правильно настроить мой hwclock. У меня сложилось впечатление, что это связано с тем, что мой /dev/rtc неправильно настроен, и, похоже, я не могу его настроить. Любая помощь в дальнейшей отладке или получении моего /dev/rtc (что, как я думаю, должно решить эту проблему) будет оценена.

Ответ или решение

Проблема: hwclock – Не найдено ни одного подходящего интерфейса часов

Ваша проблема с командой hwclock -w --verbose, которая возвращает сообщение "No usable clock interface found", указывает на то, что система не может получить доступ к аппаратным часам (RTC – Real Time Clock) через известные интерфейсы. Давайте разберем возможные причины этой проблемы и предложим решения для ее разрешения.

1. Проверка устройства RTC

Первый шаг заключается в проверке наличия аппаратного устройства RTC в вашей системе. Вы упомянули, что в вашем дереве устройств настроен модуль DS1336. Убедитесь, что ваш модуль действительно загружается и инициализируется при загрузке системы.

  • Проверьте вывод команды dmesg. Она должна содержать информацию о инициализации устройств, включая RTC. Если там нет сообщений о вашем RTC, возможно, его драйвер не загружается. Попробуйте перезагрузить систему и снова просмотреть вывод dmesg.

2. Проверка конфигурации ядра

Вы указали, что в меню конфигурации вы включили поддержку DS1337 и необходимые классы устройств. Убедитесь, что вы также правильно настроили загрузку модуля.

  1. Включение поддержки необходимого драйвера:
    Зайдите в конфигурацию ядра (bitbake -c menuconfig), и проверьте, включены ли следующие параметры:

    • Поддержка вашего RTC, например, DS1337.
    • Поддержка /dev/rtcN (символьные устройства).
    • Поддержка /sys/class/rtc/rtcN (sysfs).
  2. Пересборка: После внесения изменений вам необходимо пересобрать образ. Убедитесь, что вы загрузили обновленный образ на устройство.

bitbake your-image-name

3. Убедитесь, что устройства /dev/rtc доступны

Используйте команду ls /dev/rtc* для проверки существования устройств RTC в вашей системе. Вы должны увидеть устройства, такие как /dev/rtc0 или /dev/rtc1. Если устройств нет, это может означать, что модуль не загружен или драйвер RTC не работает.

4. Проверка подключения модуля RTC

Если после всех проверок устройство по-прежнему не доступно, убедитесь, что модуль DS1336 правильно подключен к вашему оборудованию. Возможно, проблема заключается в аппаратных соединениях или в конфигурации устройства.

5. Настройка устройства

Если ваше устройство RTC успешно отображается в /dev/, но команда hwclock по-прежнему выдает ошибку, попробуйте установить его вручную, используя echo и /sys/class/rtc/rtc0/wakealarm. Также проверьте, активно ли устройство через /sys/class/rtc/rtc0/device/status.

6. Использование альтернативных методов

Последний шаг — попробовать другие методы установки аппаратного времени. Вместо hwclock вы можете попытаться воспользоваться сторонними библиотеками для работы с RTC.

Заключение

Ваше сообщение об ошибке "No usable clock interface found" является результатом того, что система не может обнаружить доступное устройство RTC. Проведя поиск по приведенным шагам, вы сможете успешно настроить свой аппаратный генератор времени и решить проблему с синхронизацией системных и аппаратных часов. В случае дальнейших трудностей, рекомендуется обратиться к документации вашего оборудования или к сообществу Yocto и Linux для получения дополнительной поддержки.

Дополнительно, соблюдайте порядок действий, и не забудьте протестировать каждую сделанную настройку, чтобы убедиться в ее успешности.

Оцените материал
Добавить комментарий

Капча загружается...