УкраїнськаEnglishmRussian
Вход/Новый
В теме много сообщений

кросс-компиляция под ARM


Автор Сообщение
Сообщение создано: 29. 10. 2010 [12:19]
fido_max
Maxim Kochetkov
Contributor
Создатель темы
Зарегистрирован(а) с: 28.10.2010
Сообщения: 129
Вчера получилось собрать кросс-компилятором (ltib) OPENScada 0.7.0.
Сама плата, на которой все планируется запустить: Freescale i.MX25PDK
на ней уже работает:
QT 4.6.3 (embedded)
вывод на ЖК экран
тачскрин через tslib

Конфигурил так:

./configure --host=$CFGHOST --build=%{_build} CFLAGS="-O2" CXXFLAGS="-O2" LDFLAGS="-L$RPM_BUILD_ROOT/%{_prefix}/lib" --prefix=/usr/local/oscada/host-arm \
--disable-FireBird \
--disable-PostgreSQL \
--disable-MySQL \
--disable-SoundCard \
--disable-System \
--disable-SNMP \
--disable-DiamondBoards \
--disable-ICP_DAS \
--disable-Siemens \
--with-sqlite3=/home/maximus/ltib/rootfs/usr/lib \
--with-qt4-dir=/usr/local/Trolltech/Qt-imx-arm-4.6.3

как ни странно, но оно даже пытается запуститься с демо проектом!
Есть несколько проблем:

1. У меня видимо не установлена поддержка локали и вся консоль забита сообщениями типа:
0|IConv | Error converting from ANSI_X3.4-1968 to UTF-8 for message part: 'BlockCalc.п п°202'
5|IConv | Error input sequence convert: Invalid or incomplete multibyte or wide character
как это пофиксить? (прощу прощения за вопрос не по адресу)

2. Как сделать так, чтобы QT модули запускались бы с параметром -qws, т.к. у меня qt embedded без иксов?

3. Запуск системы завершается строчкой:
Programm result: 139
что это?

по ходу запуска системы даже успеваю увидет web интерфейс.

[Сообщение редактировалось 1 раз(а), в последний раз 29.10.2010 в 12:20.]
Сообщение создано: 29. 10. 2010 [17:18]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"fido_max" wrote:

1. У меня видимо не установлена поддержка локали и вся консоль забита сообщениями типа:
0|IConv | Error converting from ANSI_X3.4-1968 to UTF-8 for message part: 'BlockCalc.п п°202'
5|IConv | Error input sequence convert: Invalid or incomplete multibyte or wide character
как это пофиксить? (прощу прощения за вопрос не по адресу)

Установить системную кодировку в UTF-8 или не запускать ДемоБД, там на языке по умолчанию, Английский, встречаются тексты на Русском.

"fido_max" wrote:

2. Как сделать так, чтобы QT модули запускались бы с параметром -qws, т.к. у меня qt embedded без иксов?

В командной строке запуска OpenSCADA пробовали эти ключи передавать? Инициализатору QT, в OpenSCADA, аргументы командной строки передаются.

"fido_max" wrote:

3. Запуск системы завершается строчкой:
Programm result: 139
что это?

Типичное падение по ошибке сегментации памяти, Segfault, http://www.slac.stanford.edu/BFROOT/www/Computing/Environment/Tools/Batch/exitcode.html .

Learn, learn and learn better than work, work and work.
Сообщение создано: 29. 10. 2010 [20:30]
fido_max
Maxim Kochetkov
Contributor
Создатель темы
Зарегистрирован(а) с: 28.10.2010
Сообщения: 129
"roman" wrote:

Установить системную кодировку в UTF-8 или не запускать ДемоБД, там на языке по умолчанию, Английский, встречаются тексты на Русском.


А как ее установить-то? У меня команды locale нету. Пол дня сегодня гуглил - так и не понял откуда она берется. Какую либу надо собрать чтоб она появилась?

"roman" wrote:

В командной строке запуска OpenSCADA пробовали эти ключи передавать? Инициализатору QT, в OpenSCADA, аргументы командной строки передаются.


./openscada_demo -qws так что ли? завтра попробую

"roman" wrote:

Типичное падение по ошибке сегментации памяти, Segfault, http://www.slac.stanford.edu/BFROOT/www/Computing/Environment/Tools/Batch/exitcode.html .


А до подключения swap раздела и выкидывания пары модулей падало именно с надписью Segmentation failure.
Сообщение создано: 30. 10. 2010 [21:56]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"fido_max" wrote:

А как ее установить-то? У меня команды locale нету. Пол дня сегодня гуглил - так и не понял откуда она берется. Какую либу надо собрать чтоб она появилась?

Эта команда не ставит локаль.
Обычно для установки локали достаточно указать переменную окружения: LANG=ru_RU.UTF-8
Однако для этой локали должно быть описание в /usr/lib/locale иначе работать не будет.

Learn, learn and learn better than work, work and work.
Сообщение создано: 01. 11. 2010 [13:50]
fido_max
Maxim Kochetkov
Contributor
Создатель темы
Зарегистрирован(а) с: 28.10.2010
Сообщения: 129
С локалью разобрался. с QT embedded (параметр -qws тоже).
Но есть еще пара проблем:

1. QTStarter запускается, даже показывает заставку, но потом происходит:
Object::connect: No such signal QTabWidget::currentChanged(QWidget*)

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

Object::connect: No such signal QAction::activated()

