Для создания собственного слоя BSP с помощью Yocto для голой металлической доски

Я занимаюсь разработкой встроенного приложения на основе выпуска Yocto Krogoth для работы на плате Nitrogen6x. Я следовал за шагами, упомянутыми в этой ссылке. Я успешно создал дистрибутив Linux и Yocto SDK для разработки и запуска своего приложения на азотной плате. Целевая машина, которую я использовал для настройки среды для сборки, была:

MACHINE=nitrogen6x

Теперь мы достигли фазы, когда мы собираемся создать пользовательскую доску (на основе того же i.Mx.6). Реальный процессорный чип еще не определен, но он будет основан на iMx6.

Предположим, мы предполагаем, что в финальной плате также используется тот же чип процессора, что и на плате Nitrogen6x, которую я использовал для моей разработки. Нужно ли добавлять какие-либо другие CUSTOM BSP layer к моему существующему Yocto Repos для поддержки новой пользовательской платы, которую я получаю, или к существующим слоям Yocto и среде сборки, которую я создал для оценочной платы Nitrogen6x, также будет работать нормально для моей пользовательской платы?

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

Каковы основные вещи, которые я должен учитывать, если я получу изготовленную на заказ "железную" плату от производителя оборудования, который не планирует предоставлять какой-либо минимальный пакет BSP, кроме схем, отображений контактов и т. Д.

Я читал о создании пользовательского слоя BSP в документации Yocto. Но у меня в голове есть много других вещей, которые не ясны, когда я начинаю думать о специальной плате (которая не похожа на Nitrogen6x, wandboard, Raspberry Pi и т. Д., Которая получила широкую поддержку в сообществах Yocto, BSP).

РЕДАКТИРОВАТЬ 1 Например, я построил дистрибутив Linux для платы Nitrogen6x, указав имя машины в среде установки Yocto Build, для которой Yocto Framework создает дистрибутив. Я запускаю следующие инструкции:

$ MACHINE=nitrogen6x source ./setup-environment build
$ bitbake core-image-sato

Машина, о которой я упоминал в предыдущем шаге, nitrogen6x это просто файл конфигурации, который выглядит следующим образом. Этот файл, в основном, упоминает эти вещи:

  • Тип машины, для которой мы строим изображение для
  • Ядро Устройства деревьев, необходимые для платы
  • Предпочтительный поставщик Uboot (u-boot-border)
  • Предпочтительный поставщик ядра (linux-border)
  • Предпочтительный BSP (linux-fslc)
  • Загрузочный скрипт (6x_bootscript)
  • Базовая поддержка периферийных устройств, таких как (последовательный, Bluetooth, Wi-Fi или сетевые чипы)

Насколько я понимаю, в приведенном выше списке все остальное остается тем же, за исключением выделенных для пользовательской платы. Я прав с приведенными ниже пунктами?

Kernel Device Trees: Возможно, мне придется создать файл дерева пользовательских устройств для моей пользовательской платы на основе схемы и другой информации об оборудовании. Есть ли какая-либо ссылка или документ, на который я могу сослаться, чтобы создать свой собственный файл .dts?

BSP: Я ожидаю, что слой BSP, который я сейчас использую для азотной платы, возможно, будет совместим и также будет работать на заказной плате, так как он будет сделан на основе платформы iMx6. И это раздел, где я должен работать, чтобы получить подсказку? Будут ли поставщики оборудования предоставлять нам минимальный набор программного обеспечения для проверки загрузки плат и получать подсказку, или мне нужно, чтобы оно работало на голой металлической плате?

Спасибо за любую помощь, которую вы можете предоставить.

1 ответ

Решение

Я настоятельно рекомендую вам создать новый свежий слой для обработки вашего нового пользовательского устройства. Это позволит вам правильно отделить устройства и конфигурацию машины от удаленных репозиториев. Я не знаю, как планировать менеджер поставок / версий, но я предлагаю вам использовать repo, Вы найдете много информации по документации NXP.

Насколько я понимаю, в приведенном выше списке все остальное остается тем же, за исключением выделенных для пользовательской платы. Я прав с приведенными ниже пунктами?

Мы не знаем, что вы действительно ожидаете от своего пользовательского устройства. Таким образом, такая конфигурация машины может удовлетворить ваши требования, но также может потребовать корректировки. Потому что новая машина переопределена new machine override был представлен в прошлом году, на самом деле я еще не знаком с ним. Но это позволяет вам настроить свой слой BSP, добавив простую строку в local.conf, В зависимости от вашего local.conf, вы скомпилируете ядро ​​из linux-boundary или же linux-fslc рецепты.

Деревья устройств ядра: возможно, мне придется создать файл пользовательского дерева устройств для моей пользовательской платы на основе схем и другой информации об оборудовании. Есть ли какая-либо ссылка или документ, на который я могу сослаться, чтобы создать свой собственный файл.dts?

Вы можете добавить как можно больше dts ты хочешь в KERNEL_DEVICETREE = у тебя должен быть свой. Существует много информации о дтс. Перейдите по этой ссылке для первого знакомства.

Вы сможете создать свое собственное дерево устройств (например, customboard-imx6.dts) в /arch/arm/boot/dts/ каталог. Вы также можете включить его в свои источники в процессе разработки.

BSP: Я ожидаю, что слой BSP, который я сейчас использую для платы азота, может быть совместим и работать и для пользовательской платы, так как он будет сделан на основе платформы iMx6. И это раздел, где я должен работать, чтобы получить подсказку?

Если да, как вы планируете управлять источниками?

Другие вопросы по тегам