Как стать автором
Обновить

Комментарии 5

Подготовка дистрибуции может занять около часа или двух

Там все очень сильно зависит от конкретной конфигурации сборки. Если вы воткнете в сборку Chromium, то на сборку может уйти и часов 6-8.


Отдельно следует напомнить, что Yocto Project собирает образ операционной системы, а если для этой ОС нужно написать приложение на нативных языках (С/С++) — то нужно отдельно еще и собирать SDK (bitbake <image_name> -c populate_sdk), что по времени чуть меньше, но сопоставимо с самим временем сборки образа ОС.


можем переносить дистрибуцию на встраиваемые системы

Это ровно до тех пор, пока встраиваемая система не несет за собой собственного ядра и набора костылей (в них вся суть Yocto Project) для поддержки мобильного оборудования.
Потом окажется, что наборы "слоев" оказываются разные и они могут банально конфликтовать

Это ровно до тех пор, пока встраиваемая система не несет за собой собственного ядра и набора костылей (в них вся суть Yocto Project) для поддержки мобильного оборудования.
Потом окажется, что наборы «слоев» оказываются разные и они могут банально конфликтовать

Да это так. Скорей всего зависит от приготовленного BSP и количества и качества используемых пакетов. В реальных условиях при такой конфигурации как в даном примере были небольшие проблемы. Встраиваемая система на базе SAMA5D3 Xplained. Были проблемы с netsnmp и opennhrp. А вот с ядром проблем не было, но надо было отдельно делать установки ядра.

Для настройки yocto вы редактируете файлы из директории poky. Сами йоктовцы не рекомендуют такой способ, так сложнее распространять исходники своих сборкок. Вместо этого рекомендуется создавать свою директорию meta-<somename> (слой в терминах йокто) и подключать ее в /conf/bblayers.conf. Там же, в своем слое, удобно задавать рецепты образов, которые будут включать все необходимые группы пакетов и пакеты. Там же можно модифицировать рецепты из других слоев посредством .bbappend рецептов. Получается, что даже внутри небольшой команды, гораздо проще синхронизировать сборки, если вынести все изменения в отдельный слой и создать скрипт по начальному созданию директории conf.


А вы пробовали Mininet? Честно говоря, не знаю, насколько он завязан на OpenFlow, но он разрабатывался для похожих целей: упростить отладку и тестирование SDN-коммутаторов. Их подход отличается от вашего всего двумя вещами:


  • вместо виртуализации каждого виртуального хоста посредством отдельной ВМ используется network namespaces в ядре. Если вы пишете протоколы в юзерспейсе, а не в ядре, то это самый удобный вариант
  • у них есть очень элегантная консоль, которая позволяет сразу при вводе комманды сообщать, какой хост будет выполнять команду:
    mininet> h2 python -m SimpleHTTPServer 80 >& /tmp/http.log &
    mininet> h3 wget -O - h2

Правда у меня так и не получилось запустить mininet на чем-то кроме убунты

Для настройки yocto вы редактируете файлы из директории poky. Сами йоктовцы не рекомендуют такой способ, так сложнее распространять исходники своих сборкок. Вместо этого рекомендуется создавать свою директорию meta-somename (слой в терминах йокто) и подключать ее в /conf/bblayers.conf. Там же, в своем слое, удобно задавать рецепты образов, которые будут включать все необходимые группы пакетов и пакеты. Там же можно модифицировать рецепты из других слоев посредством .bbappend рецептов. Получается, что даже внутри небольшой команды, гораздо проще синхронизировать сборки, если вынести все изменения в отдельный слой и создать скрипт по начальному созданию директории conf

Да, согласно с искусством так надо делать. Просто хотел показать место где необходимо поправить. Для самого yocto пригодилась бы статья в стиле «best practice».
А вы пробовали Mininet? Честно говоря, не знаю, насколько он завязан на OpenFlow, но он разрабатывался для похожих целей: упростить отладку и тестирование SDN-коммутаторов.

Спасибо. Посмотрю.
Можно поинтересоваться, почему инстанция и дистрибуция вместо традиционных инстансов и дистрибутиовов?
Я аж Боярского вспомнил, «Инстанция, Инстанция Инстааааанция»

А за статью спасибо, тема очень интересная.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории