Компиляция EMC2

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Компиляция EMC2

Сообщение Lexxa »

Тема рождена отсюда - http://cnc-club.ru/forum/viewtopic.php? ... t=40#p4910
В файле baltsys.cc полно спецом включенных синтаксических ошибок.
1) #Include без файлов
2) часть переменных написана заглавными буквами
3) отсутствуют знаки препинания.
Всё исправил.
Все манипуляции на домашнем компе:
ЦПУ - AMD Athlon 3000+
м/п - ASUS M2N-MX SE PLUS
ОЗУ - 3 GB
Видео пробовал встроенное GeForce 6100, пробовал дискретное GeForce 6200. дрова ставил открытые.
glxgearts колесики крутит.

Далее по мануалу. Установил исходники emc2-dev 2.6..., откомпилил проект.
Не запускается с оболочкой Axis.
До оболочки baltsystem так и не добрался.
pncconf как предлагал 4 варианта дисплея так и предлагает. По большому счету это фигня, можно и ручками дисплей прописать.

Снес всё нафиг. Установил с нуля. Запомнил конфиг из примера с дисплеем Axis. Обновился до 2.4.6. Проверил его на 2.4.6 - запускается без косяков.
Установил доп. софт для компиляции, проверил, что ничего не сломалось (мой пример по-прежнему запускается).
стянул исходники на 2.4.6, внес правки по мануалу. Откомплилось всё. на этапе подмены путей

Код: Выделить всё

lexxa@test-cnc:~/build/src$ ../scripts/emc-environment
This script should be loaded in the context of your shell, by executing
	. ../scripts/emc-environment
[b]not executed as a separate command[/b].
lexxa@test-cnc:~/build/src$ 
Ну да ладно, убрал /usr/bin/emc, запускаю свеже откомпиленый:

Код: Выделить всё

lexxa@test-cnc:~/build/src$ ../scripts/emc
EMC2 - 2.4.6.test
Machine configuration directory is '/home/lexxa/emc2/configs/sim'
Machine configuration file is 'axis.ini'
Starting EMC2...
io started
RTAPI: ERROR: could not open shared memory (errno=2)
HAL: ERROR: rtapi init failed
IOCONTROL: ERROR: hal_init() failed
can't initialize the HAL
<commandline>:0: io exited without becoming ready
halcmd loadusr io started
RTAPI: ERROR: could not open shared memory (errno=2)
HAL: ERROR: rtapi init failed
HALUI: ERROR: hal_init() failed
emc/usr_intf/halui.cc 2045: hal_init error
<commandline>:0: halui exited without becoming ready
hal_lib: dlopen: /home/lexxa/build/rtlib/hal_lib.so: cannot open shared object file: No such file or directory
trivkins: dlopen: /home/lexxa/build/rtlib/trivkins.so: cannot open shared object file: No such file or directory
core_sim.hal:5: /home/lexxa/build/bin/rtapi_app exited without becoming ready
core_sim.hal:5: insmod failed, returned -1
Shutting down and cleaning up EMC2...
hal_lib: dlopen: /home/lexxa/build/rtlib/hal_lib.so: cannot open shared object file: No such file or directory
Cleanup done
EMC terminated with an error.  You can find more information in the log:
    /home/lexxa/emc_debug.txt
and
    /home/lexxa/emc_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal
lexxa@test-cnc:~/build/src$ 
Т.е. запускается вибиралка конфига, я выбираю тот конфиг, который был изначально рабочий на 2.4.6 из репов и откомпиленный он работать не хочет.

Кто нибудь сталкивался?
Вложения
EMC_NC210.tar.gz
(863.47 КБ) 1181 скачивание
Последний раз редактировалось Lexxa 28 дек 2011, 23:09, всего редактировалось 1 раз.
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Компиляция EMC2

Сообщение Nick »

А почему конфиг от симулятора, но при этом запускается в RTAI?
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Компиляция EMC2

Сообщение Lexxa »

Интересно другое, почему не отрабатывается скрипт

Код: Выделить всё

сase "$0" in
    emc-environment|*/emc-environment)
	cat <<EOF
This script should be loaded in the context of your shell, by executing
	. $0
not executed as a separate command.
EOF
	exit 1 ;;
