Автор Тема: Xenomai & realtime  (Прочитано 1333 раз)

Оффлайн Olej

Xenomai & realtime
« : Май 29, 2018, 02:20:44 pm »
Пробовал ли кто использовать на Orange Pi (любой модификации) патченное realtime ядро Linux с использованием ядра/домена/моды (называйте как хотите) Xenomai?

Вот тот готовый образ, который описывается здесь: Raspberry Pi image for the Pi zero,1,2,3 with Xenomai 3.0.5 on Raspbian linux 4.1.y Debian 8 jessie.

Оффлайн ua3nbw

Re: Xenomai & realtime
« Ответ #1 : Май 29, 2018, 03:44:24 pm »
Пробовал ли кто использовать на Orange Pi (любой модификации) патченное realtime ядро Linux с использованием ядра/домена/моды (называйте как хотите) Xenomai?

Вот тот готовый образ, который описывается здесь: Raspberry Pi image for the Pi zero,1,2,3 with Xenomai 3.0.5 on Raspbian linux 4.1.y Debian 8 jessie.

тут есть готовые к работе, образы MicroSD для Orange Pi  PC  (One)
http://www.cnc-club.ru/forum/viewtopic.php?f=41&t=16788
https://ua3nbw.ru/tags/linuxcnc/

Оффлайн Olej

Re: Xenomai & realtime
« Ответ #2 : Май 29, 2018, 05:19:09 pm »
тут есть готовые к работе, образы MicroSD для Orange Pi  PC  (One)
http://www.cnc-club.ru/forum/viewtopic.php?f=41&t=16788
https://ua3nbw.ru/tags/linuxcnc/
Это любопытно, посмотрю ещё...
Но, как я понял, судя по используемому для LinuxCNC по патчу:
Цитировать
RT патч для версии ядра 4.13 RT патч
Это известный патч PREEMPT_RT в составе (уже) стандартных исходных кодов ядра Linux (при установленном параметре в CONFIG ядра CONFIG_PREEMPT: Processor type and features –> Preemption Mode (Complete Preemption (Real-Time))).

Но такие решения не обеспечивают hard realtime, в лучшем случае - soft realtime. А независимый проект Xenomai, который развивается  уже 15 лет, создаёт дополнительное ядро (микроядро) ОС, и обеспечивает детерминированность временных задержек на порядок лучше, чем любые известные realtime-патчи для стандартного ядра Linux. И это настоящий (hard) realtime для проектов критически важной надёжности (critical mission applications).
Результаты сравнений разных систем лучше всего представлены вот в этой обстоятельной публикации:
https://pdfs.semanticscholar.org/9eb5/1dbe38fb23034e80b8664d8281996d2a5ef6.pdf (Кэмбриджский университет).

А по показанной мной ссылке обещается готовый собранный имидж (.img) с Xenomai (весьма свежей, предпоследней, версии 3.0.5) под Rasberi Pi.
Интерес представляет вопрос: можно ли его загрузить на Orange Pi One?

P.S. Я сам собирал ядро и модули Linux, конфигурируемое и патченное под Xenomai - под стандартным дескотопом (Mint 18.3, в частности), не ARM одноплатные. И испытывал Xenomai ... "в действии", писал под него тестовые hard realtime приложения.
Но на эту возню со сборкой ядра под Xenomai уходит не один час процессорного времени на весьма быстром процессоре i7. А если ещё это переделывать 3-5 раз меняя параметры конфига, то это огромные потери времени.
Заманчиво использовать готовую сборку образа, не заморачиваясь на саму сборку.
 
« Последнее редактирование: Май 29, 2018, 05:22:01 pm от Olej »

Оффлайн Olej

Re: Xenomai & realtime
« Ответ #3 : Май 29, 2018, 05:48:33 pm »
Вот тот готовый образ, который описывается здесь: Raspberry Pi image for the Pi zero,1,2,3 with Xenomai 3.0.5 on Raspbian linux 4.1.y Debian 8 jessie.
Как легко увидеть, этот образ подготовлен и используется в программах обучения вот этого голландского университета:

Цитировать
Institute for Computing and Information Sciences
Visiting address
Toernooiveld 212
6525 EC Nijmegen

Оффлайн ua3nbw

Re: Xenomai & realtime
« Ответ #4 : Май 29, 2018, 07:27:58 pm »
А по показанной мной ссылке обещается готовый собранный имидж (.img) с Xenomai (весьма свежей, предпоследней, версии 3.0.5) под Rasberi Pi.
Интерес представляет вопрос: можно ли его загрузить на Orange Pi One?
Нет конечно.
 
