Xenomai + LinuxCNC, EVL + LinuxCNC из исходников

Общие вопросы по операционным системам семейства Linux.
Аватара пользователя
going
Мастер
Сообщения: 518
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going »

На процессоре Н3, плата Orangepilite, root раздел находится на флешке.
Показания ciclictest:
allcpu_opilite.png (4247 просмотров) <a class='original' href='./download/file.php?id=145773&sid=fc82df9fb337b4a89afbea1fdd53761c&mode=view' target=_blank>Загрузить оригинал (14.21 КБ)</a>
Благодарности: Maxekb77
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7467
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3089
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение MX_Master »

Ну чё там? Плохие результаты тестов или хорошие?
Аватара пользователя
going
Мастер
Сообщения: 518
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going »

MX_Master писал(а):Ну чё там? Плохие результаты тестов или хорошие?
Результаты не очень. Поэтому публиковать не стал.
Но информации для отладки хватает. Готовлю второй вариант.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
Сообщения: 518
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going »

MX_Master писал(а):Ну чё там? Плохие результаты тестов или хорошие?
Пословица: "На каждого мудреца довольно простоты" в моём случае сработала.
Измерения проводил не коректно и в коде cyclictest от xenomai что то считалось не так, поэтому результаты измерений были странными.
С последними обновами они это поправили и все встало на свои места.

Возможности и варианты для РТ задачи:
Из пространства пользователя с высоким приоритетом.
Из пространства ядра Linux
Работа на CPU общего пользования.
Работа на выделенном CPU


Результаты последних тестов:
Плата - Orange PI PC2,
CPU: H5
root / --> USB_SSD
Выделил 3 и 4 процессор для РТ, а 1 и 2 отдал под общие задачи.
В параметрах загрузки ядра присутствует ( isolcpus=2,3 ).
cyclictest из пространства пользователя в среде Х11 + firefox + видео в браузере (4060 просмотров) <a class='original' href='./download/file.php?id=148037&sid=fc82df9fb337b4a89afbea1fdd53761c&mode=view' target=_blank>Загрузить оригинал (13.65 КБ)</a>
cyclictest из пространства пользователя в среде Х11 + firefox + видео в браузере
cyclictest в консоли без нагрузки из пространства пользователя (4060 просмотров) <a class='original' href='./download/file.php?id=148038&sid=fc82df9fb337b4a89afbea1fdd53761c&mode=view' target=_blank>Загрузить оригинал (12.02 КБ)</a>
cyclictest в консоли без нагрузки из пространства пользователя
У xenomai имеется своя утилита, которую можно запускать,
как в пространстве пользователя, так и в пространстве ядра Linux.

Показываю итоговые результаты в пространстве ядра Linux. Без графиков.
Под нагрузкой на общем CPU X11:

Код: Выделить всё