esac
дальше скрип с подменаи
Я попробую конечно сейчас RT пример, но с лежащим на месте emc (/usr/bin) запустится emc установленный
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Компиляция EMC2

Сообщение Nick »

может он хочет, чтобы его запускали прямо из того же директория, чтобы было ./emc-environment
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Компиляция EMC2

Сообщение Lexxa »

закоментировал шапку неотрабатывющего скрипта:

Код: Выделить всё

#case "$0" in
#    emc-environment|*/emc-environment)
#	cat <<EOF
#This script should be loaded in the context of your shell, by executing
#	. $0
#not executed as a separate command.
#EOF
#	exit 1 ;;
#esac
Скрипт работает, но не меняет переменные:

Код: Выделить всё

lexxa@test-cnc:~/build/scripts$  ./emc
EMC2 - 2.4.6.test
Machine configuration directory is '/home/lexxa/emc2/configs/sim'
Machine configuration file is 'axis.ini'
Starting EMC2...
io started
RTAPI: ERROR: could not open shared memory (errno=2)
RTAPI: Locked memory limit is 64KiB, recommended at least 20480KiB.
This can cause the error 'could not open shared memory'.
For more information, see
	http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?LockedMemory
HAL: ERROR: rtapi init failed
IOCONTROL: ERROR: hal_init() failed
can't initialize the HAL
<commandline>:0: io exited without becoming ready
halcmd loadusr io started
RTAPI: ERROR: could not open shared memory (errno=2)
RTAPI: Locked memory limit is 64KiB, recommended at least 20480KiB.
This can cause the error 'could not open shared memory'.
For more information, see
	http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?LockedMemory
HAL: ERROR: rtapi init failed
HALUI: ERROR: hal_init() failed
emc/usr_intf/halui.cc 2045: hal_init error
<commandline>:0: halui exited without becoming ready
hal_lib: dlopen: /home/lexxa/build/rtlib/hal_lib.so: cannot open shared object file: No such file or directory
trivkins: dlopen: /home/lexxa/build/rtlib/trivkins.so: cannot open shared object file: No such file or directory
core_sim.hal:5: /home/lexxa/build/bin/rtapi_app exited without becoming ready
core_sim.hal:5: insmod failed, returned -1
Shutting down and cleaning up EMC2...
hal_lib: dlopen: /home/lexxa/build/rtlib/hal_lib.so: cannot open shared object file: No such file or directory
Cleanup done
EMC terminated with an error.  You can find more information in the log:
    /home/lexxa/emc_debug.txt
and
    /home/lexxa/emc_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal
lexxa@test-cnc:~/build/scripts$ 
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Компиляция EMC2

Сообщение Lexxa »

Nick писал(а):может он хочет, чтобы его запускали прямо из того же директория, чтобы было ./emc-environment
из того же директория с чем?
с новоиспечнной emc? так он и так с ней.
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Компиляция EMC2

Сообщение Nick »

Ну ты запускал ее так: lexxa@test-cnc:~/build/src$ ../scripts/emc-environment
а ей может быть нужно так:
cd ../scripts/
./emc-environment

Комментировать не стоит, не спроста же они это написали...
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Компиляция EMC2

Сообщение Lexxa »

не, я пробовал повсякому, просто тут написал так, чтоб покороче было. результат один.
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Компиляция EMC2

Сообщение Lexxa »

из под sudo тож запускал - пофиг
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Компиляция EMC2

Сообщение Nick »

а может так:
. emc-environment
(точка-пробел emc-environment)
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Компиляция EMC2

Сообщение Lexxa »

точка пробел отработались нормально)) +1000)) что такое точка пробел?
запускается нужный emc, с /usr/bin/emc не путается. только вот один хрен вылетает на axis
Кстати, на mini тоже вылетает.

Код: Выделить всё

RTAPI: ERROR: could not open shared memory (errno=2)
HAL: ERROR: rtapi init failed
IOCONTROL: ERROR: hal_init() failed
can't initialize the HAL
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Компиляция EMC2

Сообщение Lexxa »

Попробую пререкомпилить без опции sim.
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Компиляция EMC2

Сообщение Lexxa »

Откомпилилось. Запускается. скрипт не ругается.
Конфиги по-прежнему работать не хотят.
Установленный emc не сломался.
Теперь косяк такой

Код: Выделить всё