./openscada: symbol lookup error: ../../lib/openscada/ui_QTCfg.so: undefined symbol: _ZN10QByteArray11rpl_reallocEi
и segfault

2. что используется для работы JavaLike Calc? чем он компилирует?
у меня появилось сообщение:
4|/DemoStation/sub_DAQ/mod_JavaLikeCalc/ | Компиляция на языке программирования не поддерживается.
что еще нужно установить?

QT собирал так:
./configure -embedded arm \
-prefix /usr/local/Trolltech/Qt-imx-arm-4.6.3 \
-qt-mouse-tslib \
-xplatform qws/linux-arm-gnueabi-mx25-g++ -release \
-no-webkit \
-no-javascript-jit \
-no-qt3support \
-little-endian -host-little-endian -fontconfig -sm -v -opensource -confirm-license

С отключенным JavaLike Calc и без QTStarter все работает

Сообщение создано: 01. 11. 2010 [18:06]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"fido_max" wrote:

1. QTStarter запускается, даже показывает заставку, но потом происходит:
Object::connect: No such signal QTabWidget::currentChanged(QWidget*)

Object::connect: No such signal QAction::activated()

./openscada: symbol lookup error: ../../lib/openscada/ui_QTCfg.so: undefined symbol: _ZN10QByteArray11rpl_reallocEi
и segfault

Криво собрано, раз символов функций QT не находит.
С сигналами тоже странно, потому как везде они есть.

"fido_max" wrote:

2. что используется для работы JavaLike Calc? чем он компилирует?
у меня появилось сообщение:
4|/DemoStation/sub_DAQ/mod_JavaLikeCalc/ | Компиляция на языке программирования не поддерживается.
что еще нужно установить?

Сам и компилирует. Судя по сообщению ему язык левый подсунули.

"fido_max" wrote:

С отключенным JavaLike Calc и без QTStarter все работает

Хорошо.
Только, что Вы ещё от него хотите? Ведь про поддержку ARM нигде не написано!
Даже я его на ARM ещё не запускал!

Learn, learn and learn better than work, work and work.
Сообщение создано: 01. 11. 2010 [20:52]
fido_max
Maxim Kochetkov
Contributor
Создатель темы
Зарегистрирован(а) с: 28.10.2010
Сообщения: 129
"roman" wrote:

"fido_max" wrote:

2. что используется для работы JavaLike Calc? чем он компилирует?
у меня появилось сообщение:
4|/DemoStation/sub_DAQ/mod_JavaLikeCalc/ | Компиляция на языке программирования не поддерживается.
что еще нужно установить?

Сам и компилирует. Судя по сообщению ему язык левый подсунули.


Там остатки Demo проекта. Который на х86 запускается без всяких сообщений. Судя по всему в JavaLike есть проблема под армом. С этим модулем у меня так и не получилось запустить скаду. Хотя без него даже демо проект запустился. (без QT) даже веб интерфейс прорисовался.

"roman" wrote:

"fido_max" wrote:

С отключенным JavaLike Calc и без QTStarter все работает

Хорошо.
Только, что Вы ещё от него хотите? Ведь про поддержку ARM нигде не написано!
Даже я его на ARM ещё не запускал!


Хочу. Чтоб работало. Мне еще на нем контроллер делать :-) И SocketCAN прикручивать. и вообще.
Сообщение создано: 01. 11. 2010 [21:02]
fido_max
Maxim Kochetkov
Contributor
Создатель темы
Зарегистрирован(а) с: 28.10.2010
Сообщения: 129
"roman" wrote:

"fido_max" wrote:

1. QTStarter запускается, даже показывает заставку, но потом происходит:
Object::connect: No such signal QTabWidget::currentChanged(QWidget*)

Object::connect: No such signal QAction::activated()

./openscada: symbol lookup error: ../../lib/openscada/ui_QTCfg.so: undefined symbol: _ZN10QByteArray11rpl_reallocEi
и segfault

Криво собрано, раз символов функций QT не находит.
С сигналами тоже странно, потому как везде они есть.


А как QTStarter тогда мне сплешскрин показал?... В QTСonfig ксатит мелкий баг нашел. если двигать разделитель между панельками, то правое дерево двигается только до определенного момента, а дальше только полоска снизу под ним двигается. Веб кит и поддержку JavaScript из QT не нужно ему случаем? Есть еще мысль одна: путь к либам QT возможно не прописан в окружении - это я завтра попробую.
Сообщение создано: 02. 11. 2010 [07:40]
fido_max
Maxim Kochetkov
Contributor
Создатель темы
Зарегистрирован(а) с: 28.10.2010
Сообщения: 129
сейчас свежим взглядом посмотрел на ошибку еще раз:

./openscada: symbol lookup error: ../../lib/openscada/ui_QTCfg.so: undefined symbol: _ZN10QByteArray11rpl_reallocEi

смущает rpl_realloc при компиляции он мне ругался на него уже. я тогда из config.h выкинул дефайн rpl_malloc
Сообщение создано: 02. 11. 2010 [09:11]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"fido_max" wrote:

Хочу. Чтоб работало. Мне еще на нем контроллер делать :-) И SocketCAN прикручивать. и вообще.

Хотеть мало, нужно для этого ещё что-то делать. Т.е. Вы готовы глубоко разбираться в проблемах выполнения на АРМ и исправлять их?

Learn, learn and learn better than work, work and work.



14695