RTT|  00:04:55  (in-kernel periodic task, 1000 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD|     -0.697|      2.154|     33.287|       0|     0|     -0.697|     93.771
RTD|     -0.013|      2.487|     42.774|       0|     0|     -0.697|     93.771
RTD|     -0.021|      3.041|     39.823|       0|     0|     -0.697|     93.771
RTD|     -0.011|      2.340|     38.675|       0|     0|     -0.697|     93.771
Под нагрузкой на выделенном CPU X11:

Код: Выделить всё

RTT|  00:04:55  (in-kernel timer handler, 1000 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD|      0.319|      5.942|     37.613|       0|     0|     -0.399|     45.888
RTD|      0.329|      5.040|     28.577|       0|     0|     -0.399|     45.888
RTD|      0.320|      4.970|     27.285|       0|     0|     -0.399|     45.888
RTD|      0.299|      4.232|     19.567|       0|     0|     -0.399|     45.888
RTD|      0.211|      3.678|     16.972|       0|     0|     -0.399|     45.888
---|-----------|-----------|-----------|--------|------|-------------------------
RTS|     -0.399|      2.216|     45.888|       0|     0|    00:04:59/00:04:59
Без нагрузки на выделенном CPU X11:

Код: Выделить всё

RTT|  00:04:55  (in-kernel timer handler, 1000 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD|      0.253|      0.336|      2.225|       0|     0|     -0.415|     18.502
RTD|      0.251|      0.335|      2.080|       0|     0|     -0.415|     18.502
RTD|      0.250|      0.324|      0.616|       0|     0|     -0.415|     18.502
RTD|      0.253|      0.342|      2.434|       0|     0|     -0.415|     18.502
Без нагрузки на выделенном CPU в консоли:

Код: Выделить всё

RTT|  00:04:55  (in-kernel timer handler, 1000 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD|     -0.227|      0.329|      0.975|       0|     0|     -0.418|      1.998
RTD|     -0.226|      0.336|      1.129|       0|     0|     -0.418|      1.998
RTD|      0.251|      0.331|      1.009|       0|     0|     -0.418|      1.998
RTD|     -0.337|      0.332|      1.079|       0|     0|     -0.418|      1.998
---|-----------|-----------|-----------|--------|------|-------------------------
RTS|     -0.418|      0.327|      1.998|       0|     0|    00:04:59/00:04:59
:good: всего 2 миллисекунды!

На этом буду считать код ядра xenomai рабочим.
Можно приступать к сборке и настройке дистрибутива с этим ядром.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение antoxa-kylibin »

Не дурно!!! Когда же появятся первые сборки xenomai+LinuxCNC для широких масс? Для каждой версии платы нужно будет отдельно собирать из исходников ядро и дружить его с LinuxCNC или будут 2 версии сборок для H3 и H5 чипов?
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение PKM »

going писал(а): всего 2 миллисекунды!
микросекунды?
Аватара пользователя
going
Мастер
Сообщения: 518
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going »

PKM писал(а):going писал(а):
всего 2 миллисекунды!

микросекунды?
Да. Конечно же микросекунды. Очепятка.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
Olej
Кандидат
Сообщения: 66
Зарегистрирован: 03 июл 2018, 22:41
Репутация: 4
Настоящее имя: Олег Цилюрик
Откуда: Харьков
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение Olej »

going писал(а):На этом буду считать код ядра xenomai рабочим.
Можно приступать к сборке и настройке дистрибутива с этим ядром.
Ну, а дальше? Как там дела?
asdus
Новичок
Сообщения: 4
Зарегистрирован: 11 июл 2016, 19:55
Репутация: 1
Настоящее имя: Иван
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение asdus »

Olej писал(а):Ну, а дальше? Как там дела?
Не знаю как у автора темы, а я меня пока не работает сам linuxcnc с xenomai 3. С xenomai 2 все ок.
Аватара пользователя
Olej
Кандидат
Сообщения: 66
Зарегистрирован: 03 июл 2018, 22:41
Репутация: 4
Настоящее имя: Олег Цилюрик
Откуда: Харьков
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение Olej »

asdus писал(а):Не знаю как у автора темы, а я меня пока не работает сам linuxcnc с xenomai 3. С xenomai 2 все ок.
С Xenomai 2 не интересно - это очень устаревшая линия.
Xenomai 3 нужно собирать в варианте Cobalt, но не в варианте Mercury.
Там всё собирается, но тягомутно и противно, см. Xenomai и real-time Linux , Raspberry Pi: hard realtime Linux/Xenomai - может чего-то подскажет.

P.S. Вообще то, противность там одна: патч проекта ipipe ... который бы, в умелых руках, можно бы сделать в виде динамически подгружаемого модуля ядра - тогда это могло бы собираться к любому ядру, а не только к "кошерным" на выбор. Но они его упорно и неизменно волочат в форме патченья ядра.
Там из всей команды Xenomai остался фактически единственный активный разработчик Philippe Gerum (<rpm@xenomai.org>), но а). он определённо просто не успевает + б). его самого интересуют ARM, и, главным образом, такая игрушка как Rapsberry Pi, а не серьёзные устройства промышленного уровня.
asdus
Новичок
Сообщения: 4
Зарегистрирован: 11 июл 2016, 19:55
Репутация: 1
Настоящее имя: Иван
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение asdus »

Olej писал(а):который бы, в умелых руках, можно бы сделать в виде динамически подгружаемого модуля ядра
Нельзя. Так-же как нельзя PREEMPT_RT сделать модулем.
Olej писал(а):Xenomai 3 нужно собирать в варианте Cobalt, но не в варианте Mercury.
Ни так ни так не работает linuxcnc. Я по рыхлому пропатчил инклюды до совместимости с v3, собирается но не работает. Глубже пока не копал.
Я вообще не уверен, что он будет работать даже с оригинальным xenomai v2. Потому как xenomai от mackinekit достаточно сильно отличается от оригинального xenomai по abi.
И, по внешнему виду, поддержка xenomai в linuxcnc сделана именно под ядро от machinekit.
Olej писал(а):С Xenomai 2 не интересно - это очень устаревшая линия.
Таки да. Но, опять же, xenomai 2 ядра у меня, пока, работают быстрее, чем xenomai 3.
Аватара пользователя
going
Мастер
Сообщения: 518
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going »

Olej писал(а):Ну, а дальше? Как там дела?
Пока борюсь со сборкой пакетов *.deb.
Хочется всё сделать по правилам дистрибутива.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
Сообщения: 518
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going »

asdus писал(а):Не знаю как у автора темы, а я меня пока не работает сам linuxcnc с xenomai 3. С xenomai 2 все ок.
А подробности в студию? Интересно с какими параметрами сборки не работает?
Версия ядра <--> Версия xenomai. -> архитектура -> Плата => Система сборки, операционная система ??

P.S. Список ошобок, которые в терминал вываливаютя.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
donvictorio
Мастер
Сообщения: 2449
Зарегистрирован: 11 окт 2012, 16:26
Репутация: 680
Настоящее имя: Виктор
Откуда: Санкт-Петербург
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение donvictorio »

going писал(а): Пока борюсь со сборкой пакетов *.deb.
Хочется всё сделать по правилам дистрибутива.
то есть помимо пакетов, уже есть рабочий образ для оранжа, с машинокитом на борту, который джиттерит в пределах 2 микросекунд?
Аватара пользователя
going
Мастер
Сообщения: 518
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going »

donvictorio писал(а):который джиттерит в пределах 2 микросекунд?
На сегодня можно собрать образ на базе опероционной системы и для платы поддерживаемой armbian,
с ядром linux-ipipe-4.14.y и библиотеками xenomai-3.
При определённой настройке, без Иксов и нагрузки, средняя максимальная задержка IRQ составляет 2 микросекунды.
С нагрузкой максимальная 10-15.
С запущенным графическим интерфейсом максимальная задержка под нагрузкой:
для пространства ядра ~90-100 микросекунд,
для пространства пользователя 120-160.
Некоторое колличество "паразитных" процессов мне удалось отловить и выкинуть или исправить,
но парочка ещё остаётся.
Linuxcnc работает пока только в пространстве пользователя и пакет дебиан не желает собираться.
А это не то, что хочется.
Все действия проходили на операционной системе Ubuntu-18.04-bionic, Chip-H5, bord OPI-PC2.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
Сообщения: 518
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going »

:sick:
Olej писал(а):Там из всей команды Xenomai остался фактически единственный активный разработчик Philippe Gerum (<rpm@xenomai.org>), но а). он определённо просто не успевает + б). его самого интересуют ARM, и, главным образом, такая игрушка как Rapsberry Pi, а не серьёзные устройства промышленного уровня
Вы совсем не вкурсе происходящего. Не вводите людей в заблуждение.