Machine configuration directory is '/home/lexxa/emc2/configs/sim'
Machine configuration file is 'axis.ini'
Starting EMC2...
/home/lexxa/build/scripts/realtime: line 149: /home/lexxa/build/bin/emc_module_helper: No such file or directory
Realtime system did not load
Shutting down and cleaning up EMC2...
...
RTAPI: ERROR: could not open shared memory (errno=2)
HAL: ERROR: rtapi init failed
halcmd: hal_init() failed: -22
NOTE: 'rtapi' kernel module must be loaded
/home/lexxa/build/scripts/realtime: line 179: /home/lexxa/build/bin/emc_module_helper: No such file or directory
...
Cleanup done
EMC terminated with an error.  You can find more information in the log:
    /home/lexxa/emc_debug.txt
and
    /home/lexxa/emc_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal
Пописал в /etc/defaults/grub

Код: Выделить всё

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash lapic"
не помогло. update-grub сделал.
Делал как пишут в вики
If you get an error like
Realtime system did not load
then stop the rtai with
$ halcmd unloadrt all
$ halcmd stop
then start again. Sometimes the first load will clear up an issue...
не помогает
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Компиляция EMC2

Сообщение Nick »

Lexxa писал(а):/home/lexxa/build/scripts/realtime: line 149: /home/lexxa/build/bin/emc_module_helper: No such file or directory
Realtime system did not load
Такого файла действительно нет?
И опять конфиг sim...
Lexxa писал(а):точка пробел отработались нормально)) +1000)) что такое точка пробел?
Хрен знает :). Я так понимаю ты run-in-place скомпилировал, может ". " значит запуск пустой консоли прямо здесь без внешних переменных и прочего...
На новом годе Петьку увижу спрошу :).
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Компиляция EMC2

Сообщение Lexxa »

ТОчка пробел. всё как всегда просто. в скрипте почему-то поленились указать интерпритатор.
точка пробел означаетзапуск скрипта в текущем интерпритаторе.
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Компиляция EMC2

Сообщение Lexxa »

установил 2.6. pre
перед компиляцией необходимо установить библиотеку libboost-python.
откомпилилось, запускается.
все файлы на месте. подозреваю, что какой-то не тот исходник 2.4.6 я скачал.

попробую прилепить baltsys.
Балтсис откомпилился, запускается все.
Вместо красивого экранчика там стандартный keystick((
Буду разбираться.
Прилепил все файлы к первому сообщению.
:bender:
jo_key
Почётный участник
Почётный участник
Сообщения: 262
Зарегистрирован: 19 сен 2011, 14:49
Репутация: 30
Настоящее имя: Евгений
Откуда: Украина, Харьков
Контактная информация:

Re: Компиляция EMC2

Сообщение jo_key »

Скажите плжст , просто ради интереса, а зачем ставят из исходников?
Можно же сделать все быстрее: добавить в репозиторий deb http://buildbot.linuxcnc.org/lucid v2.5_branch-rt и http://buildbot.linuxcnc.org/lucid master-rt и.... вуаля: версия 2.6.0-pre А потом раз в неделю обновлять ЕМС2
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Компиляция EMC2

Сообщение Nick »

Если хочется модифицировать программу под себя, то без исходников практически никак. Опять же можно сделать run-in-place и поставить сразу несколько разных версий emc2. Одну тестировать, а с другой работать.
Аватара пользователя
roach
Мастер
Сообщения: 205
Зарегистрирован: 01 июн 2011, 07:55
Репутация: 0
Контактная информация:

Re: Компиляция EMC2

Сообщение roach »

Lexxa, извините за вопрос, но зачем Вам интерфейс NC?
psha
Опытный
Сообщения: 147
Зарегистрирован: 28 фев 2011, 11:11
Репутация: 1
Контактная информация:

Re: Компиляция EMC2

Сообщение psha »

Блин, господа, читайте документацию.
Скрипт emc-environment нужен чтоб правильным образом настроить всякие пути, дабы можно было работать без установки в систему.
'.' оно же 'source' - исполняет скрипт без запуска нового шелла и таким образом в текущей сессии сохраняются все изменения.
Для rtai надо не забыть сделать 'sudo make setuid', иначе не будут проставлены suid флаги и обычный пользователь не сможет грузить модули,
что нужно для реалтайма.
root, доделай конвертацию! :)
Ответить

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