LinuxCNC + Orange Pi (allwincnc)

Контроллеры, драйверы, датчики, управляющие устройства.
wzor
Кандидат
Сообщения: 88
Зарегистрирован: 27 сен 2014, 09:21
Репутация: 12
Настоящее имя: NO
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение wzor »

point5217 писал(а):У кого какие мысли, на этот счет ?
Конечно можно.
Аватара пользователя
technican
Новичок
Сообщения: 8
Зарегистрирован: 03 апр 2020, 13:35
Репутация: 1
Настоящее имя: Денис
Откуда: Владивосток
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение technican »

Да, заценил проект. Даже купил под это дело Orange PI PC на H3 проце.

Очень все круто, скачал, поставил армбиан buster, даже все запустилось (правда на удаленный X сервер, монитора лишнего нету). Но вот чото не хочет работать arisc модуль. Ну как не хочет: на запись утилита для командной строки говорит OK, а вот чтение - подвисает и не отвечает. LinuxCNC тоже говорит USRMOT: command timeout. Хотя GPIO кусок драйвера работает не хуже чем Atom D425, судя по латенси-тесту.

Куда копать ума не приложу, логов особо нет, в syslog ничего, в messages ничего. Даже в dmesg ничего... тулчейн хотел стравить для компиляции arisc прошивки, поотлаживаться, а он чет качается уже часов 10, скорости нет совсем...

Короче, респект и уважуха за труд, если всё получится хотя бы на коленке запустить, то чем-нить готов помочь проекту в части материальной, да и в части как прогер кое-что могу.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Если долго отчечает, значит, прошивка сопроцессора ваще не пашет в этот момент. Прошивку заливает в память и запускает скрипт для uboot. Скрипт и прошивка должны лежать в папке /boot. Если их там нет, то всё понятно. А вот если они туда только что скопированы, то всё заработает только после перезагрузки. Маркером успешного запуска сопроцессора являются строки со словом ARISC в выводе при старте мини ПК.
Аватара пользователя
technican
Новичок
Сообщения: 8
Зарегистрирован: 03 апр 2020, 13:35
Репутация: 1
Настоящее имя: Денис
Откуда: Владивосток
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение technican »

MX_Master писал(а):Маркером успешного запуска сопроцессора являются строки со словом ARISC в выводе при старте мини ПК.
Да, у меня первая мысль была что скрипт не выполнился и прога не загрузилась в сопроц, но нет, подключил монитор специально к ней и увидел, что все что залито в /boot - скрипт загрузки выполняется, при uboot выводит как будто все ок.

Отсюда и вопрос куда копать? :thinking:

Скачал тулчейн, пересобрал прошивку, пока без результата. Такое ощущение, что несмотря на сообщения об успешной загрузке она не подхватывается и не загружается в сопроц.
Вложения
фото экрана uboot (5621 просмотр) <a class='original' href='./download/file.php?id=179554&mode=view' target=_blank>Загрузить оригинал (141.8 КБ)</a>
фото экрана uboot
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Видимо, в последних правках я таки шо то сломал (: Ща исправлю..
Аватара пользователя
technican
Новичок
Сообщения: 8
Зарегистрирован: 03 апр 2020, 13:35
Репутация: 1
Настоящее имя: Денис
Откуда: Владивосток
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение technican »

MX_Master писал(а):Видимо, в последних правках я таки шо то сломал
Брал все с ветки master. А может есть заведомо работающий бинарник прошивки и драйвера arisc для linuxcnc? Ну чтобы проверить что это не у меня что-то не так настроено.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Я у себя проверил на свежем Armbian Stretch, у меня тоже не работает (: Так что всё сходится. Последние правки были в основном про stepgen, так что gpio модуль я не проверял. А в нём, видимо, что-то поломалось. Будем посмотреть...

ЗЫ ещё одна мысль - в свежих Armbian могли что-то замутить с той областью SRAM A2, куда пишется и откуда работает прошивка сопроцессора. Надо тоже глянуть..
Аватара пользователя
technican
Новичок
Сообщения: 8
Зарегистрирован: 03 апр 2020, 13:35
Репутация: 1
Настоящее имя: Денис
Откуда: Владивосток
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение technican »

А какой был несвежий? Может его поставить просто и не париться пока?

А по части использования обасти памяти для сопроца, я посмотрел что там какие фиксапы грузяца на старте в buster, вроде ничего криминального не увидел. Но в этом я вообще нуб, может и не должен был увидеть )
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Проверил на Debian Jessie (Armbian 5.77) тестовую прошивку (мигает светодиодами) - всё работает. На свежем Debian Buster (Armbian 20.02.1) та же прошивка - не работает :wtf:

Вощем, диагноз ясен. В новых образах Armbian (или в свежем ядре linux) сопроцессор или область SRAM A2 начали подо что-то юзать. Хотя ранее их не трогали. Возможно, это связано с внедрением VPU. Завтра изучу вопрос :)
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Короче, проверил ручную загрузку и старт прошивки сопроцессора через консольный интерфейс старого и нового uboot. Через старый uboot всё чики-пуки, а через новый те же команды эффекта не дают. Ощущение, что в новом uboot добавили каких-то опций безопасности. Они не дают править уязвимые области памяти. Раньше эти области нельзя было править из userspace области ядра linux. Видимо, теперь из под uboot тоже нельзя.

