LinuxCNC + Orange Pi (allwincnc)
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: OrangeCNC - ЧПУ контроллер на базе Orange Pi
В качестве размышлений.. Допустим, RT у нас как-то заработал. И какой же минимальный latency получится? Если всё те же 20-30 мкс, а это вполне возможно. Стоило ли заморачиваться? 
-
arkhnchul
- Мастер
- Сообщения: 1773
- Зарегистрирован: 01 фев 2016, 13:56
- Репутация: 339
- Откуда: москва
- Контактная информация:
Re: OrangeCNC - ЧПУ контроллер на базе Orange Pi
потом прикручивать руление gpio вместо lpt. Если взлетит хотя бы в таком виде - почему бы и нет.
- Argon-11
- Мастер
- Сообщения: 2068
- Зарегистрирован: 07 июн 2017, 17:48
- Репутация: 461
- Контактная информация:
Re: OrangeCNC - ЧПУ контроллер на базе Orange Pi
дакыть вроде максимальный надо оцениватьMX_Master писал(а): минимальный latency
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: OrangeCNC - ЧПУ контроллер на базе Orange Pi
дык, у LinuxCNC - софт генерация, и при 20-30 мкс latency - это всего лишь 20 КГц шагов.arkhnchul писал(а):потом прикручивать руление gpio вместо lpt
у меня эти 20 КГц уже есть на Micro ITX платке безо всяких Orange Pi.
поэтому и спрашиваю, оно действительно стоит свеч?
ну ты понялArgon-11 писал(а):дакыть вроде максимальный надо оценивать
- Argon-11
- Мастер
- Сообщения: 2068
- Зарегистрирован: 07 июн 2017, 17:48
- Репутация: 461
- Контактная информация:
Re: OrangeCNC - ЧПУ контроллер на базе Orange Pi
А как же драйвер уровня ядра?MX_Master писал(а): оно действительно стоит свеч?
Типа обеспечить сервоцикл в ОС с частотой 1 кГц, в к-ром происходит передача данных в "драйвер уровня ядра", к-рый уже выдает более высокочастотную и якобы равномерную последовательность шагов. Ну как-то так (c).MX_Master писал(а): Есть такое дело, опробую на неделе..
Еще не все попробовано!
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: OrangeCNC - ЧПУ контроллер на базе Orange Pi
Драйвер уровня ядра ведь тоже на каком-то физическом ядре проца будет работать. Я что-то сомневаюсь, что ради этого драйвера ядро linux перестанет выполнять операции обслуживания соответствующего ядра проца.
Как я показывал выше на примере изолированного ядра, системные операции на ядре проца съедают до 15 мкс каждую секунду. И драйвер ядра linux, я уверен, тоже будет прерываться на эти 15 мкс. Какой выигрыш тогда у драйвера ядра ос перед пользовательским процессом на изолированном ядре?
Как я показывал выше на примере изолированного ядра, системные операции на ядре проца съедают до 15 мкс каждую секунду. И драйвер ядра linux, я уверен, тоже будет прерываться на эти 15 мкс. Какой выигрыш тогда у драйвера ядра ос перед пользовательским процессом на изолированном ядре?
надо завязывать с этими ядрами на русском языке, уж лучше kernel и core
- Argon-11
- Мастер
- Сообщения: 2068
- Зарегистрирован: 07 июн 2017, 17:48
- Репутация: 461
- Контактная информация:
Re: OrangeCNC - ЧПУ контроллер на базе Orange Pi
да на русском норм, только недопереведено. надо:MX_Master писал(а):лучше kernel и core
kernel - ядро
core - яйцо
-
arkhnchul
- Мастер
- Сообщения: 1773
- Зарегистрирован: 01 фев 2016, 13:56
- Репутация: 339
- Откуда: москва
- Контактная информация:
Re: OrangeCNC - ЧПУ контроллер на базе Orange Pi
а будет еще и на orange pi без всяких micro ITX. Наличие альтернативной, пусть и по возможностям аналогичной платформы лучше, нежели ее отсутствие.MX_Master писал(а):у меня эти 20 КГц уже есть на Micro ITX платке безо всяких Orange Pi.
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер на базе Orange Pi
Вчера вечером заглянул на склад с RT патчами.
И вижу, что 17-го числа в репе появился первый RT патч для версии ядра 4.13
Именно эта версия используется в Armbian в качестве mainline ядра. Ночью оперативно собрал настольный образ (armbian) Debian Jessie с пропатченным (FULL_RT) ядром (по ссылке выше). Всё собралось без ошибок
Далее несколько раз запускал всё тот же RT тест с теми же параметрами ОС, что и раньше (isolcpus=3). Если всю нагрузку запустить до начала теста, а потом запустить RT тест, то результаты выглядят весьма неплохо
Если же во время RT теста запускать что-то новое и тяжёлое, то latency дружно подскакивает до 2000 мкс
Причём, на изолированном (последнем) ядре latency подскакивает тоже, чего не наблюдалось ранее на пропатченном ядре 3.4.13. Вощем, дело сдвинулось с мёртвой точки. Только непонятно в какую сторону. Либо RT работал как положено в 3.4.13, либо RT как положено работает сейчас в 4.13.7, либо я что-то провтыкал в настройках до сборки ядра..
И вижу, что 17-го числа в репе появился первый RT патч для версии ядра 4.13
Именно эта версия используется в Armbian в качестве mainline ядра. Ночью оперативно собрал настольный образ (armbian) Debian Jessie с пропатченным (FULL_RT) ядром (по ссылке выше). Всё собралось без ошибок
Код: Выделить всё
master@orangepione:~/rt-tests$ sudo ./cyclictest -a -t -n -p99
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 0.59 0.55 0.15 1/204 2221
T: 0 ( 2213) P:99 I:1000 C: 67767 Min: 26 Act: 30 Avg: 32 Max: 105
T: 1 ( 2214) P:99 I:1500 C: 45179 Min: 25 Act: 29 Avg: 33 Max: 92
T: 2 ( 2215) P:99 I:2000 C: 33884 Min: 27 Act: 29 Avg: 33 Max: 77
T: 3 ( 2216) P:99 I:2500 C: 27107 Min: 29 Act: 33 Avg: 34 Max: 69Код: Выделить всё
master@orangepione:~/rt-tests$ sudo ./cyclictest -a -t -n -p99
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 0.27 0.07 0.12 1/204 2352
T: 0 ( 2260) P:99 I:1000 C: 48204 Min: 11 Act: 40 Avg: 34 Max: 2126
T: 1 ( 2261) P:99 I:1500 C: 32145 Min: 11 Act: 32 Avg: 35 Max: 1714
T: 2 ( 2262) P:99 I:2000 C: 24110 Min: 11 Act: 35 Avg: 36 Max: 1547
T: 3 ( 2263) P:99 I:2500 C: 19288 Min: 13 Act: 35 Avg: 36 Max: 739- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер на базе Orange Pi
Всё, разобрался где собака зарыта.. Отключил все CONFIG_..._DEBUG_... в настройках ядра. На этот раз собрал образ настольной Ubuntu Xenial (16.04 lts). Как обычно, изолировал последнее ядро проца.
Основательно нагрузил OPi1 и прогнал RT тест несколько раз. Теперь резких скачков latency больше нет. Повторяемость результатов RT теста - стабильная. Если нагружать апельсинку не очень сильно, то max latency будет в районе 50 мкс. Если грузить как следует, то max latency может просесть до 100 мкс
Ура, товарищи! Какой-никакой, но FULL RT в апельсинке у нас теперь есть!
Спасибо всем, кто не мешал
А также тем, кто помогал
Теперь можно экспериментировать с другими параметрами и настройками ядра с целью уменьшения max latency. Если у кого-то появились новые идеи, пишите.
Основательно нагрузил OPi1 и прогнал RT тест несколько раз. Теперь резких скачков latency больше нет. Повторяемость результатов RT теста - стабильная. Если нагружать апельсинку не очень сильно, то max latency будет в районе 50 мкс. Если грузить как следует, то max latency может просесть до 100 мкс
Код: Выделить всё
master@orangepione:~/rt-tests$ sudo ./cyclictest -a -t -n -p80
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 4.81 2.25 1.02 6/382 3797
T: 0 ( 3376) P:80 I:1000 C: 237748 Min: 5 Act: 30 Avg: 15 Max: 136
T: 1 ( 3377) P:80 I:1500 C: 158502 Min: 5 Act: 17 Avg: 16 Max: 103
T: 2 ( 3378) P:80 I:2000 C: 118876 Min: 5 Act: 44 Avg: 18 Max: 113
T: 3 ( 3379) P:80 I:2500 C: 95101 Min: 6 Act: 17 Avg: 13 Max: 98Спасибо всем, кто не мешал
Теперь можно экспериментировать с другими параметрами и настройками ядра с целью уменьшения max latency. Если у кого-то появились новые идеи, пишите.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: ЧПУ контроллер на базе Orange Pi
Похоже всё упирается в аппаратную часть, какую-нибудь медленную общую шину или DMA... Точнее не скажу - архитектуру изучать лень.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер на базе Orange Pi
Там много чего аппаратного включено и всё со своими настройками. Я ж собрал обычную настольную ОС общего назначения. Будем научным тыком прокладывать путь дальше..UAVpilot писал(а):Похоже всё упирается в аппаратную часть
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: ЧПУ контроллер на базе Orange Pi
Я не про настройки ядра. а про "конструкцию" самого чипа.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер на базе Orange Pi
Я понял. И я про аппаратное. Если какая-то шина не так широка, то отключив или настроив некоторых аппаратных юзеров, можно кое-что выиграть (в теории).UAVpilot писал(а):Я не про настройки ядра. а про "конструкцию" самого чипа.
В ядре тоже есть что отключить и настроить. Читаю ща советы по тюнингу RT ядра..
-
Argentum47
- Мастер
- Сообщения: 911
- Зарегистрирован: 05 июн 2015, 10:00
- Репутация: 110
- Откуда: Саратов
- Контактная информация:
Re: ЧПУ контроллер на базе Orange Pi
MX_Master писал(а):Всё, разобрался где собака зарыта.. Отключил все CONFIG_..._DEBUG_... в настройках ядра. На этот раз собрал образ настольной Ubuntu Xenial (16.04 lts)
Прочитал как Убунту Хентай... надо выключать станок идти домой.
- ua3nbw
- Кандидат
- Сообщения: 44
- Зарегистрирован: 18 окт 2017, 18:03
- Репутация: 26
- Контактная информация:
Re: ЧПУ контроллер на базе Orange Pi
Я правильно понял, что RT patches работает с веткой armbian development : https://forum.armbian.com/index.php?/to ... ment=41675
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер на базе Orange Pi
Кстати, вот у человека есть хорошие результаты по latency на платке NanoPi NEO. Там тот же самый H3. Правда, без HDMI
Выставлено isolcpus=2,3, ядро 4.11, образ системы уменьшен и в ядре присутствует 2 патча для Ethernet и USB. Очень даже неплохо.
RT патч взят отсюда
Код: Выделить всё
# cyclictest -p 80 -t5 -n -a
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 0.12 0.17 0.08 1/93 193
T: 0 ( 186) P:80 I:1000 C: 551057 Min: 5 Act: 8 Avg: 8 Max: 29
T: 1 ( 187) P:80 I:1500 C: 367371 Min: 5 Act: 8 Avg: 7 Max: 44
T: 2 ( 188) P:80 I:2000 C: 275529 Min: 7 Act: 8 Avg: 7 Max: 13
T: 3 ( 189) P:80 I:2500 C: 220423 Min: 7 Act: 8 Avg: 7 Max: 11
T: 4 ( 190) P:80 I:3000 C: 183685 Min: 5 Act: 8 Avg: 7 Max: 24Код: Выделить всё
# uname -a
Linux nanopi-neo 4.11.9-rt7 #1 SMP PREEMPT RT Fri Sep 22 10:38:22 CDT 2017 armv7l GNU/LinuxArmbian, sunxi-next, ядро 4.13.ua3nbw писал(а):Я правильно понял, что RT patches работает с веткой armbian development : https://forum.armbian.com/index.php?/to ... ment=41675
RT патч взят отсюда
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: ЧПУ контроллер на базе Orange Pi
Что отключить? Память или spi для флешки?..MX_Master писал(а):Я понял. И я про аппаратное. Если какая-то шина не так широка, то отключив или настроив некоторых аппаратных юзеров, можно кое-что выиграть (в теории).
В ядре тоже есть что отключить и настроить. Читаю ща советы по тюнингу RT ядра..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7489
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер на базе Orange Pi
Кто хотел LinuxCNC в апельсине?
Собрал сегодня нормальный RT образ Debian Jessie и установил для проверки Machinekit. Никакого тюнинга не проводилось. Штатный latency test показывает практически то же самое, что и cyclictest. Но если запускать что-то тяжелое то latency подскакивать до 1000 мкс. Как минимум нужен вдумчивый тюнинг системы. Советы и предложения приветствуются.
Собрал сегодня нормальный RT образ Debian Jessie и установил для проверки Machinekit. Никакого тюнинга не проводилось. Штатный latency test показывает практически то же самое, что и cyclictest. Но если запускать что-то тяжелое то latency подскакивать до 1000 мкс. Как минимум нужен вдумчивый тюнинг системы. Советы и предложения приветствуются.
- ua3nbw
- Кандидат
- Сообщения: 44
- Зарегистрирован: 18 окт 2017, 18:03
- Репутация: 26
- Контактная информация:
Re: ЧПУ контроллер на базе Orange Pi
повторил сборку (для OrangePiPС) ядра с патчем RT, пригодится для audio, спасибо.
linuxcnc на linux-mainline ядре armbian, т.к. нет поддержки OpenGL не собирается.
вывод cyclictest -a -t -n -p99 -f -b100
linuxcnc на linux-mainline ядре armbian, т.к. нет поддержки OpenGL не собирается.
вывод cyclictest -a -t -n -p99 -f -b100
Код: Выделить всё
root@orangepipc:~# cyclictest -a -t -n -p99 -f -b100
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 4.15 4.08 3.93 6/261 31421
T: 0 (31418) P:99 I:1000 C: 21343 Min: 7 Act: 11 Avg: 9 Max: 34
T: 1 (31419) P:99 I:1500 C: 14229 Min: 7 Act: 12 Avg: 10 Max: 45
T: 2 (31420) P:99 I:2000 C: 10665 Min: 7 Act: 15 Avg: 9 Max: 31
T: 3 (31421) P:99 I:2500 C: 8533 Min: 6 Act: 10 Avg: 7 Max: 16