Страница 1 из 2

Компиляция EMC2

Добавлено: 28 дек 2011, 20:38
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 из репов и откомпиленный он работать не хочет.

Кто нибудь сталкивался?

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

Добавлено: 28 дек 2011, 21:11
Nick
А почему конфиг от симулятора, но при этом запускается в RTAI?

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

Добавлено: 28 дек 2011, 21:33
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 установленный

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

Добавлено: 28 дек 2011, 22:22
Nick
может он хочет, чтобы его запускали прямо из того же директория, чтобы было ./emc-environment

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

Добавлено: 28 дек 2011, 22:28
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$ 

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

Добавлено: 28 дек 2011, 22:29
Lexxa
Nick писал(а):может он хочет, чтобы его запускали прямо из того же директория, чтобы было ./emc-environment
из того же директория с чем?
с новоиспечнной emc? так он и так с ней.

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

Добавлено: 28 дек 2011, 22:58
Nick
Ну ты запускал ее так: lexxa@test-cnc:~/build/src$ ../scripts/emc-environment
а ей может быть нужно так:
cd ../scripts/
./emc-environment

Комментировать не стоит, не спроста же они это написали...

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

Добавлено: 28 дек 2011, 23:05
Lexxa
не, я пробовал повсякому, просто тут написал так, чтоб покороче было. результат один.

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

Добавлено: 28 дек 2011, 23:06
Lexxa
из под sudo тож запускал - пофиг

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

Добавлено: 28 дек 2011, 23:11
Nick
а может так:
. emc-environment
(точка-пробел emc-environment)

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

Добавлено: 28 дек 2011, 23:21
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

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

Добавлено: 28 дек 2011, 23:25
Lexxa
Попробую пререкомпилить без опции sim.

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

Добавлено: 28 дек 2011, 23:48
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...
не помогает

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

Добавлено: 29 дек 2011, 09:20
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 скомпилировал, может ". " значит запуск пустой консоли прямо здесь без внешних переменных и прочего...
На новом годе Петьку увижу спрошу :).

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

Добавлено: 29 дек 2011, 10:28
Lexxa
ТОчка пробел. всё как всегда просто. в скрипте почему-то поленились указать интерпритатор.
точка пробел означаетзапуск скрипта в текущем интерпритаторе.

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

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

попробую прилепить baltsys.
Балтсис откомпилился, запускается все.
Вместо красивого экранчика там стандартный keystick((
Буду разбираться.
Прилепил все файлы к первому сообщению.

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

Добавлено: 23 янв 2012, 17:58
jo_key
Скажите плжст , просто ради интереса, а зачем ставят из исходников?
Можно же сделать все быстрее: добавить в репозиторий deb http://buildbot.linuxcnc.org/lucid v2.5_branch-rt и http://buildbot.linuxcnc.org/lucid master-rt и.... вуаля: версия 2.6.0-pre А потом раз в неделю обновлять ЕМС2

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

Добавлено: 23 янв 2012, 18:33
Nick
Если хочется модифицировать программу под себя, то без исходников практически никак. Опять же можно сделать run-in-place и поставить сразу несколько разных версий emc2. Одну тестировать, а с другой работать.

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

Добавлено: 23 янв 2012, 19:07
roach
Lexxa, извините за вопрос, но зачем Вам интерфейс NC?

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

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