Настраиваем контроллер to_pci.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Dron
Кандидат
Сообщения: 47
Зарегистрирован: 21 апр 2016, 07:37
Репутация: 1
Настоящее имя: Андрей
Откуда: Кемероо
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение Dron »

Я правильно понимаю компилятор заголовочных файлов не видит ?

#include "rtapi_ctype.h" /* isspace() */
#include "rtapi.h" /* RTAPI realtime OS API */
#include "rtapi_app.h" /* RTAPI realtime module decls */
#include "hal.h" /* HAL public API decls */
#include <linux/types.h>
#include <linux/pci.h>
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение ex71 »

Dron писал(а): Я правильно понимаю компилятор заголовочных файлов не видит ?
типа того. Ну там надо правильные исходники ядра и правильные заголовки в нужные директории линкануть.
По-хорошему это в мейкфайле прописывается через параметры и переменные.
Забей, это не особо нужно. Просто пропиши после указанных тобой инклюдов.
#define KERN_ALERT "<1>"
Это кусок из оригинального макроса и он лишь указывает префикс сообщения в логах.
mmv писал(а): стоит Linuxcnc, но halcompile там нет.
sudo apt-get install linuxcnc-uspace-dev
Dron
Кандидат
Сообщения: 47
Зарегистрирован: 21 апр 2016, 07:37
Репутация: 1
Настоящее имя: Андрей
Откуда: Кемероо
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение Dron »

ex71 писал(а): типа того. Ну там надо правильные исходники ядра и правильные заголовки в нужные директории линкануть.
По-хорошему это в мейкфайле прописывается через параметры и переменные.
Забей, это не особо нужно. Просто пропиши после указанных тобой инклюдов.
#define KERN_ALERT "<1>"
Это кусок из оригинального макроса и он лишь указывает префикс сообщения в логах.
Спасибо ошибок нет , одни предупреждения.
dron@debian-dron:~$ sudo halcompile --install /home/dron/to_pci.c
[sudo] пароль для dron:
Compiling realtime to_pci.c
to_pci.c: In function ‘rtapi_app_main’:
to_pci.c:161:13: warning: implicit declaration of function ‘pci_get_device’ [-Wimplicit-function-declaration]
to_io = pci_get_device(VENDORID_dev, num_dev, to_io);
^~~~~~~~~~~~~~
to_pci.c:161:11: warning: assignment to ‘struct pci_dev *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
to_io = pci_get_device(VENDORID_dev, num_dev, to_io);
^
to_pci.c:169:28: warning: implicit declaration of function ‘pci_resource_start’ [-Wimplicit-function-declaration]
device_data->io_base = pci_resource_start(to_io, 0);
^~~~~~~~~~~~~~~~~~
to_pci.c:171:24: warning: implicit declaration of function ‘pci_resource_len’ [-Wimplicit-function-declaration]
device_data->len = pci_resource_len(to_io, 0);
^~~~~~~~~~~~~~~~
to_pci.c:175:29: warning: implicit declaration of function ‘ioremap_nocache’ [-Wimplicit-function-declaration]
device_data->mem_base = ioremap_nocache( device_data->io_base,device_data->len);
^~~~~~~~~~~~~~~
to_pci.c:175:27: warning: assignment to ‘void *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
device_data->mem_base = ioremap_nocache( device_data->io_base,device_data->len);
^
to_pci.c:177:2: warning: implicit declaration of function ‘printk’; did you mean ‘isprint’? [-Wimplicit-function-declaration]
printk(KERN_ALERT "to_pci: io_base: %X, mem_base: %p\n", device_data->io_base, device_data->mem_base);
^~~~~~
isprint
to_pci.c:316:1: warning: implicit declaration of function ‘iounmap’ [-Wimplicit-function-declaration]
iounmap((void*)device_data->mem_base);
^~~~~~~
to_pci.c: In function ‘update_port’:
to_pci.c:370:8: warning: implicit declaration of function ‘readl’ [-Wimplicit-function-declaration]
tmp = readl((port->mem_base)+(reg_in*4));
^~~~~
to_pci.c:423:7: warning: implicit declaration of function ‘writel’ [-Wimplicit-function-declaration]
writel(tmp,(port->mem_base)+(reg_index*4));
^~~~~~
Linking to_pci.so
cp to_pci.so /usr/lib/linuxcnc/modules/
mmv
Мастер
Сообщения: 609
Зарегистрирован: 24 май 2016, 21:58
Репутация: 33
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение mmv »

