[РЕШЕНО] tcl + tclx + linuxcnc-sim + bwidget

Браузеры, почтовые клиенты, офисные пакеты, файловые менеджеры, редакторы и т.п.
lnx
Сообщения: 212
Зарегистрирован: 24.08.2022

#

Итог не рабочий. да, из Ауры собираются даже две версии linuxcnc, но обе они - "реального времени" и с ядрами не реального времени не запукается конфигуратор. Помимо того linuxcnc2.9 это pyton3, а 2.8 и ниже python2. Версии linuxcnc-sim найти не удается. Помню, кто-то из опытных коллеu находил архивные репозитории, ссылка была вида https://github.com/LinuxCNC/linuxcnc/ar ... er}.tar.gz, на что сейчас гит отвечает ошибкой 404 (с подставленными версиями).

Я у себя сохранил ранее собранный пакет linuxcnc-sim-2.7.15-8-x86_64.pkg.tar. Сейчас при попытке его накатить жалуется на необходимость python2-yapps2, не существующий уже нигде. Это преодолеваю путем pacman -U --nodeps linuxcnc-sim-2.7.15-8-x86_64.pkg.tar. Но на новую машину так не ставится даже с ключом ---nodeps
pacman -U linuxcnc-sim.pkg.tar --nodeps
loading packages...
resolving dependencies...
warning: cannot resolve "python2-pillow", a dependency of "linuxcnc-sim"
warning: cannot resolve "python2-gtkglext", a dependency of "linuxcnc-sim"
warning: cannot resolve "python2-gobject2", a dependency of "linuxcnc-sim"
warning: cannot resolve "boost-python2", a dependency of "linuxcnc-sim"
warning: cannot resolve "boost-python2-libs", a dependency of "linuxcnc-sim"
:: The following package cannot be upgraded due to unresolvable dependencies:
      linuxcnc-sim

:: Do you want to skip the above package for this upgrade? [y/N] y

Пакет, кстати, linuxcnc-2.7 выложил здесь https://ond.wau.spb.ru/linuxcnc-sim.pkg.tar
lnx
Сообщения: 212
Зарегистрирован: 24.08.2022

#

Решил пойти по штатной инструкции https://www.linuxcnc.org/docs/devel/htm ... nuxcnc.htm

Клонирование репозитория и конфигуре прошли штатно. Согласно хэлпу configure использовал параметры такие -
sudo pacman -S libmodbus (потребовалось доставить)

git clone https://github.com/LinuxCNC/linuxcnc.git 

cd linuxcnc/src
./autogen.sh
./configure --with-realtime=uspace --enable-non-distributable=yes --disable-build-documentation-translation --prefix=/opt/LCNC

make -j 20
sudo make install


Сборка с проста make прошла успешно, все файлы и директории на месте - как указано, в /home/LCNC/bin. Однако запуск падает
cd /home/LCNC/bin

./stepconf

line 35, in <module>
    import hal
ModuleNotFoundError: No module named 'hal'

==========

