«Неправильный логин» после попытки установить пароль root в Yocto через пользовательский рецепт.

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

Я создаю образ Yocto для Raspberry Pi CM4 с версией Yocto 5.0 (‘scarthgap’) и соответствующим слоем meta-raspberrypi. Я добавил пользовательский слой, где пытаюсь установить пароль root на “toor” с помощью пользовательского рецепта в “/yocto/mylayer/recipes-core/images/custom-image.bb”.

Содержимое custom-image.bb выглядит следующим образом:

SUMMARY = "Custom image additions"
LICENSE = "MIT"

inherit core-image
inherit extrausers 

# Change root pw
EXTRA_USERS_PARAMS = "usermod -p '\$6\$lfNRUJ5VLwiI2b8l\$SK./HnnHZoM19LuCyWO3ex.TuhAm4p.mVwXAkLYndcO7I8RbBCzzyTmow2haQmix07fTH0TM.xiRY6u48.kdX/' root;"

Я создал хешированный пароль, используя следующую команду:

openssl passwd -6 toor

При попытке войти как ‘root’ после сборки образа, я получаю только такой ответ:

raspberrypi4 login: root
Password:
Login incorrect

Дополнительная информация:

Я уже удалил “debug-tweaks” из IMAGE_FEATURES, закомментировав его в local.conf (так как я читал, что “debug-tweaks” создает конфликты при попытке установить пароль root).

Не знаю, имеет ли это значение, но я также устанавливаю следующие пакеты, используя другой пользовательский рецепт:

require recipes-core/images/core-image-minimal.bb

IMAGE_INSTALL += "libstdc++ mtd-utils"
IMAGE_INSTALL += "openssh openssl openssh-sftp-server"

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

Для решения проблемы, описанной в вашем вопросе, необходимо внимательно рассмотреть несколько аспектов процесса настройки пароля root в Yocto. Проблемы с авторизацией, типа "Login incorrect", часто связаны с несоответствиями в хэшировании паролей и их настройках в сборке Yocto. Давайте разберем возможные причины и подходы к их устранению.

Теория

Yocto — это сложная и мощная система сборки, которая позволяет разработчикам создавать полностью кастомизируемые Linux-дистрибутивы для встроенных систем. Система использует BitBake для управления процессом сборки и поддерживает создание индивидуализированных рецептов для добавления пакетов и конфигурации систем.

Для установки пароля пользователя root в Yocto обычно используются классы extrausers, которые позволяют добавлять или изменять пользователей и их атрибуты, включая пароли. Однако важно следить за форматированием и способом хэширования паролей, так как каждая ошибка может привести к невозможности входа в систему.

Пример

Вы пытаетесь установить пароль пользователя root в вашем Yocto-дистрибутиве, используя хэшированный пароль, сгенерированный через команду:

openssl passwd -6 toor

Вы добавили строку для установки пароля в файл custom-image.bb:

EXTRA_USERS_PARAMS = "usermod -p '\$6\$lfNRUJ5VLwiI2b8l\$SK./HnnHZoM19LuCyWO3ex.TuhAm4p.mVwXAkLYndcO7I8RbBCzzyTmow2haQmix07fTH0TM.xiRY6u48.kdX/' root;"

Тем не менее, после сборки образа и загрузки на Raspberry Pi, вы сталкиваетесь с проблемой при входе в систему как "root".

Применение

Шаги, которые стоит рассмотреть для устранения этой проблемы:

  1. Проверка Хэша Пароля: Убедитесь, что хэш пароля корректно сгенерирован и вставлен в рецепт. Иногда проблема может заключаться в неверно скопированном хэше или экранировании спецсимволов. Проверьте, что хэш содержит корректные символы в нужной последовательности.

  2. Проверка Конфигурации Yocto: Убедитесь, что в конфигурационных файлах Yocto нет конфликтующих настроек или параметров, которые могут влиять на настройку пароля. Особенно проверьте, что "debug-tweaks" действительно отключены, так как они могут перезаписывать изменения, вносимые EXTRA_USERS_PARAMS.

  3. Классы и Модули: Убедитесь, что ваши рецепты корректно наследуют нужные классы и включают все зависимости. Например, убедитесь, что класс extrausers подключен и функционирует:

inherit core-image
inherit extrausers
  1. Проверка Логов: Проверьте логи сборки и загрузки, чтобы увидеть, нет ли дополнительных сообщений об ошибках, связанных с созданием пользователей или авторизацией. Это может дать вам подсказки относительно места проблемы.

  2. Минимизация Кода: Если возможно, создайте минимальный тестовый образ без дополнительных пакетов, чтобы проверить, воспроизводится ли проблема в упрощенной среде. Оставьте только необходимые конфигурации для установки root-пароля, чтобы изолировать проблему.

  3. Отладка Пароля: Создайте пароль с использованием другого метода или утилиты и проверьте, будет ли новая хэш-функция работать корректно.

Применяя эти шаги, вам удастся диагностировать и, в конечном итоге, устранить проблему с неправильным логином. Если проблема продолжает возникать, возможно, стоит обратиться к документации Yocto или сообществу для получения дополнительной поддержки.

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

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