Страница 164 из 245

Re: LinuxCNC + Orange Pi

Добавлено: 27 мар 2020, 08:03
wzor
point5217 писал(а):У кого какие мысли, на этот счет ?
Конечно можно.

Re: LinuxCNC + Orange Pi

Добавлено: 03 апр 2020, 16:19
technican
Да, заценил проект. Даже купил под это дело Orange PI PC на H3 проце.

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

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

Короче, респект и уважуха за труд, если всё получится хотя бы на коленке запустить, то чем-нить готов помочь проекту в части материальной, да и в части как прогер кое-что могу.

Re: LinuxCNC + Orange Pi

Добавлено: 03 апр 2020, 16:35
MX_Master
Если долго отчечает, значит, прошивка сопроцессора ваще не пашет в этот момент. Прошивку заливает в память и запускает скрипт для uboot. Скрипт и прошивка должны лежать в папке /boot. Если их там нет, то всё понятно. А вот если они туда только что скопированы, то всё заработает только после перезагрузки. Маркером успешного запуска сопроцессора являются строки со словом ARISC в выводе при старте мини ПК.

Re: LinuxCNC + Orange Pi

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

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

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

Re: LinuxCNC + Orange Pi

Добавлено: 04 апр 2020, 06:56
MX_Master
Видимо, в последних правках я таки шо то сломал (: Ща исправлю..

Re: LinuxCNC + Orange Pi

Добавлено: 04 апр 2020, 07:10
technican
MX_Master писал(а):Видимо, в последних правках я таки шо то сломал
Брал все с ветки master. А может есть заведомо работающий бинарник прошивки и драйвера arisc для linuxcnc? Ну чтобы проверить что это не у меня что-то не так настроено.

Re: LinuxCNC + Orange Pi

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

ЗЫ ещё одна мысль - в свежих Armbian могли что-то замутить с той областью SRAM A2, куда пишется и откуда работает прошивка сопроцессора. Надо тоже глянуть..

Re: LinuxCNC + Orange Pi

Добавлено: 04 апр 2020, 11:49
technican
А какой был несвежий? Может его поставить просто и не париться пока?

А по части использования обасти памяти для сопроца, я посмотрел что там какие фиксапы грузяца на старте в buster, вроде ничего криминального не увидел. Но в этом я вообще нуб, может и не должен был увидеть )

Re: LinuxCNC + Orange Pi

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

Вощем, диагноз ясен. В новых образах Armbian (или в свежем ядре linux) сопроцессор или область SRAM A2 начали подо что-то юзать. Хотя ранее их не трогали. Возможно, это связано с внедрением VPU. Завтра изучу вопрос :)

Re: LinuxCNC + Orange Pi

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

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

Надо попробовать из области ядра linux потрогать те области памяти, которые отвечают за сопроцессор. Может че-ньть и получится :thinking:

Re: LinuxCNC + Orange Pi

Добавлено: 06 апр 2020, 14:24
technican
MX_Master писал(а):Они не дают править уязвимые области памяти. Раньше эти области нельзя было править из userspace области ядра linux. Видимо, теперь из под uboot тоже нельзя.
Вообще, кажется использование этой недокументированной фичи те еще грабли конечно. Взяли вот так - и вырубили ее.
Так что шо-то мне кажется что придется внешний степген какой-то ваять на STM32 по образу и подобию как на arisc и подключать его по SPI. Начал пилить, посмотрим что выйдет... )

Re: LinuxCNC + Orange Pi

Добавлено: 06 апр 2020, 14:57
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.

Re: LinuxCNC + Orange Pi

Добавлено: 12 апр 2020, 14:17
kmike
Добрый день!

Поставил с нуля все на Orange PI PC. С arisc-драйверами не заводится. Есть надежда исправить?

Re: LinuxCNC + Orange Pi

Добавлено: 12 апр 2020, 15:09
nevkon
А почитать? Возьмите Armbian 5.77 - в нем должно работать.

Re: LinuxCNC + Orange Pi

Добавлено: 12 апр 2020, 19:50
avmartugin
nevkon писал(а):А почитать? Возьмите Armbian 5.77 - в нем должно работать.
а где найти эту версию?
в архивных образах ее нет https://dl.armbian.com/orangepipc2/archive/

Re: LinuxCNC + Orange Pi

Добавлено: 13 апр 2020, 05:20
nevkon
У меня последний скачанный 5.41, могу поделиться если подойдет.

Re: LinuxCNC + Orange Pi

Добавлено: 13 апр 2020, 09:10
kmike
Если есть preempt_rt_kernel для 5.41 - поделитесь. Образ 5.41 и пакеты ядра.

Re: LinuxCNC + Orange Pi

Добавлено: 13 апр 2020, 09:39
avmartugin
nevkon писал(а):У меня последний скачанный 5.41, могу поделиться если подойдет.
Прошу расширить на облако какой-то образ armbian где будет меньше проблем с инсталлером.

Re: LinuxCNC + Orange Pi

Добавлено: 13 апр 2020, 10:27
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 драйвер для работы с этим модулем. Так что, товарищи, где-то через недельку, сопроцессор будет снова в строю. Ну а потом уже подумаем о разных версиях прошивки под конкретные задачи..

ЗЫ всех со прошедшим днём космонавтики :)

Re: LinuxCNC + Orange Pi

Добавлено: 13 апр 2020, 10:53
kmike
Спасибо. Информация обнадеживает. Буду ждать и обязательно тестировать :)