Как говорится, не успеешь тут новый установщик расчехлить, как доступ к сопроцессору в новых версиях отовсюду закрыли :hehehe:

Надо попробовать из области ядра linux потрогать те области памяти, которые отвечают за сопроцессор. Может че-ньть и получится :thinking:
Аватара пользователя
technican
Новичок
Сообщения: 8
Зарегистрирован: 03 апр 2020, 13:35
Репутация: 1
Настоящее имя: Денис
Откуда: Владивосток
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение technican »

MX_Master писал(а):Они не дают править уязвимые области памяти. Раньше эти области нельзя было править из userspace области ядра linux. Видимо, теперь из под uboot тоже нельзя.
Вообще, кажется использование этой недокументированной фичи те еще грабли конечно. Взяли вот так - и вырубили ее.
Так что шо-то мне кажется что придется внешний степген какой-то ваять на STM32 по образу и подобию как на arisc и подключать его по SPI. Начал пилить, посмотрим что выйдет... )
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

technican писал(а):Так что шо-то мне кажется что придется внешний степген какой-то ваять на STM32 по образу и подобию как на arisc и подключать его по SPI. Начал пилить, посмотрим что выйдет... )
http://www.cnc-club.ru/forum/viewtopic. ... 69#p467869
technican писал(а):Вообще, кажется использование этой недокументированной фичи те еще грабли конечно. Взяли вот так - и вырубили ее.
Тенденция усиления безопасности в новых версиях - обычное дело. Например, в 3-ей версии ядра linux правку любых областей памяти могла делать любая программа. Абсолютно любая, Карл! :) В 4-ой версии из userspace такое провернуть уже было нельзя. Ну а сейчас на дворе уже 5-я версия и U-boot за ней активно подтягивается :hehehe:

В идеале, канеш, надо заливать прошивку в память модулем ядра (*.ko). С соответствующими правами доступа. И только при старте LinuxCNC.
kmike
Новичок
Сообщения: 4
Зарегистрирован: 01 мар 2020, 19:11
Репутация: 0
Настоящее имя: Михаил
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение kmike »

Добрый день!

Поставил с нуля все на Orange PI PC. С arisc-драйверами не заводится. Есть надежда исправить?
nevkon
Почётный участник
Почётный участник
Сообщения: 2471
Зарегистрирован: 17 июл 2015, 10:25
Репутация: 310
Настоящее имя: Константин
Откуда: Балаково (Саратовская обл.)
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение nevkon »

А почитать? Возьмите Armbian 5.77 - в нем должно работать.
avmartugin
Новичок
Сообщения: 37
Зарегистрирован: 01 июл 2019, 10:27
Репутация: 0
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение avmartugin »