ex71 писал(а): sudo apt-get install linuxcnc-uspace-dev
Там RTAI ядро, и никаких preempt к нему нет, uspace очевидно тоже нет. А теперь нужны правильные репозитории.
Забей короче.....
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение ex71 »

mmv писал(а): А теперь нужны правильные репозитории.
я так для информации выложил. Пока про ошибку читал на анг. форуме, нашел и про отсутствие halcompile. И он действительно отсутствует в некоторых сборках (к примеру 2.8.0 которая у меня на тестовом харде залита).
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение Serg »

ex71 писал(а): и про отсутствие halcompile. И он действительно отсутствует в некоторых сборках (к примеру 2.8.0 которая у меня на тестовом харде залита).
Ну так сборки предназначены для установки на "станочные компы" для работы операторов станков, а не для того, чтоб программисты компилили на свои исходники. Они сами должны знать где взять halcompile и всё что ему надо. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение ex71 »

Serg писал(а): а не для того, чтоб программисты компилили на свои исходники.
Ну этж не винда, где дрова можно от соседней версии подкинуть. Хотя надо сказать, что с виндой в данном случае проще - там версий очень мало. А тут их миллион и каждая сборка ядра требует модули с тем же конфигом.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение Serg »

ex71 писал(а): Ну этж не винда, где дрова можно от соседней версии подкинуть. Хотя надо сказать, что с виндой в данном случае проще - там версий очень мало. А тут их миллион и каждая сборка ядра требует модули с тем же конфигом.
Я правильно понимаю, что ты отрицаешь существование бинарных установочных пакетов с LinuxCNC и всеми HAL-компонентами внутри?.. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение ex71 »

хмм.. я чето не думал на счет HAL. Это же по факту тоже модуль ядра. И он как-бы прекомпилен и не является зависимым от конкретно собранного ядра. ??

Я когда собирал драйвер к ядру (уникальный) мне пришлось брать сорсы ядра, вытягивать конфиг из основного ядра, собирать модуль. После чего оригинальное ядро сообщило что модуль собран "не под эту версию"... Что потянуло пересборку ядра и всех модулей к нему. Иначе "старые" модули не грузились с "новым" ядром.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение Serg »

Это зависит от того, как написан драйвер/модуль и какие ресурсы ядра он использует.
Например я для RHEL7 сам собирал драйвер древнего RAID-контролера, который уже выкинули из дистрибутива, такой он древний. Так вот скомпилированный для RHEL7 модуль сейчас загружается ядром от CentOS8. :)
Но в любом случае сделать пяток разных готовых модулей для всех дистрибутивов, для которых есть готовый пакет LinuxCNC не должно быть великой проблемой.

Опять-же есть механизм, позволяющий заворачивать в пакет файлы с исходниками и/или объектным кодом и линковать с имеющимся ядром автоматически при установке такого пакета. Так-же автоматически оно будет перелинковываться при апгрейде ядра. Так организованы пакеты с проприетарными драйверами AMD и NVidia.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Dron
Кандидат
Сообщения: 47
Зарегистрирован: 21 апр 2016, 07:37
Репутация: 1
Настоящее имя: Андрей
Откуда: Кемероо
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение Dron »

Друзья , есть у кого рабочие конфиг файлы для станка 16а20.
Взял файл my16A20.7z , который ТООТ выложил в начале этой темы , получил ошибки.

Error report created by /usr/lib/tcltk/linuxcnc/show_errors.tcl:

Print file information:
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/lib/linuxcnc/modules
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.6
LINUXCNC - 2.8.0
Machine configuration directory is '/home/dron/linuxcnc/configs/my16A20/my_16A20.old'
Machine configuration file is 'my_16A20.ini'
INIFILE=/home/dron/linuxcnc/configs/my16A20/my_16A20.old/my_16A20.ini
VERSION=
check_config validation failed

