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

Общие вопросы по операционным системам семейства Linux.

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

Сообщение going » 08 сен 2018, 14:41

На процессоре Н3, плата Orangepilite, root раздел находится на флешке.
Показания ciclictest:
Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, arm64 allcpu_opilite.png

Благодарности: Maxekb77
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
 
Сообщения: 369
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 112

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

Сообщение MX_Master » 17 сен 2018, 16:10

Ну чё там? Плохие результаты тестов или хорошие?
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 3383
Зарегистрирован: 27 июн 2015, 19:45
Откуда: KZ
Репутация: 1788
Медальки:
Настоящее имя: Михаил

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

Сообщение going » 18 сен 2018, 17:06

MX_Master писал(а):Ну чё там? Плохие результаты тестов или хорошие?

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

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

Сообщение going » 10 окт 2018, 16:46

MX_Master писал(а):Ну чё там? Плохие результаты тестов или хорошие?


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

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


Результаты последних тестов:
Плата - Orange PI PC2,
CPU: H5
root / --> USB_SSD
Выделил 3 и 4 процессор для РТ, а 1 и 2 отдал под общие задачи.
В параметрах загрузки ядра присутствует ( isolcpus=2,3 ).
Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, arm64 cyclictest_X11_all_cpu.png
cyclictest из пространства пользователя в среде Х11 + firefox + видео в браузере

Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, arm64 cyclictest_console_all_cpu.png
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
Аватара пользователя
going
Мастер
 
Сообщения: 369
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 112

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

Сообщение antoxa-kylibin » 11 окт 2018, 03:12

Не дурно!!! Когда же появятся первые сборки xenomai+LinuxCNC для широких масс? Для каждой версии платы нужно будет отдельно собирать из исходников ядро и дружить его с LinuxCNC или будут 2 версии сборок для H3 и H5 чипов?
antoxa-kylibin
Опытный
 
Сообщения: 165
Зарегистрирован: 22 июн 2017, 13:18
Откуда: г. Воронеж
Репутация: 9
Настоящее имя: Антон

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

Сообщение PKM » 11 окт 2018, 20:01

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

микросекунды?
Аватара пользователя
PKM
Почётный участник
Почётный участник
 
Сообщения: 4246
Зарегистрирован: 31 мар 2011, 18:11
Откуда: Украина
Репутация: 695
Медальки:
Настоящее имя: Андрей

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

Сообщение going » 11 окт 2018, 21:16

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

микросекунды?


Да. Конечно же микросекунды. Очепятка.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
 
Сообщения: 369
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 112

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

Сообщение Olej » 29 ноя 2018, 00:27

going писал(а):На этом буду считать код ядра xenomai рабочим.
Можно приступать к сборке и настройке дистрибутива с этим ядром.

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

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

Сообщение asdus » 30 ноя 2018, 03:13

Olej писал(а):Ну, а дальше? Как там дела?

Не знаю как у автора темы, а я меня пока не работает сам linuxcnc с xenomai 3. С xenomai 2 все ок.
asdus
Новичок
 
Сообщения: 4
Зарегистрирован: 11 июл 2016, 19:55
Репутация: 1
Настоящее имя: Иван

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

Сообщение Olej » 30 ноя 2018, 14:08

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, а не серьёзные устройства промышленного уровня.
Аватара пользователя
Olej
Кандидат
 
Сообщения: 66
Зарегистрирован: 03 июл 2018, 22:41
Откуда: Харьков
Репутация: 3
Настоящее имя: Олег Цилюрик

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

Сообщение asdus » 02 дек 2018, 11:04

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.
asdus
Новичок
 
Сообщения: 4
Зарегистрирован: 11 июл 2016, 19:55
Репутация: 1
Настоящее имя: Иван

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

Сообщение going » 02 дек 2018, 20:43

Olej писал(а):Ну, а дальше? Как там дела?

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

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

Сообщение going » 02 дек 2018, 21:01

asdus писал(а):Не знаю как у автора темы, а я меня пока не работает сам linuxcnc с xenomai 3. С xenomai 2 все ок.

А подробности в студию? Интересно с какими параметрами сборки не работает?
Версия ядра <--> Версия xenomai. -> архитектура -> Плата => Система сборки, операционная система ??

P.S. Список ошобок, которые в терминал вываливаютя.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
 
Сообщения: 369
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 112

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

Сообщение donvictorio » 03 дек 2018, 02:47

going писал(а):Пока борюсь со сборкой пакетов *.deb.
Хочется всё сделать по правилам дистрибутива.

то есть помимо пакетов, уже есть рабочий образ для оранжа, с машинокитом на борту, который джиттерит в пределах 2 микросекунд?
Аватара пользователя
donvictorio
Мастер
 
Сообщения: 2092
Зарегистрирован: 11 окт 2012, 16:26
Откуда: Санкт-Петербург
Репутация: 588
Настоящее имя: Виктор

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

Сообщение going » 03 дек 2018, 08:45

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
Мастер
 
Сообщения: 369
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 112

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

Сообщение going » 03 дек 2018, 09:12

: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
Аватара пользователя
going
Мастер
 
Сообщения: 369
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 112

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

Сообщение asdus » 03 дек 2018, 20:02

going писал(а):А подробности в студию? Интересно с какими параметрами сборки не работает?

Если не патчить linuxcnc – то и не собирается. Далеко ходить не надо, posix/pthread.h переехал в trank/posix/pthread.h.
Патчим инклюды, мейкфайл чуток, определение xenomai ядра. Собирается. Не работает. Как говорил, сильно глубже не копал.
Возможно надо вручную инициализировать CopperPlate. Я не смотрел, как это делается в v2, а в v3 бутстрап идёт оберткой на main, чего в linuxcnc не сделать.
Библиотеки xenomai собраны с включенными, относительно опций по умолчанию, pthread и dload.
asdus
Новичок
 
Сообщения: 4
Зарегистрирован: 11 июл 2016, 19:55
Репутация: 1
Настоящее имя: Иван

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

Сообщение going » 04 дек 2018, 15:00

asdus писал(а):Далеко ходить не надо, posix/pthread.h переехал в trank/posix/pthread.h.............

Прав добрый человек. Подтверждаю, чтобы заработало в пространстве ядра придётся пошаманить.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
 
Сообщения: 369
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 112

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

Сообщение going » 05 дек 2018, 10:39

going писал(а):Пока борюсь со сборкой пакетов *.deb.

А механизм создания пакетов в linuxcnc-2.8~pre1 глупый. Ищет то, чего нет.
Точнее src пакет xenomai в репах apt cache. Он там имеется но старый, к тому же сборка идёт из исходников.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
 
Сообщения: 369
Зарегистрирован: 29 сен 2013, 20:55
Откуда: г.Киров
Репутация: 112

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

Сообщение asdus » 07 дек 2018, 00:11

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

Эээ... Шта? Ничего такого не вижу ))
asdus
Новичок
 
Сообщения: 4
Зарегистрирован: 11 июл 2016, 19:55
Репутация: 1
Настоящее имя: Иван

Пред.След.

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

Кто сейчас на конференции

Зарегистрированные пользователи: aftaev, AlexKor, antigua, Argon-11, Bing [Bot], CybSys, dadlick, david1920, Dmaster, dredivan, Google [Bot], kostos666, Lead, MGG, nebelnoir, odekolon, Samodelkin 88, SDAMASK, selenur, sergay, sima8520, SNS, Timur_Akhmatov, Uda4LIVEc, Umberto, Umnik, vasy2018, Vitalii, Yandex [bot]

Поделиться

Reputation System ©'