LCNC/bin$ ./linuxcnc -d /home/user/linuxcnc/configs/test/test.ini
Debug mode on
+ getopts dvlhkrH:t:m: opt
+ shift 1
+ case "" in
+ '[' -z '' ']'
+ tty -s
+ trap ErrorCheck EXIT
+ '[' -n /home/user/linuxcnc/configs/test/test.ini ']'
+ case "$1" in
+ INIFILE=/home/user/linuxcnc/configs/test/test.ini
+ shift
+ EXTRA_ARGS=("$@")
+ RUN_IN_PLACE=no
+ echo RUN_IN_PLACE=no
+ '[' RUN_IN_PLACE = yes ']'
+ LINUXCNCVERSION=2.10.0~pre0
+ export LINUXCNCVERSION
+ INIVAR=inivar
+ HALCMD='halcmd '
+ PICKCONFIG='/usr/bin/wish8.6 /home/user/linuxcnc/wau/LCNC/lib/tcltk/linuxcnc/bin/pickconfig.tcl'
+ LINUXCNC_EMCSH=/usr/bin/wish8.6
+ echo LINUXCNC_DIR=
+ echo LINUXCNC_BIN_DIR=/home/user/linuxcnc/wau/LCNC/bin
+ echo LINUXCNC_TCL_DIR=/home/user/linuxcnc/wau/LCNC/lib/tcltk/linuxcnc
+ echo LINUXCNC_SCRIPT_DIR=
+ echo LINUXCNC_RTLIB_DIR=/home/user/linuxcnc/wau/LCNC/lib/linuxcnc/modules
+ echo LINUXCNC_CONFIG_DIR=
+ echo LINUXCNC_LANG_DIR=/home/user/linuxcnc/wau/LCNC/lib/tcltk/linuxcnc/msgs
+ echo INIVAR=inivar
+ echo 'HALCMD=halcmd '
+ echo LINUXCNC_EMCSH=/usr/bin/wish8.6
+ export LINUXCNC_TCL_DIR
+ export LINUXCNC_EMCSH
+ export LINUXCNC_HELP_DIR
+ export LINUXCNC_LANG_DIR
+ export REALTIME
+ export HALCMD
+ export LINUXCNC_NCFILES_DIR
+ '[' -z '' ']'
+ echo 'LINUXCNC - 2.10.0~pre0'
LINUXCNC - 2.10.0~pre0
+ '[' -n '' ']'
+ '[' -z /home/user/linuxcnc/configs/test/test.ini ']'
+ '[' -z /home/user/linuxcnc/configs/test/test.ini ']'
++ handle_includes /home/user/linuxcnc/configs/test/test.ini
++ hdr='# handle_includes():'
++ inifile=/home/user/linuxcnc/configs/test/test.ini
+++ dirname /home/user/linuxcnc/configs/test/test.ini
++ cd /home/user/linuxcnc/configs/test
++ /usr/bin/grep '^#INCLUDE' /home/user/linuxcnc/configs/test/test.ini
++ status=1
++ '[' 1 -ne 0 ']'
++ echo /home/user/linuxcnc/configs/test/test.ini
++ return 0
+ INIFILE=/home/user/linuxcnc/configs/test/test.ini
+ INI_NAME=test.ini
+ INI_DIR=/home/user/linuxcnc/configs/test
+ CONFIG_DIR=/home/user/linuxcnc/configs/test
+ export CONFIG_DIR
+ export PATH=/home/user/linuxcnc/configs/test/bin:/home/user/linuxcnc/wau/LCNC/bin:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
+ PATH=/home/user/linuxcnc/configs/test/bin:/home/user/linuxcnc/wau/LCNC/bin:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
+ '[' -z '' ']'
+ echo 'Machine configuration directory is '\''/home/user/linuxcnc/configs/test'\'''
Machine configuration directory is '/home/user/linuxcnc/configs/test'
+ echo 'Machine configuration file is '\''test.ini'\'''
Machine configuration file is 'test.ini'
+ '[' '!' -f /home/user/linuxcnc/configs/test/test.ini ']'
+ echo INIFILE=/home/user/linuxcnc/configs/test/test.ini
+ retval=
+ GetFromIni VERSION EMC
+ name=VERSION
++ inivar -ini /home/user/linuxcnc/configs/test/test.ini -var VERSION -sec EMC
+ retval=
+ '[' -z VERSION ']'
+ echo VERSION=
+ '[' '' '!=' 1.1 ']'
+ '[' -z :0 ']'
+ update_ini -d /home/user/linuxcnc/configs/test/test.ini
Traceback (most recent call last):
  File "/home/user/linuxcnc/wau/LCNC/bin/update_ini", line 8, in <module>
    import linuxcnc
ModuleNotFoundError: No module named 'linuxcnc'
+ exitval=1
+ case "$exitval" in
+ echo 'update script failed in an unexpected way.'
update script failed in an unexpected way.
+ exit 1
+ ErrorCheck
+ result=1
+ '[' -n :0 ']'
+ echo 'catch {send -async popimage destroy .}; destroy .'
+ /usr/bin/wish8.6
+ '[' 1 -ne 0 ']'
+ tty -s
+ '[' -f /dev/fd/2 ']'
+ echo '(debug information was sent to stderr)'
+ '[' -f /tmp/linuxcnc.print.qbI2gq ']'
+ cp /tmp/linuxcnc.print.qbI2gq /home/user/linuxcnc_print.txt
+ echo $'LinuxCNC terminated with an error.  You can find more information in the log:\n    /home/user/linuxcnc_debug.txt\nand\n    /home/user/linuxcnc_print.txt\nas well as in the output of the shell command \'dmesg\' and in the terminal'
LinuxCNC terminated with an error.  You can find more information in the log:
    /home/user/linuxcnc_debug.txt
and
    /home/user/linuxcnc_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal
+ rm -f /dev/fd/2 /tmp/linuxcnc.print.qbI2gq
+ exit 1