я не знаком  с Xenomai , интересно LinuxCNC   latency-test на уровне 10000-30000 ns, на той же raspberry  с Xenomai может выдать ?


Оффлайн Olej

Re: Xenomai & realtime
« Ответ #5 : Май 29, 2018, 09:05:46 pm »
А по показанной мной ссылке обещается готовый собранный имидж (.img) с Xenomai (весьма свежей, предпоследней, версии 3.0.5) под Rasberi Pi.
Интерес представляет вопрос: можно ли его загрузить на Orange Pi One?
Нет конечно.
Почему нет? ... объясните коротко (если не брать в расчёт GPIO).

я не знаком  с Xenomai , интересно LinuxCNC   latency-test на уровне 10000-30000 ns, на той же raspberry  с Xenomai может выдать ?
Я выше показал ссылку PDF-обзора. Там есть обстоятельные цифры и графики. Xenomai показывает результаты на порядок лучше, чем RTLinux.
Оно и понятно, потому что обработка IRQ там происходит в 2-х независимых ядрах: приоритетное микроядро Xenomai (что-то на манер OS QNX) + стандартное ядро Linux.
Эта техника применяется в промышленных разработках известных IT-бредов, но не очень часть, потому как её использование трудоёмко и требует больших подготовительных действий (Installing Xenomai 3.x).

« Последнее редактирование: Май 29, 2018, 09:17:49 pm от Olej »

Оффлайн ua3nbw

Re: Xenomai & realtime
« Ответ #6 : Май 30, 2018, 06:37:07 am »
Почему нет? ... объясните коротко (если не брать в расчёт GPIO).

Очевидно же, другая аппаратная платформа.

Оффлайн Olej

Re: Xenomai & realtime
« Ответ #7 : Май 30, 2018, 10:58:09 am »
Почему нет? ... объясните коротко (если не брать в расчёт GPIO).
Очевидно же, другая аппаратная платформа.
1. В отличие от того, к чему привыкли в мире Windows, носитель (диск) Linux легко переносится, между десктопами x86 к примеру, с самыми разными процессорами (отличающимися на 15 лет выпуска) и самой разнообразной различающейся периферией - всё это подхватывается "в лёт" динамической загрузкой модулей ядра Linux.
(я очень давно, >15 лет, живу в профессиональной разработке под Linux, с того живу ... поэтому всё это кино миллион раз проходил)
Важно лишь бы было то же, совпадающее, семейство процессоров: i86, x86_64, MIPS, ARM, ...

2. Orange Pi / Rasberi Pi - одна и та же система команд процессора ARM. Конкретные модели чипов периферии, в большинстве не должны препятствовать загрузке (загрузчик и способ загрузки один и тот же) и работоспособности (не считая GPIO, но там другая история, но и там совместимость достижима).
 
 


Оффлайн ua3nbw

Re: Xenomai & realtime
« Ответ #8 : Май 30, 2018, 11:54:39 am »
В ARM, даже наличие в ядре поддержки нужного SoC не гарантирует работоспособность ядра на конкретной борде.

Оффлайн Olej

Re: Xenomai & realtime
« Ответ #9 : Май 30, 2018, 12:10:00 pm »
В ARM, даже наличие в ядре поддержки нужного SoC не гарантирует работоспособность ядра на конкретной борде.
Не гарантируется ©  ;) - тогда нужно это проверять.

Оффлайн ua3nbw

Re: Xenomai & realtime
« Ответ #10 : Май 30, 2018, 04:32:17 pm »
В ARM, даже наличие в ядре поддержки нужного SoC не гарантирует работоспособность ядра на конкретной борде.
Не гарантируется ©  ;) - тогда нужно это проверять.
Чип Allwinner H3 SoC (Cortex-A7), содержит ещё ARISC может делать в чипе абсолютно всё, в том числе и дёргать пины.
но дальше известного патча PREEMPT_RT дело не идёт.
а xenomai это RT вариация.

Оффлайн Olej

Re: Xenomai & realtime
« Ответ #11 : Май 31, 2018, 10:51:50 am »
но дальше известного патча PREEMPT_RT дело не идёт.
Естественно, потому что Linux никогда не проектировался и не позиционировался на поддержку hard realtime. Известный патч PREEMPT_RT, который сначала жил как экспериментальный, а на сегодня включён в дерево кодов ядра Linux, может обеспечить/претендовать soft realtime ... "почти реалтайм" ;)

