Xenomai + LinuxCNC, EVL + LinuxCNC из исходников
- going
- Мастер
- Сообщения: 523
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Xenomai + LinuxCNC, EVL + LinuxCNC из исходников
Тема создана для того, что бы поделиться опытом по сборке из исходников связки:
ядро XENOMAI + LinuxCNC и ядро EVL + LinuxCNC на различных архитектурах
Предлагаю обсудить варианты для различных Linux, например OpenSUSE, debian, ubuntu и др..
Какие системы сборки использовались для arm arm64 архитектур, их преимущества и недостатки.
Ресурсы:
Xenomai
https://source.denx.de/Xenomai/xenomai/-/wikis/home
https://source.denx.de/Xenomai
https://xenomai.org/downloads/ipipe
EVL сегодня это Xenomai 4
https://evlproject.org/
https://git.xenomai.org/xenomai4/linux-evl.git
https://git.xenomai.org/xenomai4/libevl.git
LinuxCNC
http://linuxcnc.org/
https://github.com/LinuxCNC/linuxcnc
http://linuxcnc.org/docs/devel/html/cod ... uxcnc.html
Armbian
https://docs.armbian.com/
https://github.com/armbian/build
Сылка на старый образ для OPI-PC2. + набор пакетов ядра xenomai и библиотеки.
https://yadi.sk/d/uXABC7CLsHzd8A
годится только для тестов и пробной сборки LinuxCNC.
Первый вход стандартный для Armbian. Пользователь: root, пароль: 1234.
Система предложит поменять пароль для root, создать пользователя и пароль.
Всё это работат в консоли (через UART) при первой загрузке.
Графическое окружение openbox. (правая клавиша мышки, меню, терминал)
Для хорошего прохождения тестов надо выделить для со-ядра xenomai и
РТ задач отдельные цпу. Для начала прочтите:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar #126
В файл /boot/ArmbianEnv.txt. добавить строчку extraargs=isolcpus=2,3 примерно так:
ядро XENOMAI + LinuxCNC и ядро EVL + LinuxCNC на различных архитектурах
Предлагаю обсудить варианты для различных Linux, например OpenSUSE, debian, ubuntu и др..
Какие системы сборки использовались для arm arm64 архитектур, их преимущества и недостатки.
Ресурсы:
Xenomai
https://source.denx.de/Xenomai/xenomai/-/wikis/home
https://source.denx.de/Xenomai
https://xenomai.org/downloads/ipipe
EVL сегодня это Xenomai 4
https://evlproject.org/
https://git.xenomai.org/xenomai4/linux-evl.git
https://git.xenomai.org/xenomai4/libevl.git
LinuxCNC
http://linuxcnc.org/
https://github.com/LinuxCNC/linuxcnc
http://linuxcnc.org/docs/devel/html/cod ... uxcnc.html
Armbian
https://docs.armbian.com/
https://github.com/armbian/build
Сылка на старый образ для OPI-PC2. + набор пакетов ядра xenomai и библиотеки.
https://yadi.sk/d/uXABC7CLsHzd8A
годится только для тестов и пробной сборки LinuxCNC.
Первый вход стандартный для Armbian. Пользователь: root, пароль: 1234.
Система предложит поменять пароль для root, создать пользователя и пароль.
Всё это работат в консоли (через UART) при первой загрузке.
Графическое окружение openbox. (правая клавиша мышки, меню, терминал)
Для хорошего прохождения тестов надо выделить для со-ядра xenomai и
РТ задач отдельные цпу. Для начала прочтите:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar #126
В файл /boot/ArmbianEnv.txt. добавить строчку extraargs=isolcpus=2,3 примерно так:
Последний раз редактировалось going 14 мар 2022, 20:00, всего редактировалось 9 раз.
Платы: BPI-M3, BPI-A64, OPI-PC2
- going
- Мастер
- Сообщения: 523
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Olej писал(а):
Там нет исходников. Там есть готовые патчи, которые готовят сами Xenomai. И в руководствах Xenomai рекомендуют использовать именно их, и нет ни слова о том, откуда и как собрать патч.
Патчи "готовятся" просто.
например
Создаст патч между версией ядра linux-stable v4.14.36 и последним коммитом ipipe в папке tmp домашней директории.
А команда
создаст патч идентичный выложенному на ресурсе для загрузки готовых патчей.
Там нет исходников. Там есть готовые патчи, которые готовят сами Xenomai. И в руководствах Xenomai рекомендуют использовать именно их, и нет ни слова о том, откуда и как собрать патч.
Патчи "готовятся" просто.
Код: Выделить всё
git diff <index> HEAD >filename.patch
git diff <teg> HEAD >filename.patch
git diff <index> <teg> >filename.patch
Код: Выделить всё
git clone https://xenomai.org/gitlab/ipipe-arm
cd ipipe-arm
git diff d6949f48093c2d862d9bc39a7a89f2825c55edc4 HEAD >~/tmp/patch-ipipe-arm-v4.14.36.patch
А команда
Код: Выделить всё
git diff d6949f48093c2d862d9bc39a7a89f2825c55edc4 ipipe-core-4.14.36-arm-1 >~/tmp/patch-ipipe-core-4.14.36-arm-1.patch
Платы: BPI-M3, BPI-A64, OPI-PC2
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Вот за эту информацию, а особенно за ссылку GIT, большое спасибо.going писал(а): Патчи "готовятся" просто.напримерКод: Выделить всё
git diff <index> HEAD >filename.patch git diff <teg> HEAD >filename.patch git diff <index> <teg> >filename.patch
Создаст патч между версией ядра linux-stable v4.14.36 и последним коммитом ipipe в папке tmp домашней директории.Код: Выделить всё
git clone https://xenomai.org/gitlab/ipipe-arm cd ipipe-arm git diff d6949f48093c2d862d9bc39a7a89f2825c55edc4 HEAD >~/tmp/patch-ipipe-arm-v4.14.36.patch
А командасоздаст патч идентичный выложенному на ресурсе для загрузки готовых патчей.Код: Выделить всё
git diff d6949f48093c2d862d9bc39a7a89f2825c55edc4 ipipe-core-4.14.36-arm-1 >~/tmp/patch-ipipe-core-4.14.36-arm-1.patch
В самом общем виде (для разных архитектур) - это будет: https://gitlab.denx.de/Xenomai/.
Ещё недавно (2-3 месяца назад ... из 15 лет истории проекта Xenomai) этих всех ресурсов не было. Philippe Gerum (основной разработчик Xenomai из 2-3-х оставшихся активными) перекроил (в лучшую сторону) все ресурсы, между версиями 3.0.6 и 3.0.7 (которая 3.0.7 на сегодня и существует только для архитектур ARM, для небольшого числа, по драйверам RTDM, периферийного оборудования).
P.S. Если рассмотреть (интересно) саму историю этого GIT-сервера Xenomai, то присоединения новых разработчиков к нему началось:
До этого это был не публичный (не открытый для доступа) собственный ресурс Philippe Gerum (который ведёт, давно, и майлинг-лист Xenomai).4 months ago
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Я собирал (успешно) Xenomai 3.06 для архитектуры x86_64. Собирал в дистрибутиве Mint 18.3 ... но вид дистрибутива для этого дела не имеет абсолютно никакого значения (я проделывал такую сборку ... не совсем до конца ... в Fedora 27).going писал(а):ядро XENOMAI + LinuxCNC на архитектурах 1) x86, x86_64 2) arm, arm64.
Предлагаю обсудить варианты для различных Linux, например OpenSUSE, debian, ubuntu и др..
Какие системы сборки использовались для arm arm64 архитектур, их преимущества и недостатки.
Эта сборка не сейчас используется как рабочий инструмент (десктоп, среда разработки) в крупном проекте реального предприятия производителя электронного оборудования, проект продолжается, даже в стартовой фазе ... собственно, это обстоятельный проект из области робототехники, рассчитанный на 3-5 лет. Эта сборка, которая упоминается - это только предварительный "первый ком", и для встраивания в конечное изделие будет (должна, надлежит) ещё не раз пересобираться.
Я собирал (почти до конца, но пока безуспешно) сборку под ARM Orange Pi One. Сборка делалась (делается и будет делаться ) в системе сборки BuildRoot (самой последней версии, с GIT проекта, там есть уже дерево устройств, дефаулт, для моделей линейки Orange Pi).
Проблема сборки - в синтаксических ошибках имеенно при финальной сборке самого проекта Xenomai - очень неаккуратно и быстро подготавливаемые, сменяемые изменения на исходниках Xenomai ... такие вещи как пропущено, не указано #include и т.п.
(в чём там фича-баг сборки? ... а она в том, что Xenomai предлагают и предполагают не стандартную утилиту patch для наложения патча ядра, а свой собственный ручной скрипт в составе дистрибутива Xenomai ... если кого заинтересует - расскажу то, до чего я уже смог доискаться).
Я устанавливал, испытывал и использовал готовую сборку с Xenomai 3.0.5, которую собрали и используют (свободно выложена) в одном из голландских университетов (я где-то показывал ссылки, но если надо - повторю).
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Подскажите-растолкуйте: что это за <index> которым вы так легко распоряжаетесь в git diff ... что это? откуда эти странные значения?going писал(а): Патчи "готовятся" просто.напримерКод: Выделить всё
git diff <index> HEAD >filename.patch git diff <teg> HEAD >filename.patch git diff <index> <teg> >filename.patch
Создаст патч между версией ядра linux-stable v4.14.36 и последним коммитом ipipe в папке tmp домашней директории.Код: Выделить всё
git clone https://xenomai.org/gitlab/ipipe-arm cd ipipe-arm git diff d6949f48093c2d862d9bc39a7a89f2825c55edc4 HEAD >~/tmp/patch-ipipe-arm-v4.14.36.patch
А командасоздаст патч идентичный выложенному на ресурсе для загрузки готовых патчей.Код: Выделить всё
git diff d6949f48093c2d862d9bc39a7a89f2825c55edc4 ipipe-core-4.14.36-arm-1 >~/tmp/patch-ipipe-core-4.14.36-arm-1.patch
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
По поводу ресурсов ... если кому-то и вправду придёт в голову возиться с hard realtime системой Xenomai (и это, пожалуй, единственная на сегодня система реализационного уровня, не экспериментальные изыски, которая позволяет выжать hard realtime на базе Linux и применения общеупотребительных библиотек Linux).going писал(а): Ресурсы:
https://xenomai.org/
http://xenomai.org/installing-xenomai-3-x/
http://xenomai.org/building-application ... nomai-3-x/
http://xenomai.org/running-applications ... nomai-3-x/
http://xenomai.org/migrating-from-xenomai-2-x-to-3-x/
http://xenomai.org/documentation/xenoma ... index.html
http://xenomai.org/troubleshooting-a-du ... iguration/
http://xenomai.org/troubleshooting-a-si ... iguration/
1. Имеет смысл смотреть только в сторону версий 3.0.Х ... всё предыдущее (последние - это версии 2.6.Х) отбросить как страшный сон - оно всё почти абсолютно несовместимо - чтоб не путалось под ногами ... никаких migrating-from
2. В Xenomai 3.0.X появились 2 ... "окружения" : Cobalt (dual-kernel) и Mercury (single-kernel). Mercury - это вообще непонятно какой и куда занос ... это у Philippe Gerum, скорее всего, просто крыша чуть поехала - это использование API Xenomai без какого-либо реалтайма вообще, со стандартным Linux ядром. Это, возможно, годится только для отладки синтаксиса будущих пользовательских приложений когда Cobalt (realtime) системы нет под рукой.
P.S. То что я написал - это не моя выдумка, это - прямые ответы Philippe Gerum в майлинг-лист (могу URL поискать), когда появление Mercury вызвало у меня недоумение (сохранившееся до сейчас ).
Поэтому в сторону ресурсов касающихся Mercury (или single-kernel) - даже не смотрим.
Итого, из названных ресурсов уже ~50% отпадает ... что облегчает картину.
P.S. А вообще ... за 15 лет существования проекта Xenomai, документацию, техописания они так и не удосужились написать ... техдокументация - ужасная
И только в последние 3-4 месяцев что-то начинают подписывать (и с этого времени происходит полная реорганизация ресурсов по Xenomai, и годами стоявшие ссылки поплыли ... или это так обычно выглядит не реорганизация, а делёжка? ).
Последний раз редактировалось Olej 09 июл 2018, 12:59, всего редактировалось 1 раз.
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Это патчи, реализующие проект Adeos (Adaptive Domain Environment for Operating Systems).going писал(а): Патчи "готовятся" просто.
Для понимания откуда hard realtime, и работы с Xenomai - это очень важно.
Очень полезно почитать Adeos (Adaptive Domain Environment for Operating Systems) на сайте Национальная библиотека им. Н. Э. Баумана.
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Для realtime использования у вас должен получиться образ системы (патченый ipipe / Adeos), в котором можно сразу посмотреть (это такой хороший простой тест) символы ядра, появившиеся вновь от Xenomai:Olej писал(а): Поэтому в сторону ресурсов касающихся Mercury (или single-kernel) - даже не смотрим.
Код: Выделить всё
root@xenomai3debian:~# cat /proc/kallsyms | grep " T rtdm_"
ffffffff81158e40 T rtdm_dev_unregister
ffffffff81158f80 T rtdm_dev_register
ffffffff81159620 T rtdm_cleanup
ffffffff811596d0 T rtdm_task_join
ffffffff81159730 T rtdm_task_busy_sleep
ffffffff81159770 T rtdm_toseq_init
ffffffff811597a0 T rtdm_nrtsig_pend
ffffffff811598a0 T rtdm_mmap_to_user
ffffffff81159900 T rtdm_iomap_to_user
ffffffff811599e0 T rtdm_mmap_iomem
ffffffff81159b50 T rtdm_mmap_kmem
ffffffff81159b70 T rtdm_mmap_vmem
ffffffff81159b90 T rtdm_munmap
ffffffff81159cc0 T rtdm_task_init
ffffffff81159d80 T rtdm_irq_request
ffffffff81159df0 T rtdm_schedule_nrt_work
ffffffff81159e70 T rtdm_ratelimit
ffffffff81159fe0 T rtdm_mutex_timedlock
ffffffff8115a1c0 T rtdm_mutex_lock
ffffffff8115a1e0 T rtdm_timer_stop
ffffffff8115a2d0 T rtdm_timer_destroy
ffffffff8115a3b0 T rtdm_mutex_init
ffffffff8115a4a0 T rtdm_timer_start
ffffffff8115a6e0 T rtdm_event_pulse
ffffffff8115a750 T rtdm_mutex_destroy
ffffffff8115a7b0 T rtdm_event_destroy
ffffffff8115a810 T rtdm_sem_destroy
ffffffff8115a870 T rtdm_event_select
ffffffff8115aa10 T rtdm_sem_select
ffffffff8115abd0 T rtdm_event_clear
ffffffff8115ad10 T rtdm_sem_up
ffffffff8115aec0 T rtdm_event_timedwait
ffffffff8115b0e0 T rtdm_event_wait
ffffffff8115b100 T rtdm_sem_init
ffffffff8115b270 T rtdm_sem_timeddown
ffffffff8115b490 T rtdm_sem_down
ffffffff8115b4b0 T rtdm_event_init
ffffffff8115b640 T rtdm_event_signal
ffffffff8115b7f0 T rtdm_mutex_unlock
ffffffff8115baf0 T rtdm_fd_get
ffffffff8115bf80 T rtdm_fd_put
ffffffff8115c020 T rtdm_fd_fcntl
ffffffff8115c0a0 T rtdm_fd_unlock
ffffffff8115c1e0 T rtdm_fd_lock
ffffffff8115c310 T rtdm_fd_close
ffffffff8115c5d0 T rtdm_fd_write
ffffffff8115c7a0 T rtdm_fd_sendmsg
ffffffff8115c960 T rtdm_fd_recvmsg
ffffffff8115cb20 T rtdm_fd_read
ffffffff8115ccf0 T rtdm_fd_ioctl
ffffffff8115cf00 T rtdm_fd_enter
ffffffff8115d360 T rtdm_fd_mmap
ffffffff8115d500 T rtdm_fd_valid_p
ffffffff8115d640 T rtdm_fd_select
ffffffff8115d700 T rtdm_fd_cleanup
ffffffff8115d730 T rtdm_fd_init
ffffffff819ce36d T rtdm_init
Это, казалось бы, символы ядра (по команде судя привычно) ... но это символы совсем другого ядра, не Linux, а микроядра Xenomai. Которое лежит в той же привилегированной адресной области RAM (кольцо защиты 0) что и ядро Linux, но это другое ядро ОС, которое перехватывает запросы к ядру, требующие realtime обслуживания, раньше ядра Linux (как раз за счёт перераспределтеля прерываний Adeos, ipipe).
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Вот что говорится по этому поводу в ... единственном, пожалуй, компетентном источнике - Installing Xenomai 3.x:Olej писал(а): Проблема сборки - в синтаксических ошибках имеенно при финальной сборке самого проекта Xenomai - очень неаккуратно и быстро подготавливаемые, сменяемые изменения на исходниках Xenomai ... такие вещи как пропущено, не указано #include и т.п.
(в чём там фича-баг сборки? ... а она в том, что Xenomai предлагают и предполагают не стандартную утилиту patch для наложения патча ядра, а свой собственный ручной скрипт в составе дистрибутива Xenomai ... если кого заинтересует - расскажу то, до чего я уже смог доискаться).
Preparing the Cobalt kernel
Xenomai/cobalt provides a real-time extension kernel seamlessly integrated to Linux, therefore the first step is to build it as part of the target kernel. To this end, scripts/prepare-kernel.sh is a shell script which sets up the target kernel properly. The syntax is as follows:Код: Выделить всё
$ scripts/prepare-kernel.sh [--linux=<linux-srctree>] [--ipipe=<ipipe-patch>] [--arch=<target-arch>]
Т.е. их нормальный Linux patch (команда, утилита) и они патчат ядро своим патчем при помощи своего патч-скрипта.For instance, the following command would prepare the Linux tree located at /home/me/linux-3.10-ipipe in order to patch the Xenomai support in:Note: The script will infer the location of the Xenomai kernel code from its own location within the Xenomai source tree. For instance, if /home/me/xenomai-3/scripts/prepare-kernel.sh is executing, then the Xenomai kernel code available from /home/me/xenomai-3/kernel/cobalt will be patched in the targetКод: Выделить всё
$ cd xenomai-3 $ scripts/prepare-kernel.sh --linux=/home/me/linux-3.10
Linux kernel.
И это не shell-обёртка к системному patch на 2-3 сточки:
Код: Выделить всё
[olej@dell scripts]$ cat prepare-kernel.sh | wc -l
453
Последний раз редактировалось Olej 09 июл 2018, 17:47, всего редактировалось 1 раз.
- going
- Мастер
- Сообщения: 523
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Xm... Дык почитать, документацию GIT надобно.Olej писал(а):Подскажите-растолкуйте: что это за <index> которым вы так легко распоряжаетесь в git diff ... что это?
В интернете полно на родном языке. googl & yandex поможет.
<index> - это 16-ричное уникальное число "d6949f48093c2d862d9bc39a7a89f2825c55edc4" коммита.
Именно этот коммит соответсвует тегу v4.14.4 в git linux-stable,
[url]git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git[/url]
т.е. между этим коммитом и заголовком ветки добавлен код ipipe
Платы: BPI-M3, BPI-A64, OPI-PC2
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
С индексом я как-то по документации разберусь ... но как вот таким манером изготовить патч для произвольного ядра? Скажем ... 4.13 ... или 4.15.going писал(а):Xm... Дык почитать, документацию GIT надобно.Olej писал(а):Подскажите-растолкуйте: что это за <index> которым вы так легко распоряжаетесь в git diff ... что это?
<index> - это 16-ричное уникальное число "d6949f48093c2d862d9bc39a7a89f2825c55edc4" коммита.
В интернете полно на родном языке. googl & yandex поможет.
По приводимым примерам, синтаксису - этого никак не видно.
Или этот приём позволяет оформить патч (как файл) только для той, единой и исключительной версии ядра (меняемой время от времени, 1-2 раза в год), который использовали для сборки патча авторы Xenomai?
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
А вот если это патч к только избранному ядру, которое выбрали в качестве "подопытного" авторы Xenomai, то тогда и нет просто никакого смысла собирать эти патчи из этого исходника.going писал(а): Именно этот коммит соответсвует тегу v4.14.4 в git linux-stable,
[url]git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git[/url]
т.е. между этим коммитом и заголовком ветки добавлен код ipipe
А проще взять готовые патчи здесь: Index of /downloads/ipipe/v4.x:
Где, кстати, собраны последние патчи для очень разных версий ядра, в зависимости от выбранной платформы. Например, 4.14.36 для ARM (собранный всего только 12-Jun-2018), но для x86 - только 4.9.90.[DIR] arm/ 12-Jun-2018 19:15 -
[DIR] arm64/ 08-Apr-2018 16:47 -
[DIR] blackfin/ 26-Mar-2018 09:31 -
[DIR] powerpc/ 26-Mar-2018 09:31 -
[DIR] ppc32/ 03-Jul-2018 13:10 -
[DIR] x86/ 26-Mar-2018 17:54 -
О чём, о использовании этих патчей и из этого URL и рекомендуют Xenomai в документации, в инструкции по сборке.
P.S. Тогда, при таком подходе, выставление на публичный доступ GIT по ipipe практически ничего не добавляет
- going
- Мастер
- Сообщения: 523
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Если честно, то я ничего не понял из сказанного.Olej писал(а):Я собирал (почти до конца, но пока безуспешно) сборку под ARM Orange Pi One. Сборка делалась (делается и будет делаться ) в системе сборки BuildRoot (самой последней версии, с GIT проекта, там есть уже дерево устройств, дефаулт, для моделей линейки Orange Pi).
Проблема сборки - в синтаксических ошибках имеенно при финальной сборке самого проекта Xenomai - очень неаккуратно и быстро подготавливаемые, сменяемые изменения на исходниках Xenomai ... такие вещи как пропущено, не указано #include и т.п.
(в чём там фича-баг сборки? ... а она в том, что Xenomai предлагают и предполагают не стандартную утилиту patch для наложения патча ядра, а свой собственный ручной скрипт в составе дистрибутива Xenomai ... если кого заинтересует - расскажу то, до чего я уже смог доискаться).
Предлагаю разобраться по порядку.
1) Этап сборки, на котором ошибка. Сама ошибка.
2) Обсуждение
3) Двигаемся дальше
P.S.
По шагам изложенным в
я написал небольшой скрипт, который собирает и ядро и библиотеки для доступных архитектур.Olej писал(а):компетентном источнике - Installing Xenomai 3.x:
Собирал, как из ГИТ источников, так и патчил исходники ядра.
Сборка проходит без ошибок. Из этого делаю вывод: в коде Xenomai ошибок нет.
Платы: BPI-M3, BPI-A64, OPI-PC2
- going
- Мастер
- Сообщения: 523
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Ответ содержиться в вопросе.Olej писал(а):С индексом я как-то по документации разберусь ... но как вот таким манером изготовить патч для произвольного ядра?
Платы: BPI-M3, BPI-A64, OPI-PC2
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
К этим ресурсам можно добавить:going писал(а): Ресурсы:
https://xenomai.org/
http://xenomai.org/installing-xenomai-3-x/
http://xenomai.org/building-application ... nomai-3-x/
http://xenomai.org/running-applications ... nomai-3-x/
http://xenomai.org/migrating-from-xenomai-2-x-to-3-x/
http://xenomai.org/documentation/xenoma ... index.html
http://xenomai.org/troubleshooting-a-du ... iguration/
http://xenomai.org/troubleshooting-a-si ... iguration/
Overzicht voorbeelden - это какой-то сайт на нидерландском языке с кучей примеров кода под Xenomai, особенно учитывая, что в Xenomai, кроме библиотек и API включены: а). модель написания драйверов realtime в параллель к существующим драйверам Linux, б). сторонний проект Ethernet сети realtime - RTnet, в). ещё пару-тройку интегрированных сторонних проектов за последние 4-5 лет.
Периодическая нить не работает в режиме реального времени в Xenomai - пример кода и объяснение вопроса, связанные с ещё одним таким интегрированным недавно проектом Analogy (скин Analogy).
(Beta) Xenomai 3.0.5 on Ubuntu 14.04/16.04 - ещё один какой-то университетский сайт, содержащий подробности по Xenomai и RTnet, которых нет даже на сайте Xenomai, относительно деталей установки и доведения до работоспособности.
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Да нет там никакого ответа!going писал(а):Ответ содержиться в вопросе.Olej писал(а):С индексом я как-то по документации разберусь ... но как вот таким манером изготовить патч для произвольного ядра?
Не нужно становиться в позу и что-то там изображать ... Xenomai можно собрать только для крайне ограниченного числа версия ядер, которые предлагают авторы Xenomai.
И только для крайне ограниченного набора периферийных чипов ... например, RT-драйверы GPIO доступны только для нескольких образцов под ARM, и ни для одной модели под x86.
Это информация, подтверждённая (хоть и с кривлянием и неудовольствием) в переписке Philippe Gerum <rpm@xenomai.org>.
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Это только если сильно в облом читать и понимать...going писал(а):Olej писал(а):Я собирал (почти до конца, но пока безуспешно) сборку под ARM Orange Pi One. Сборка делалась (делается и будет делаться ) в системе сборки BuildRoot (самой последней версии, с GIT проекта, там есть уже дерево устройств, дефаулт, для моделей линейки Orange Pi).
Проблема сборки - в синтаксических ошибках имеенно при финальной сборке самого проекта Xenomai - очень неаккуратно и быстро подготавливаемые, сменяемые изменения на исходниках Xenomai ... такие вещи как пропущено, не указано #include и т.п.
(в чём там фича-баг сборки? ... а она в том, что Xenomai предлагают и предполагают не стандартную утилиту patch для наложения патча ядра, а свой собственный ручной скрипт в составе дистрибутива Xenomai ... если кого заинтересует - расскажу то, до чего я уже смог доискаться).
Если честно, то я ничего не понял из сказанного.
- Чукча ж писатель! Чукча не читатель!
Чтоб быть конкретным:going писал(а): P.S.
По шагам изложенным вя написал небольшой скрипт, который собирает и ядро и библиотеки для доступных архитектур.Olej писал(а):компетентном источнике - Installing Xenomai 3.x:
Собирал, как из ГИТ источников, так и патчил исходники ядра.
Сборка проходит без ошибок. Из этого делаю вывод: в коде Xenomai ошибок нет.
- Для каких архитектур? x86? Для x86 и я собирал.
- Или для ARM (потому как архитектуры во множественном числе)? (вот голландцы собрали 3.05 под Rapsbery Pi, я собирал под Orange Pi, ... а вы? )
- Если для ARM, то для какой конкретно конфигурации машины?
Потому что ARM без DeviceTree, без файлов .dts (или на худой конец .dtb) не соберётся ... даже если систему соберёте, то модули ядра Xenomai не соберёте, потому что Xenomai могут собирать свои модули ядра только на основе DeviceTree
И далее...
Собирали по инструкции от Xenomai?
С патченьем ядра их скриптом, как они пишут?
Т.е. это - ручная сборка, полностью повторяющая тот единственный способ, который обкатали Xenomai.
А интересовала бы сборка инструментом сборки BuildRoot (как и было указано) ... которым Xenomai Mercury (под ARM) собирается "на ура", а Xenomai Cobalt валится по ошибкам, ошибкам глупым, типа "... не найден #include ..." и т.п.
Причём, что характерно, ошибки разные при сборке Xenomai 3.05, 3.06, 3.07.
И от людей, кто собирал (успешно в конечном итоге!) сообщается, что версия 3.06 с GIT (пока она была последней, месяц назад) то собиралась, то не собиралась ... по ходу правки авторами GIT. И заинтересованные лица откатывались к 3.05 временно, чтобы не играться в эти игры:
... здесь играем ... здесь не играем - здесь селёдку заворачивали.
- going
- Мастер
- Сообщения: 523
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
А кто бы спорил.Olej писал(а):Xenomai можно собрать только для крайне ограниченного числа версия ядер, которые предлагают авторы Xenomai.
Вы, как мне кажется, человек сведующий, но стиль изложения мыслей немного путанный и местами вводит меня в заблуждение.
Догадываться из контекста, что требуется?
Попробуйте формулировать более конкретно и по одному вопросу.
В документации изложено, как написать дополнительный код для нового Soc.Olej писал(а):например, RT-драйверы GPIO доступны только для нескольких образцов под ARM,
Для того, чтобы продвинуть код ipipe из GIT в верх по течению (git merge) придётся "погрузиться в этот код с головой",
понять как он работает, и как его можно изменить, если изменился код в ядре.
-> x86, x86_64, arm, arm64Olej писал(а):- Для каких архитектур?
Платы: BPI-M3, BPI-A64, OPI-PC2
- Maxekb77
- Мастер
- Сообщения: 1658
- Зарегистрирован: 05 окт 2013, 00:04
- Репутация: 285
- Настоящее имя: Максим
- Откуда: Екатеринбург
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
А можно для простых смертных, наФига оно надо ?
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Про ARM - не верю.going писал(а):-> x86, x86_64, arm, arm64Olej писал(а):- Для каких архитектур?
ARM можно собрать только под конкретный SoC, а не "ARM-вообще".
Откуда брали .dts, DeviceTree ... а ещё хуже - оверлеи DeviceTree, как для Rapsbery Pi.