Debug file information:
Can not find -sec EMC -var VERSION -num 1
can't read "section": no such variable
while executing
"upvar $section s"
(procedure "parse_ini" line 11)
invoked from within
"parse_ini $inifile"
(file "/usr/share/linuxcnc/hallib/check_config.tcl" line 151)



-----------------------------------------------------------------------
Info report created by linuxcnc_info:
The file: /tmp/linuxcnc_info.txt
can be posted to a forum or a web site like:
http://pastebin.com
in order to provide information about the linuxcnc
system and configuration.

Date: Пт апр 23 17:08:25 +07 2021
UTC Date: Пт апр 23 10:08:25 UTC 2021
this program: /usr/bin/linuxcnc_info
uptime: 17:08:25 up 2 days, 6:08, 1 user, load average: 2,11, 1,61, 1,40
lsb_release -sa: Debian Debian GNU/Linux 10 (buster) 10 buster
which linuxcnc: /usr/bin/linuxcnc
pwd: /home/dron
USER: dron
LOGNAME: dron
HOME: /home/dron
EDITOR:
VISUAL:
LANGUAGE:
TERM: dumb
COLORTERM:
DISPLAY: :0.0
DESKTOP: lightdm-xsession
display size: 1280x1024 pixels (338x270 millimeters)
PATH: /usr/bin:/home/dron/linuxcnc/configs/my16A20/my_16A20.old/bin:/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

uname items:
nodename -n: debian-dron
kernel-name -s: Linux
kernel-vers -v: #1 SMP PREEMPT RT Debian 4.19.146-1 (2020-09-17)
machine -m: x86_64
processor -p: unknown
platform -i: unknown
oper system -o: GNU/Linux

/proc items:
cmdline: BOOT_IMAGE=/boot/vmlinuz-4.19.0-11-rt-amd64 root=UUID=d061a01e-89b2-4802-8925-d225ae9c4769 ro initrd=/install/initrd.gz quiet
model name: Intel(R) Pentium(R) 4 CPU 3.20GHz
cores: 1
cpu MHz: 3199.876
parport: 0000-0000 : parport0 0000-0000 : parport0
serial: 0000-0000 : serial

Versions:
gcc: gcc (Debian 8.3.0-6) 8.3.0
python: Python 2.7.16
git: not_in_PATH
git commit: NA
tcl: 8.6
tk: 8.6
glade: not_in_PATH
glade-gtk2: not_in_PATH

linuxcnc_var all:

LINUXCNCVERSION: 2.8.0
LINUXCNC_AUX_GLADEVCP: /usr/share/linuxcnc/aux_gladevcp
LINUXCNC_AUX_EXAMPLES: /usr/share/linuxcnc/aux_examples
REALTIME: /etc/init.d/realtime
RTS: uspace
HALLIB_DIR: /usr/share/linuxcnc/hallib