nevkon писал(а):А почитать? Возьмите Armbian 5.77 - в нем должно работать.
а где найти эту версию?
в архивных образах ее нет https://dl.armbian.com/orangepipc2/archive/
nevkon
Почётный участник
Почётный участник
Сообщения: 2471
Зарегистрирован: 17 июл 2015, 10:25
Репутация: 310
Настоящее имя: Константин
Откуда: Балаково (Саратовская обл.)
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение nevkon »

У меня последний скачанный 5.41, могу поделиться если подойдет.
kmike
Новичок
Сообщения: 4
Зарегистрирован: 01 мар 2020, 19:11
Репутация: 0
Настоящее имя: Михаил
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение kmike »

Если есть preempt_rt_kernel для 5.41 - поделитесь. Образ 5.41 и пакеты ядра.
avmartugin
Новичок
Сообщения: 37
Зарегистрирован: 01 июл 2019, 10:27
Репутация: 0
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение avmartugin »

nevkon писал(а):У меня последний скачанный 5.41, могу поделиться если подойдет.
Прошу расширить на облако какой-то образ armbian где будет меньше проблем с инсталлером.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

kmike писал(а):С arisc-драйверами не заводится. Есть надежда исправить?
В новых версиях загрузчика (u-boot) правку системной памяти приубавили. А прошивку сопроцессора загружает в системную память именно загрузчик. Но надежда, конечно же, есть..

Немного новостей:

Уже недельку на практике изучаю разработку модулей ядра Linux. Поясню в двух словах для чего.. Модуль ядра Linux (*.ko) не имеет ограничений на доступ к системной памяти. Это даёт возможность загружать прошивку сопроцессора через модуль ядра на лету, когда это нужно.

Первую версию такого модуля я уже накатал. При старте он создаёт в системе новое устройство /dev/arisc_admin. Из под админа мы можем писать в это устройство текстовые команды и, соответственно, читать от устройства ответы. Выглядит это примерно так:
# указываем имя нашего чипа (варианты H2/H3/H5)
echo "H3" > /dev/arisc_admin

# удаляем из памяти чипа текущую прошивку
echo "erase" > /dev/arisc_admin

# указываем файл новой прошивки
echo "/boot/arisc-fw.code" > /dev/arisc_admin

# загружаем новую прошивку в память чипа
echo "upload" > /dev/arisc_admin

# команды можно сгруппировать и в одну строку, например
echo "H3 /boot/arisc-fw.code upload" > /dev/arisc_admin

# последний ответ от устройства можно прочесть так
cat /dev/arisc_admin

# ответ будет содержать список последних команд и статус их выполнения, например
H3:ok
/boot/arisc-fw.code:ok
upload:ok
Такой способ управления невероятно удобен и практичен. Драйвер LinuxCNC может юзать этот способ для загрузки любой прошивки в любой момент времени. Это позволит иметь под каждую конкретную задачу свою прошивку с нужным набором инструментов. К примеру, если энкодеры не используются, то можно загрузить прошивку, которая выводит только step/dir, не отвлекаясь на прочие ненужности. Это повышает эффективность и частоту вывода/обработки сигналов :controller:

Ну и, в конце концов, руками рулить сопроцессором из консоли тоже удобно, особенно, при разработке ;)

Вощем, на этой неделе, доведу сей модуль до ума, добавлю его в установщик и подправлю ARISC драйвер для работы с этим модулем. Так что, товарищи, где-то через недельку, сопроцессор будет снова в строю. Ну а потом уже подумаем о разных версиях прошивки под конкретные задачи..

ЗЫ всех со прошедшим днём космонавтики :)
kmike
Новичок
Сообщения: 4
Зарегистрирован: 01 мар 2020, 19:11
Репутация: 0
Настоящее имя: Михаил
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение kmike »

Спасибо. Информация обнадеживает. Буду ждать и обязательно тестировать :)
Ответить

Вернуться в «Электроника»