Xenomai + LinuxCNC, EVL + LinuxCNC из исходников
- going
- Мастер
- Сообщения: 518
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
На процессоре Н3, плата Orangepilite, root раздел находится на флешке.
Показания ciclictest: Благодарности: Maxekb77
Показания ciclictest: Благодарности: Maxekb77
Платы: BPI-M3, BPI-A64, OPI-PC2
- MX_Master
- Мастер
- Сообщения: 7467
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3089
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Ну чё там? Плохие результаты тестов или хорошие?
- going
- Мастер
- Сообщения: 518
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Результаты не очень. Поэтому публиковать не стал.MX_Master писал(а):Ну чё там? Плохие результаты тестов или хорошие?
Но информации для отладки хватает. Готовлю второй вариант.
Платы: BPI-M3, BPI-A64, OPI-PC2
- going
- Мастер
- Сообщения: 518
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Пословица: "На каждого мудреца довольно простоты" в моём случае сработала.MX_Master писал(а):Ну чё там? Плохие результаты тестов или хорошие?
Измерения проводил не коректно и в коде cyclictest от xenomai что то считалось не так, поэтому результаты измерений были странными.
С последними обновами они это поправили и все встало на свои места.
Возможности и варианты для РТ задачи:
Из пространства пользователя с высоким приоритетом.
Из пространства ядра Linux
Работа на CPU общего пользования.
Работа на выделенном CPU
Результаты последних тестов:
Плата - Orange PI PC2,
CPU: H5
root / --> USB_SSD
Выделил 3 и 4 процессор для РТ, а 1 и 2 отдал под общие задачи.
В параметрах загрузки ядра присутствует ( isolcpus=2,3 ). У 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
Код: Выделить всё
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
Код: Выделить всё
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
Код: Выделить всё
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
На этом буду считать код ядра xenomai рабочим.
Можно приступать к сборке и настройке дистрибутива с этим ядром.
Платы: BPI-M3, BPI-A64, OPI-PC2
- antoxa-kylibin
- Мастер
- Сообщения: 786
- Зарегистрирован: 22 июн 2017, 13:18
- Репутация: 107
- Настоящее имя: Антон
- Откуда: г. Воронеж
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Не дурно!!! Когда же появятся первые сборки xenomai+LinuxCNC для широких масс? Для каждой версии платы нужно будет отдельно собирать из исходников ядро и дружить его с LinuxCNC или будут 2 версии сборок для H3 и H5 чипов?
- PKM
- Почётный участник
- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
микросекунды?going писал(а): всего 2 миллисекунды!
- going
- Мастер
- Сообщения: 518
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Да. Конечно же микросекунды. Очепятка.PKM писал(а):going писал(а):
всего 2 миллисекунды!
микросекунды?
Платы: BPI-M3, BPI-A64, OPI-PC2
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Ну, а дальше? Как там дела?going писал(а):На этом буду считать код ядра xenomai рабочим.
Можно приступать к сборке и настройке дистрибутива с этим ядром.
-
- Новичок
- Сообщения: 4
- Зарегистрирован: 11 июл 2016, 19:55
- Репутация: 1
- Настоящее имя: Иван
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Не знаю как у автора темы, а я меня пока не работает сам linuxcnc с xenomai 3. С xenomai 2 все ок.Olej писал(а):Ну, а дальше? Как там дела?
- Olej
- Кандидат
- Сообщения: 66
- Зарегистрирован: 03 июл 2018, 22:41
- Репутация: 4
- Настоящее имя: Олег Цилюрик
- Откуда: Харьков
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
С Xenomai 2 не интересно - это очень устаревшая линия.asdus писал(а):Не знаю как у автора темы, а я меня пока не работает сам linuxcnc с xenomai 3. С 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, а не серьёзные устройства промышленного уровня.
-
- Новичок
- Сообщения: 4
- Зарегистрирован: 11 июл 2016, 19:55
- Репутация: 1
- Настоящее имя: Иван
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Нельзя. Так-же как нельзя PREEMPT_RT сделать модулем.Olej писал(а):который бы, в умелых руках, можно бы сделать в виде динамически подгружаемого модуля ядра
Ни так ни так не работает linuxcnc. Я по рыхлому пропатчил инклюды до совместимости с v3, собирается но не работает. Глубже пока не копал.Olej писал(а):Xenomai 3 нужно собирать в варианте Cobalt, но не в варианте Mercury.
Я вообще не уверен, что он будет работать даже с оригинальным xenomai v2. Потому как xenomai от mackinekit достаточно сильно отличается от оригинального xenomai по abi.
И, по внешнему виду, поддержка xenomai в linuxcnc сделана именно под ядро от machinekit.
Таки да. Но, опять же, xenomai 2 ядра у меня, пока, работают быстрее, чем xenomai 3.Olej писал(а):С Xenomai 2 не интересно - это очень устаревшая линия.
- going
- Мастер
- Сообщения: 518
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Пока борюсь со сборкой пакетов *.deb.Olej писал(а):Ну, а дальше? Как там дела?
Хочется всё сделать по правилам дистрибутива.
Платы: BPI-M3, BPI-A64, OPI-PC2
- going
- Мастер
- Сообщения: 518
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
А подробности в студию? Интересно с какими параметрами сборки не работает?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
то есть помимо пакетов, уже есть рабочий образ для оранжа, с машинокитом на борту, который джиттерит в пределах 2 микросекунд?going писал(а): Пока борюсь со сборкой пакетов *.deb.
Хочется всё сделать по правилам дистрибутива.
- going
- Мастер
- Сообщения: 518
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
На сегодня можно собрать образ на базе опероционной системы и для платы поддерживаемой armbian,donvictorio писал(а):который джиттерит в пределах 2 микросекунд?
с ядром 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
Вы совсем не вкурсе происходящего. Не вводите людей в заблуждение.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
-
- Новичок
- Сообщения: 4
- Зарегистрирован: 11 июл 2016, 19:55
- Репутация: 1
- Настоящее имя: Иван
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Если не патчить linuxcnc – то и не собирается. Далеко ходить не надо, posix/pthread.h переехал в trank/posix/pthread.h.going писал(а):А подробности в студию? Интересно с какими параметрами сборки не работает?
Патчим инклюды, мейкфайл чуток, определение xenomai ядра. Собирается. Не работает. Как говорил, сильно глубже не копал.
Возможно надо вручную инициализировать CopperPlate. Я не смотрел, как это делается в v2, а в v3 бутстрап идёт оберткой на main, чего в linuxcnc не сделать.
Библиотеки xenomai собраны с включенными, относительно опций по умолчанию, pthread и dload.
- going
- Мастер
- Сообщения: 518
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Прав добрый человек. Подтверждаю, чтобы заработало в пространстве ядра придётся пошаманить.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
А механизм создания пакетов в linuxcnc-2.8~pre1 глупый. Ищет то, чего нет.going писал(а):Пока борюсь со сборкой пакетов *.deb.
Точнее src пакет xenomai в репах apt cache. Он там имеется но старый, к тому же сборка идёт из исходников.
Платы: BPI-M3, BPI-A64, OPI-PC2
-
- Новичок
- Сообщения: 4
- Зарегистрирован: 11 июл 2016, 19:55
- Репутация: 1
- Настоящее имя: Иван
- Контактная информация:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Эээ... Шта? Ничего такого не вижу ))going писал(а):А механизм создания пакетов в linuxcnc-2.8~pre1 глупый. Ищет то, чего нет.
Точнее src пакет xenomai в репах apt cache. Он там имеется но старый, к тому же сборка идёт из исходников.