going писал(а):
Olej писал(а):Но, как я предполагаю, вы:
- не собирали userspace дистрибутива Xenomai (3.05, 3.06, или 3.07)
- не инсталлировали собранное в патченой системе
- и не проверяли хактеристики (успешность) собранного ... хотя бы, для простоты и скорости, только встроенными инструментами Xenomai.
Если так, то именно на сборке userspace дистрибутива Xenomai и вылазят ошибки сборки.
Вы собираите в BuildRoot. ( там uglibs? )
На этой ситеме сборки основаны все оригинальные BSP производителей плат с устаревшими ядрами.
Ошибок там море. И недоделок то же. По крайней мере 2 года назад так было. Я от неё отказался и написал свою.
BuildRoot очень динамично прогрессирует (возможно те "2 года назад"
) + его используют для сборки своих образов системы очень многие промышленные производители embedded устройств для своих серийных изделий. Так что, в некотором смысле, его можно считать отраслевым стандартом в этой сфере.
Я собирал с BuildRoot разные образы (разного наполнения) и для Orange Pi, и для Rapsberry Py, и x86 под QEMU для последующего переноса на железо. Никаких нигде ошибок и косяков.
Более того, я собирал рабочий образ (Orange Pi, всё с BuildRoot) с Xenomai Mercury (1-ядерная конфигурация, как они называют, без ipipe) ... но это не то что надо, ... но можно писать и выполнять с Xenomai API.
Собирал, обновлял сборку ядра, и с помощью Armbian ... и тоже всё успешно, но без патча ipipe, и в обсуждениях с авторами среды сборки Armbian было сказано (предположено) что выполнять внешние скрипты патченья между фазами сборки не представляется возможным.
Своей системы сборки у меня нет, и писать такую я не собираюсь.
P.S. Кто такой uglibs я не знаю, не соображу. Если вы имеете в виду стандартную C-библиотеку, то там можно на выбор альтернативу указывать.
going писал(а):
Вы собрали ядро ipipe и библиотеки Xenomai, а добавившийся функционал в дереве объектов не прописали или прописали не корректно?
Я использовал готовые патчи ipipe от авторов Xenomai.
Использовать GIT исходников ipipe смысла нет, потому как это не добавляет возможности сборки патча под другие версии ядра Linux, кроме тех, которые собрали в Xenomai... как стало понятно здесь в обсуждении выше.
Xenomai
настаивают в документации чтобы патченье ядра Linux делалось
их скриптом prepare-kernel.sh в дереве исходников Xenomai, который имеет, на минуточку, 453 строк shell-кода патченья.
Когда я
применяю этот их проприетарный скрипт патченья ядра (x86) - вся сборка успешная, собирается работоспособная и тестируемая reakrime система.
Когда ipipe подсовывается BuildRoot (указанием в меню конфигурации) как стандартный патч-скрипт для команды patch - вываливаются ошибки при последней фазе сборки дерева исходников проекта Xenomai.
Та же история со сборкой Armbian (по их авторскому мнению) - применить патчи стандартной командой можно, поместив (добавив) патч-скрипт в определённый каталог; выполнять собственный скрипт патченья - нет.
В этом и
основной вопрос: если вы делаете успешную сборку системы Xenomai Cobalt, до конца, с установкой Xenomai tools - то
патчили ядро Linux патчем ipipe скриптом prepare-kernel.sh от Xenomai, или стандартными средствами Linux?