Проэкт активно развивается. Как минимум три ядра (4.9 4.14 mainline) продвигаются вверх по течению
для x86, ppc, arm, [32 - 64]bit.
4.4.y будет поддерживаться ещё год. Это интересы SIEMENS.
И эти господа ничего общего с RPI, BPI, OPI не имеют, но немного поддерживают. Т.к. открытый проэкт предполагает
интерес сообщества и тестирование на реальном железе,
а оно в большинстве своём не будет покупать дорогие промышленные контроллеры.
Платы: BPI-M3, BPI-A64, OPI-PC2
asdus
Новичок
Сообщения: 4
Зарегистрирован: 11 июл 2016, 19:55
Репутация: 1
Настоящее имя: Иван
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение asdus »

going писал(а):А подробности в студию? Интересно с какими параметрами сборки не работает?
Если не патчить linuxcnc – то и не собирается. Далеко ходить не надо, posix/pthread.h переехал в trank/posix/pthread.h.
Патчим инклюды, мейкфайл чуток, определение xenomai ядра. Собирается. Не работает. Как говорил, сильно глубже не копал.
Возможно надо вручную инициализировать CopperPlate. Я не смотрел, как это делается в v2, а в v3 бутстрап идёт оберткой на main, чего в linuxcnc не сделать.
Библиотеки xenomai собраны с включенными, относительно опций по умолчанию, pthread и dload.
Аватара пользователя
going
Мастер
Сообщения: 518
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going »

asdus писал(а):Далеко ходить не надо, posix/pthread.h переехал в trank/posix/pthread.h.............
Прав добрый человек. Подтверждаю, чтобы заработало в пространстве ядра придётся пошаманить.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
Сообщения: 518
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение going »

going писал(а):Пока борюсь со сборкой пакетов *.deb.
А механизм создания пакетов в linuxcnc-2.8~pre1 глупый. Ищет то, чего нет.
Точнее src пакет xenomai в репах apt cache. Он там имеется но старый, к тому же сборка идёт из исходников.
Платы: BPI-M3, BPI-A64, OPI-PC2
asdus
Новичок
Сообщения: 4
Зарегистрирован: 11 июл 2016, 19:55
Репутация: 1
Настоящее имя: Иван
Контактная информация:

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar

Сообщение asdus »

going писал(а):А механизм создания пакетов в linuxcnc-2.8~pre1 глупый. Ищет то, чего нет.
Точнее src пакет xenomai в репах apt cache. Он там имеется но старый, к тому же сборка идёт из исходников.
Эээ... Шта? Ничего такого не вижу ))
Ответить

Вернуться в «Прочие вопросы Linux»