B файлах /linuxcnc_debug.txt linuxcnc_print.txt ничего значимого, все пути, указаны верно (у каждой - свои)-
(debug information was sent to stderr)
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/home/LCNC/bin
LINUXCNC_TCL_DIR=/home/LCNC/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/home/LCNC/lib/linuxcnc/modules
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/home/LCNC/lib/tcltk/linuxcnc/msgs
INIVAR=inivar
HALCMD=halcmd 
LINUXCNC_EMCSH=/usr/bin/wish8.6
INIFILE=/home/user/linuxcnc/configs/test/test.ini
VERSION=


Какая странность отмечена. После make install (в любой директорий, пробовал разные, от хомовника до /opt) ломатся запуск ранее установленной версии 2.7. Она-то чинится легко путем наката резервной версии pacman -U _linuxcnc-sim-2.7.15-8-x86_64.pkg.tar --nodeps, но вновь собранная как падала, так и падает.

ЧЯДНТ?
Последний раз редактировалось lnx 31.07.2025 13:05, всего редактировалось 1 раз.
lnx
Сообщения: 212
Зарегистрирован: 24.08.2022

#

import hal ModuleNotFoundError: No module named 'hal' - гугл наводит на pip install hal, но это не срабатывает. Да и жалуется на его необнаружение лишь stepconf.

Посмотрел PKGBUILD рзамещенных в AUR пакетов. Любопытно. Зависимости имеют разные, как и параметры configure. И, оказывается, оба варианта собираются как linuxcnc-sim, а не реального времени - зря они об этом не написали в описании пакетов. А попытка сборки из AUR по-прежнему падает. Скачивать из репозитория не хочу, потому как он при установке пытается заменить имеющуюся и работающую (святой грааль) 2.7. А в отличе от собираемой самостоятельно не предлагает другого места для установки.

И вот парадокс. Самостоятельно через git clone + .configure + make с теми же параметрами конфигурирования собирается и ставится и это версия 2.10, но не работает. Через yay оба пакета в версии 2.9.4 не собираются вовсе, ругаясь все на тот же
ImportError: No module named gi
no
configure: error: Python pango module not found!
install with "sudo apt-get install python3-gi"

pango есть, python3-gi нет.

. Через репозиторий собранных пакетов из Ауры скачивается, но хочет убить имеющуюся, чего не разрешаю.

Кроме как залить это дело вином какие будут мнения?
RusWolf
Аватара пользователя
Сообщения: 255
Зарегистрирован: 16.08.2022

#

lnx: но обе они - "реального времени" и с ядрами не реального времени не запукается конфигуратор.
Поставить ядро реального времени, хотя бы вторым в системе проблема?

Arch Linux x86-64 на BTRFS
https://t.me/arch_linuxru

lnx
Сообщения: 212
Зарегистрирован: 24.08.2022

#

RusWolf: Поставить ядро реального времени, хотя бы вторым в системе проблема?
Святая я простота, об этой версии как-то не подумал. Подумаю, попробую. Сейчас предполагаю, что весь сыр-бор из-за имеющейся установленной версии с питоном 2.7. Это stepconf (не нужный для симуляции) падает с жалобой на hal, сам linuxcnc падает при запуске без таких жалоб. Но у коллег ставился из Ауры, не из репы, а именно через сборку, а у меня - нет.
На удаленной машине чистая установка, с нуля, поэкспериментирую.
RusWolf
Аватара пользователя
Сообщения: 255
Зарегистрирован: 16.08.2022

#

lnx: Сейчас предполагаю, что весь сыр-бор из-за имеющейся установленной версии с питоном 2.7. Это stepconf (не нужный для симуляции) падает с жалобой на hal, сам linuxcnc падает при запуске без таких жалоб.
Я так понял, есть возможность откатов снапшотов.
Я бы сделал бекап снапшота, с рабочей версией и смело всё попробовал поломать с новыми пакетами :)

Arch Linux x86-64 на BTRFS
https://t.me/arch_linuxru

lnx
Сообщения: 212
Зарегистрирован: 24.08.2022

#

Да, в прогулке я как раз вспоминал свой опыт игр со снапшотами и планировал вернуться к нему и попробовать снова, для целей таких экспериментов подойдет, а для снимков системы целиком "на все случаи" нет, потому как пролетающие обновления btfsprog и т.п. ломают.
Также, на волне этого своего энтузиазма, ищу исходники версии 2.8, чтобы попробовать на резервном диске сделать машину уже боевую, для станка, на Arche с ядром реального времени. Деб своими "дистрибутив не поддерживается" сильно расстраивает, но приходится колоться и есть. А 2.8 потому, что надо использовать ручной собранный модуль ядра под 2.8.
RusWolf
Аватара пользователя
Сообщения: 255
Зарегистрирован: 16.08.2022

#

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

Arch Linux x86-64 на BTRFS
https://t.me/arch_linuxru

Ответить