Страница 7 из 13
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 07 дек 2018, 21:18
ua3nbw
На Raspberry Pi 2
linuxcnc с Xenomai/cobalt v3.0.7 с наскока не собирается.
пакет
machinekit-xenomai устанавливается, но тоже не работает.
запуск
/usr/xenomai/sbin/autotune на результаты тестов не повлиял.
результаты тестов:
Код: Выделить всё
model: Raspberry Pi 2 Model B Rev 1.1
compatible: brcm,bcm2836
My IP address is 192.168.0.6
Xenomai/cobalt v3.0.7
root@raspberrypi:~ # uname -a
Linux raspberrypi 4.9.80-v7-xeno3+ #2 SMP PREEMPT Fri Aug 10 15:04:48 KST 2018 armv7l GNU/Linux
root@raspberrypi:~ # /usr/xenomai/demo/cyclictest -t -p80 -i10000
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 0.20 0.06 0.02 1/125 12025
T: 0 (11995) P:80 I:10000 C: 4963 Min: 4 Act: 8 Avg: 10 Max: 40
T: 1 (11996) P:80 I:10500 C: 4726 Min: 0 Act: 7 Avg: 9 Max: 35
T: 2 (11997) P:80 I:11000 C: 4511 Min: 4 Act: 13 Avg: 9 Max: 35
T: 3 (11998) P:80 I:11500 C: 4315 Min: 1 Act: 8 Avg: 9 Max: 37
Без нагрузки на общем CPU 900MHz в консоли:
Код: Выделить всё
root@raspberrypi:~ # /usr/xenomai/bin/latency
== Sampling period: 1000 us
== Test mode: periodic user-mode task
== All results in microseconds
warming up...
RTT| 00:00:01 (periodic user-mode task, 1000 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD| 2.447| 3.210| 12.082| 0| 0| 2.447| 12.082
RTD| 2.498| 3.174| 18.124| 0| 0| 2.447| 18.124
RTD| 2.446| 3.127| 10.207| 0| 0| 2.446| 18.124
RTD| 2.393| 3.161| 9.842| 0| 0| 2.393| 18.124
RTD| 2.393| 3.133| 9.529| 0| 0| 2.393| 18.124
RTD| 2.445| 3.180| 13.278| 0| 0| 2.393| 18.124
RTD| 2.393| 3.130| 10.674| 0| 0| 2.393| 18.124
RTD| 2.444| 3.150| 8.851| 0| 0| 2.393| 18.124
RTD| 2.444| 3.118| 10.517| 0| 0| 2.393| 18.124
RTD| 2.443| 3.146| 9.267| 0| 0| 2.393| 18.124
RTD| 2.443| 3.130| 9.579| 0| 0| 2.393| 18.124
RTD| 2.443| 3.144| 8.068| 0| 0| 2.393| 18.124
RTD| 2.390| 3.127| 9.734| 0| 0| 2.390| 18.124
RTD| 2.442| 3.152| 9.109| 0| 0| 2.390| 18.124
RTD| 2.442| 3.137| 10.202| 0| 0| 2.390| 18.124
RTD| 2.493| 3.174| 10.202| 0| 0| 2.390| 18.124
RTD| 2.441| 3.124| 9.628| 0| 0| 2.390| 18.124
RTD| 2.492| 3.142| 9.680| 0| 0| 2.390| 18.124
RTD| 2.440| 3.150| 14.523| 0| 0| 2.390| 18.124
RTD| 2.388| 3.162| 11.971| 0| 0| 2.388| 18.124
RTD| 2.439| 3.136| 9.991| 0| 0| 2.388| 18.124
RTT| 00:00:22 (periodic user-mode task, 1000 us period, priority 99)
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 07 дек 2018, 23:27
going
ua3nbw писал(а):запуск /usr/xenomai/sbin/autotune на результаты тестов не повлиял.
Ежели xenomai собрано по "фен шуй" тогда autotune должен запускаться при старте системы.
Это прописано в скрипте инициализации.
Там ещё имеется xeno-test, который нагружает систему и запускает другие тесты в это время.
Он длится 15 минут и требует вентилятора. На его результаты хотелось бы посмотреть.
Его вывод можно продублировать и отправить в файл:
sudo xeno-test | tee -a ~/test.txt
ua3nbw писал(а):linuxcnc с Xenomai/cobalt v3.0.7 с наскока не собирается.
пакет machinekit-xenomai устанавливается, но тоже не работает.
В linuxcnc src/rtapi придётся заново переписывать. Там всё заточено под xenomai v2.
В machinekit на уровне конфигурации идёт отказ от сборки частей поддерживающих работу в пространстве ядра
для архитектуры arm, arm64.
Т.е. всё правильно ничего и не должно работать.
На этой грустной ноте уезжаю в деревню на две недели, где не только интернета нет,
а сотовая связь только на соседней горке.
П.С.
Код: Выделить всё
sudo latency # ( -t 0 ) в пространстве пользователя
sudo latency -t 1 # в пространстве ядра linux
sudo latency -t 2 # в пространстве IRQ or timer
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 09 дек 2018, 12:11
ua3nbw
going писал(а):Там ещё имеется xeno-test, который нагружает систему и запускает другие тесты в это время.Он длится 15 минут и требует вентилятора. На его результаты хотелось бы посмотреть.Его вывод можно продублировать и отправить в файл:sudo xeno-test | tee -a ~/test.txt
Вот результаты
xeno-test на Raspberry Pi 2 без радиатора и вентилятора (палец терпит)
- v3.0.5-1g.txt
- ядро jessie 4.1.21 Xenomai/cobalt v3.0.5
- (117.53 КБ) 582 скачивания
после апгрейда
https://github.com/thanhtam-h/rpi23-4.9 ... r/prebuilt
- v3.0.7-1g.txt
- ядро jessie 4.9.80 Xenomai/cobalt v3.0.7
- (117.54 КБ) 986 скачиваний
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 23 дек 2018, 16:42
going
Довольно неплохо для 900 МГц в пространстве пользователя. Интересно, а в параметрах командной строки ядра,
рекомендованная строчка
Код: Выделить всё
isolcpus=0,1,2,3 xenomai.supported_cpus=0xF
присутствовала?
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 24 дек 2018, 14:21
ua3nbw
going писал(а):isolcpus=0,1,2,3 xenomai.supported_cpus=0xFприсутствовала?
Да, в файле /boot/cmdline.txt
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 26 дек 2018, 23:19
going
going писал(а):рекомендованная строчка
Код: Выделить всё
isolcpus=0,1,2,3 xenomai.supported_cpus=0xF
присутствовала?
Довольно странная строчка. Сегодня проверил её.
isolcpus=0,1,2,3 - Этим сообщаем ядру Linux, что изолируем все четыре ЦПУ для него.
Т.е. запрещаем ему работать на всех ЦПУ, но оно узнаёт об этом, когда уже работает на ЦПУ-0.
Поэтому все процессы Linux трудятся на ЦПУ-0. Нельзя "отжать" у ядра Linux cpu-0.
isolcpus=0 не имеет смысла.
xenomai.supported_cpus=0xF соответствует маске 1111 и разрешает запускать приложения Xenomai
на всех четырёх ЦПУ. Это параметр по умолчанию. Можно было не указывать.
Какая маска была применена видно в файле:
Младший разряд соответствует младшему номеру ЦПУ. Т.е.
1100 - xenomai.supported_cpus=0xС
3,2,1,0 - разрешает работать на 3 и 2 ЦПУ.
Корректная строчка, которая отнимает у Linux два последних ядра и отдаёт их Xenomai выглядит:
Если отнимаем у Linux три последних ядра и отдаём их Xenomai надо:
При этом xeno-test сообщит:
.....
cpu_affinity OK
.....
Но утилите latensy необходимо явно передать параметр --cpu-affinity=2,3 иначе он будет пытаться
запустится на ЦПУ-0 и вывалится с ошибкой. Таким образом тест в пространстве ядра на ЦПУ-2:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 28 дек 2018, 16:46
going
going писал(а): linuxcnc с Xenomai/cobalt v3.0.7 с наскока не собирается.
пакет machinekit-xenomai устанавливается, но тоже не работает.
В linuxcnc src/rtapi придётся заново переписывать. Там всё заточено под xenomai v2.
В machinekit на уровне конфигурации идёт отказ от сборки частей поддерживающих работу в пространстве ядра
для архитектуры arm, arm64.
Немного поправлю сам себя:
В linuxcnc возможно собрать с библиотеками xenomai только для работы в пространстве пользователя.
Используется унифицированный API POSIX. В этом случае версия xenomai (2-3) диктует только
различные пути поиска заголовочных файлов.
И работает:
В тоже самое время "latency in kernel timer handler"
выглядит:
Machinekit немного умнее. Различает версии xenomai и может работать в пространстве ядра Linux.
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 28 дек 2018, 18:37
ua3nbw
linuxcnc так конфигурировали ?
Код: Выделить всё
./configure --with-realtime=uspace XENOMAI_CONFIG=/usr/xenomai/bin/xeno-config
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 28 дек 2018, 21:34
going
ua3nbw писал(а):linuxcnc так конфигурировали ?
Установлены пакеты:
libxenomai1 - собственно сама библиотека
libxenomai1-dev - загороловочные файлы библиотеки xenomai -> /usr/include/xenomai
xenomai-rantime
xenomai-kernel-source - загороловочные файлы ядра от xenomai -> /usr/src/xenomai-kernel-source
kernel-source -> /usr/src/linux-source-4.14.84 - пропатченный armbian,ipipe и исправленный скриптом /usr/src/xenomai-kernel-source/scripts/prepare-kernel.sh
/usr/src> ls -l
lrwxrwxrwx 1 root root 20 дек 5 15:32 linux -> linux-source-4.14.84
drwxrwxr-x 25 root root 4096 дек 5 15:32 linux-source-4.14.84
-rw-rw-r-- 1 root root 29988 ноя 28 19:27 linux-sunxi64-next_4.14.84_5.67_config.xz
drwxr-xr-x 6 root root 4096 дек 3 20:45 xenomai-kernel-source
Выдержка из config.log
Код: Выделить всё
It was created by LinuxCNC configure 2.8.0~pre1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ ./configure --with-realtime=uspace --with-kernel-headers=/usr/src/linux --with-module-dir=/lib/modules/4.14.85-ipipe-sunxi64
--with-kernel-headers=/usr/src/linux - необходим т.к. скрипт конфигурации ищет исходники ядра в странных местах.
--with-module-dir=/lib/modules/4.14.85-ipipe-sunxi64 - необходим т.к. скрипт конфигурации ищет эту папку по $(uname -r) и не находит.
Надо явно указать.
ua3nbw писал(а):XENOMAI_CONFIG=
в моём случае не нужен т.к. находится в видимом пространстве -> /usr/bin/xeno-config
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 04 янв 2019, 12:56
going
Небольшой опрос.
Какое рабочее окружение предпочитает сообщество?
1. openbox
2. lxde-openbox
3. lxde
4. xfce-openbox
5. xfce (default armbian)
Какая операционная система предпочтителнее?
1. Debian ( jessie or xenial )
2. Ubuntu ( stretch or bionic )
3. OpenSUSE ( Leap 42.3 or Leap 15.0 )
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 04 янв 2019, 13:17
MX_Master
А выбор на Latency отразится? (:
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 04 янв 2019, 16:33
going
MX_Master писал(а):А выбор на Latency отразится? (:
На Latency больше влияет скорость обмена с памятью и "загруженностью" шины.
Если отдать Linux только cpu0 система становится плохо отзывчивой,
но шина памяти при этом похоже разгружается и тест Latency показывает лучшие результаты.
Придётся искать золотую середину.
Т.е. чем легче окружение тем лучше. Выбор ОС, по большому счету,
определяет различные плохие моменты при сборке ( нехватает библиотек или не та версия ) и настройке.
P.S. Для ХОРОШЕГО latensy необходим драйвер gpio уровня ядра реагирующий на IRQ от таймера.
Всеми IRQ в системе рулит микроядро "cobalt" обеспечивая приоритеты.
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 04 янв 2019, 16:41
evgenymcp
Зачем для LinuxCNC рабочее окружение? Достаточно минимального диспетчера окон. Тот же Axis или Gmoccapy имеют встроеный менеджер файлов. Неужели на промстойках кто-то пасьянс запускает или браузер? Я бы всё по минимуому делал. Автологин а запуск на весь экран. Задача только открыть УП. Всё остальное можно в голой консоли делать. Сеть можно настроить из консоли. С автомонтированием только повозиться и диспетчером питания. Я за twm )))
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 04 янв 2019, 16:59
going
evgenymcp писал(а):Всё остальное можно в голой консоли делать.
Как вариант, можно сварганить двух пользователей и различные скрипты настройки.
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 04 янв 2019, 17:50
evgenymcp
Пользователей где-то вводить нужно, а у нас встраиваемая система. Мне как пользователю нужно нажать кнопку и максимально быстро (с красивым лого при загрузке) получить доступ к станку, без лишних движений мышью и клавиатурой. После окончания работы нажать на кнопку и всё должно выключиться. Linux очень гибкий и позволяет всё это сделать без проблем. На многих устройствах стоит linux и никто об этом не догадывается. Нужно двигаться в этом направлении. Минимум взаимодействия с ОС - максимум с программой управления станком.
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 04 янв 2019, 18:18
evgenymcp
У себя, ранее, я настраивал автологин и запуск на полный экран. Всё работало на стандартном дистрибутиве Linuxcnc 2.7 с Xfce. Сейчас собираю новую "стойку". Будет 19" сенсорный экран и похоже перейду с axis на gmoccapy. Может splashscreen прикручу если заняться нечем будет. Уже приехала mini-itx atom 525 плата. Хочу максимум хардварных кнопок и переключателей, хотя и с клавиатуры всё отлично управлялось. Хочется по взрослому

Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 04 янв 2019, 18:46
going
evgenymcp писал(а):Уже приехала mini-itx atom 525 плата.
А на ней дистрибутив от linuxcnc без проблем работает, или собственная сборка будет?
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 04 янв 2019, 19:14
nkp
going писал(а):А на ней дистрибутив от linuxcnc без проблем работает, или собственная сборка будет?
это совсем неплохо работает с U10.04 5i25 через PCI
если 7i92m ,то убунта уже не проходит ,и вариант немного теряет свою привлекательность...
кмк - нужно смотреть в сторону PP, они всё делают как надо...
(кто не пробовал - скачайте, попробуйте - при загрузке ничего лишнего,после загрузки - ничего лишнего)))
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 09 янв 2019, 10:43
going
ua3nbw писал(а):linuxcnc так конфигурировали ?
going писал(а):--with-module-dir=/lib/modules/4.14.85-ipipe-sunxi64 - необходим т.к. скрипт конфигурации ищет эту папку по $(uname -r) и не находит.
Эта запись не является правильной.
--with-module-dir= Используется только при сборке с ядром RTAI.
Re: Xenomai + LinuxCNC из исходников -> x86, x86_64, arm, ar
Добавлено: 11 янв 2019, 12:10
going
Очередной прыжок armbian. 09.01.19
sunxi-next теперь собирает с ядром 4.19.y
sunxi-dev соответственно с ядром 4.20.y
Последний стабильный вариант armbian/build для ядер v4.14.78 - v4.14.91
соответствует коммиту -
34ccb5d6250b86031dc77baf024d7a6186dc9493 от
08.01.19
Т.е.
Если имеется желание продолжать собирать с ядром v4.14.78 - v4.14.91
Код: Выделить всё
cd build
git checkout -b sunxi-4.14.78_91 34ccb5d6250b86031dc77baf024d7a6186dc9493
При этом сама система сборки armbian зафиксируется,
а источники будут продолжать обновляться. Их тоже можно зафиксировать.
Или регулярно вносить изменения в заплатки armbian/build/patch/{atf,u-boot,kernel}