dpkg -l '*linuxcnc*':
Желаемый=неизвестно/установить/удалить[r]/вычистить[p]/зафиксировать[h]
| Состояние=не[n]/установлен/настроен[c]/распакован/частично настроен[F]/
частично установлен[H]/trig-aWait/Trig-pend
|/ Ошибка?=(нет)/требуется переустановка[R] (верхний регистр
в полях состояния и ошибки указывает на ненормальную ситуацию)
||/ Имя Версия Архитектура Описание
+++-===================-============-============-=====================================================================
un linuxcnc <нет> <нет> (описание недоступно)
un linuxcnc-dev <нет> <нет> (описание недоступно)
un linuxcnc-doc <нет> <нет> (описание недоступно)
ii linuxcnc-doc-cn 1:2.8.0 all motion controller for CNC machines and robots (Chinese
ii linuxcnc-doc-en 1:2.8.0 all motion controller for CNC machines and robots (English documentation)
ii linuxcnc-doc-es 1:2.8.0 all controlador de movimiento para máquinas CNC y robots (Español).
ii linuxcnc-doc-fr 1:2.8.0 all motion controller for CNC machines and robots (French documentation)
un linuxcnc-sim <нет> <нет> (описание недоступно)
un linuxcnc-sim-dev <нет> <нет> (описание недоступно)
ii linuxcnc-uspace 1:2.8.0 amd64 motion controller for CNC machines and robots
ii linuxcnc-uspace-dev 1:2.8.0 amd64 PC based motion controller for real-time Linux
mmv
Мастер
Сообщения: 609
Зарегистрирован: 24 май 2016, 21:58
Репутация: 33
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение mmv »

На 37 странице есть, посмотри
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение ex71 »

Dron писал(а): 23 апр 2021, 13:38 Error report created by /usr/lib/tcltk/linuxcnc/show_errors.tcl:
ты это вот в спойлер CODE запихивай, чтобы не постить сообщения на 5 экранов высотой.
И пока не настроил все - LCNC лучше запускать из консоли. Там ошибки сразу пишутся, и их не надо выискивать в огромной куче лишней инфы.

По факту что-то с конфигом не то. У меня карт дома нет, поэтому не проверю.
Ну если выкинуть все упоминания о PinCET картах, то конфиг запускается.
Dron
Кандидат
Сообщения: 47
Зарегистрирован: 21 апр 2016, 07:37
Репутация: 1
Настоящее имя: Андрей
Откуда: Кемероо
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение Dron »

mmv писал(а): На 37 странице есть, посмотри
Спасибо , завтра попробую
Dron
Кандидат
Сообщения: 47
Зарегистрирован: 21 апр 2016, 07:37
Репутация: 1
Настоящее имя: Андрей
Откуда: Кемероо
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение Dron »

ex71 писал(а): ты это вот в спойлер CODE запихивай, чтобы не постить сообщения на 5 экранов высотой.
Ок , исправлюсь.
ex71
Мастер
Сообщения: 697
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение ex71 »

Нашел дома PCI карту. Конфиг не соответствует версии драйвера или что там. Ну за столько лет что-то поменялось.
Я советую написать свой с нуля, все равно просто так не заработает. Надо же будет лазить по конфигу и искать "что куда подключать" в реальности. Так проще разобраться один раз и прописать самому - потом изменения вносить будет проще.
plotik
Мастер
Сообщения: 428
Зарегистрирован: 10 май 2012, 15:30
Репутация: 33
Настоящее имя: Евгений
Откуда: Rostov-on-Don
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение plotik »

Плата PCISD. to_pcisd установлен.всё подключено верно. Запускаю тестовый конфиг-мотор не крутиться. На Step0 сигнала нет-смотрел осцилом. куда копать?
"Ты не дрыгайся! Показывай свою гравицаппу. Если фирменная вещь — возьмём!"
"А этот паца́к все время говорит на языках, продолжения которых не знает!"
Фрост
Мастер
Сообщения: 382
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 17
Настоящее имя: Сергей
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение Фрост »

Dron писал(а): Друзья , есть у кого рабочие конфиг файлы для станка 16а20.
Взял файл my16A20.7z , который ТООТ выложил в начале этой темы , получил ошибки.
Если разбираешься, без проблем адаптируешь под себя, рабочий под 2.8, плата PCI
Вложения
it42.rar
(9.49 КБ) 59 скачиваний
mmv
Мастер
Сообщения: 609
Зарегистрирован: 24 май 2016, 21:58
Репутация: 33
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение mmv »

plotik писал(а): Плата PCISD. to_pcisd установлен.всё подключено верно. Запускаю тестовый конфиг-мотор не крутиться. На Step0 сигнала нет-смотрел осцилом. куда копать?
Как подключаете, что выходит с драйвера (состояние соответствующих сигналов)?
"всё подключено верно" - Не известно!
Запускаю тестовый конфиг-мотор не крутиться - А должен?(при запуске конфига ничего не должно крутится....)

Что бы вам помогли максимально опишите проблему, чем точнее описание проблемы, тем быстрее ответ!
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
Dron
Кандидат
Сообщения: 47
Зарегистрирован: 21 апр 2016, 07:37
Репутация: 1
Настоящее имя: Андрей
Откуда: Кемероо
Контактная информация:

Re: Настраиваем контроллер to_pci.

Сообщение Dron »

Фрост писал(а): 10 июн 2021, 10:44
Dron писал(а): Друзья , есть у кого рабочие конфиг файлы для станка 16а20.
Взял файл my16A20.7z , который ТООТ выложил в начале этой темы , получил ошибки.
Если разбираешься, без проблем адаптируешь под себя, рабочий под 2.8, плата PCI
Спасибо , большое
Ответить

Вернуться в «LinuxCNC»