а xenomai это RT вариация.
Про "вариацию" я совершенно не понял...
Xenomai - это:
- отдельное ядро (микроядро) операционной системы hard realtime...
- которое размещается в адресном пространстве (по адресации), в кольце защиты (по привилегиям) - рядом с ядром Linux...
- но (используя отдельный независимый проект Adeos) перехватывает IRQ (прерывания от оборудования и таймеров) раньше, чем стандартной ядро Linux
P.S. про проект Adeos, реализацией которого и стал Xenomai, очень интересно и просто расписано в заметке национальной библиотеки им. Н. Э. Баумана

Т.е. там фактически одновременно и параллельно работают 2 операционных системы: приоритетная Xenomai (в которой выполняются realtime задачи) + стандартная Linux (в которой, как и всегда, работают остальные процессы).

Оффлайн Olej

Re: Xenomai & realtime
« Ответ #12 : Июнь 07, 2018, 11:45:45 am »
Пробовал ли кто использовать на Orange Pi (любой модификации) патченное realtime ядро Linux с использованием ядра/домена/моды (называйте как хотите) Xenomai?
Вынес обсуждение возможности патченья и сборки ядра под Xenomai на форум Admbian.
Потому как проект Armbian, похоже, это единственное место, где более-менее внятно обстоит дело с подготовкой образов для Orange Pi и близких к нему SoC.

« Последнее редактирование: Июнь 13, 2018, 06:09:18 am от Olej »

Оффлайн Olej

Re: Xenomai & realtime
« Ответ #13 : Июнь 13, 2018, 06:54:45 am »
Вот тот готовый образ, который описывается здесь: Raspberry Pi image for the Pi zero,1,2,3 with Xenomai 3.0.5 on Raspbian linux 4.1.y Debian 8 jessie.
Как легко увидеть, этот образ подготовлен и используется в программах обучения вот этого голландского университета:

Цитировать
Institute for Computing and Information Sciences
Visiting address
Toernooiveld 212
6525 EC Nijmegen
Накатал этот образ на SD-карту и пробовал его поднять на Rapsberry Pi 2.
Не могу загрузить.
Причём на точно том же оборудовании какой-то там Raspbian (не я писал SD) грузится "на ура".
Или темнят голландцы что-то ... или нужно ещё как-то пробовать ... может с SD-карточкой что-то не так?

P.S. Кстати, там же у голландцев есть образы виртуальных машин под VirtualBox и под VMware (ну, это уже для совсем упоротых приверженцев бодаться с Linux из-под Windows ;D).
- Нужно будет поднять их VM под VirtualBox - голландцев "проверить на вшивость".
- Каждый желающий пощупать пальцами что оно такое realtime - может относительно небольшими затратами сил и времени сделать это в VM.
 

Оффлайн Olej

Re: Xenomai & realtime
« Ответ #14 : Июнь 13, 2018, 01:21:48 pm »
Ещё хороший материал в тему: Performance Evaluation of Xenomai 3
Цитировать
*Department of Computer Science and Information Engineering,
National Cheng Kung University, Taiwan
No.1, University Road, Tainan City 701, Taiwan (R.O.C.)
**Department of Electrical and Electronic Engineering,
National Taiwan University
No.1, Sec. 4, Roosevelt Road, Taipei, Taiwan (R.O.C.)
Особенно хорош тем, что это свежий материал - новая линия версий Xenomai 3.0.Х пошла развиваться год-два назад. Значительно отличаются от версий 2.6.Х, а 90% публикаций о Xenomai, за 15 лет этого проекта, относятся именно к версиям 2.6.Х.

Подробно описано
- 1.1 Adeos nanokernel
- 1.2 Xenomai
- 1.3 Cobalt
Цитировать
Cobalt, distinguished in Xenomai 3, is the real-time extension, built into the Linux kernel, dealing with all timecritical activities on top of Adeos I-pipe. The Cobalt core has higher priority over the native kernel activities and has the same behaviour as what Xenomai 2 delivers realtime.
- ... analyze the various benchmarks for ARM Cortex-A series ... - что особенно интересно!
Цитировать
2.0.1 Hardware
BeagleBone Black[10] is selected as our major testing hardware platform powered by TI AM335x [11] SoC, and it is an effective embedded platform, capable of running Linux and Xenomai (both 2 and 3), consisting of a single 1GHz ARM Cortex-A8 processor, a 512 MB memory, 32kB L1 caches and a 256kB L2 cache.