ЗАО «ЗЭО»

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

Автор Тема: Запуск Qt приложения на Tion pro 28  (Прочитано 3191 раз)

0 Пользователей и 1 Гость просматривают эту тему.

via-fati

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 26
Запуск Qt приложения на Tion pro 28
« : 08 Августа, 2016, 09:43:56 »

Доброго времени суток! Прошу помощи в запуске Qt приложения для тиона 28.

К сожалению не смог найти документации в ваших источниках по настройке и запуске Qt на тионе.
Почитал форумы, попытался что-то собрать, но при сборке Qt из исходников в середине компиляции ругался на отсутствие lgstreamer-0.10 библиотеки. Их прикрутить не удалось.

Попытался скомпилить с помощью qmake -spec arm-linux-g++, но во время компиляции появилась ошибка:
/usr/include/qt4/QtCore/qatomic_i386.h In destructor 'Qstring::QString()':
/usr/include/qt4/QtCore/qatomic_i386.h:132: error: impossible constraint in 'asm'

я предполагаю это вызвано с тем, что Qt библиотеки собраны не под arm компиляцию.

Помогите настроить окружение для успешного запуска Qt приложений для Тиона.

P.S. данная ошибка связана с графикой на Qt. Обычные приложения с помощью команды qmake -spec arm-linux-g++ собирались успешно и запускались на одноплатном компьютере.
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: Запуск Qt приложения на Tion pro 28
« Ответ #1 : 08 Августа, 2016, 15:03:05 »

Записан

via-fati

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 26
Re: Запуск Qt приложения на Tion pro 28
« Ответ #2 : 08 Августа, 2016, 17:00:40 »

Добрый день.
Посмотрите эти темы:
http://www.zao-zeo.ru/forum/index.php?topic=752.0
http://www.zao-zeo.ru/forum/index.php?topic=826.0

Спасибо за ссылки!

Собрал qt, скомпилил приложение( ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.14, not stripped
) и попытался запустить:
Segmentation fault
в чем может быть проблема?

strace:
rt_sigaction(SIGABRT, {0x4017f688, [ABRT], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGFPE, {0x4017f688, [FPE], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGSEGV, {0x4017f688, [SEGV], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTERM, {0x4017f688, [TERM], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGBUS, {0x4017f688, [BUS], SA_RESTART|0x4000000}, {SIG_DFL}, 8) = 0
stat64("/root/Settings/Trolltech.conf", 0x19f10) = -1 ENOENT (No such file or directory)
lstat64("/root/Settings/Trolltech.conf", 0xbee80238) = -1 ENOENT (No such file or directory)
stat64("/root/Settings/Trolltech.conf", 0xbee80140) = -1 ENOENT (No such file or directory)
stat64("/root/Settings/Trolltech.conf", 0x19f10) = -1 ENOENT (No such file or directory)
stat64("/etc/xdg/Trolltech.conf", 0xbee80140) = -1 ENOENT (No such file or directory)
stat64("/etc/xdg/Trolltech.conf", 0x19f10) = -1 ENOENT (No such file or directory)
stat64("/home/dee/gfxdrivers/.", 0x1a178) = -1 ENOENT (No such file or directory)
lstat64("/home/dee/gfxdrivers/.", 0xbee802e8) = -1 ENOENT (No such file or directory)
access("/dev/fb0", R_OK|W_OK)           = 0
open("/dev/fb0", O_RDWR|O_LARGEFILE|0x80000) = 8
fcntl64(8, F_SETFD, FD_CLOEXEC)         = 0
ioctl(8, FBIOGET_FSCREENINFO, 0xbee8058c) = 0
ioctl(8, FBIOGET_VSCREENINFO, 0xbee804ec) = 0
mmap2(NULL, 614400, PROT_READ|PROT_WRITE, MAP_SHARED, 8, 0) = 0x410ad000
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
rt_sigaction(SIGSEGV, {SIG_DFL}, {0x4017f688, [SEGV], SA_RESTART|0x4000000}, 8) = 0
socket_subcall(0x18000, 0, 0x100, 0, 0, 0x19668, 0xb, 0x12c) = 0
statfs64(umovestr: Input/output error
0x57e, 1406, {???})            = 0
sigreturn()                             = ? (mask now [HUP])
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 1406 detached
« Последнее редактирование: 08 Августа, 2016, 17:02:20 от via-fati »
Записан

Ziminets

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 64
Re: Запуск Qt приложения на Tion pro 28
« Ответ #3 : 09 Августа, 2016, 15:09:21 »

Приложение запускали с ключем -qws ?
Записан

via-fati

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 26
Re: Запуск Qt приложения на Tion pro 28
« Ответ #4 : 09 Августа, 2016, 15:53:38 »

Да, без ключа ругается на отсутствие сервера.
Записан

via-fati

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 26
Re: Запуск Qt приложения на Tion pro 28
« Ответ #5 : 15 Августа, 2016, 12:55:09 »

Проблема была в неправильно скопированных библиотеках.

Если кому интересно:
Пользовался общими инструкциями по установке QT на Arm
Например
и некоторые с форума

Что я сделал:

1) Собрал из исходников tslib-1.0
2) Согласно инструкции Ziminets из архива  Qt_Install.zip (Кликни на меня) попытался собрать QT 4.6.0. для arm
Примечание: если будет ругаться "tslib ошибка укажите QMAKE_LIBDIR и QMAKE_INCDIR в mkspec/..."
Тогда в файле qmake.conf для этой спецификации(которую указываем при конфигурировании) добавить нечто такое в конец строки linux.conf:

# modifications to linux.conf
.....
QMAKE_INCDIR += /home/ubuntu/tslib/include/ # путь к кросс-компилированной include директории tslib, получившейся на 1 этапе
QMAKE_LIBDIR            += /home/ubuntu/tslib/lib/ # Аналогично для lib директории

собралось с подобной конфигурацией:
./configure -qconfig pmu -embedded arm -xplatform qws/linux-mxc-g++ -release -opensource -nomake demos -nomake examples -nomake docs -prefix /usr/local/Trolltech/QtEmbedded-4.6.0 -qt-gfx-linuxfb -qt-kbd-tty -qt-mouse-tslib -little-endian -host-little-endian -no-qt3support -no-largefile -no-gstreamer -no-multimedia -no-phonon -no-webkit -no-cups -no-dbus -no-glib -optimized-qmake -confirm-licens
3) После успешной компиляции и установки(make install) Qt скопировать кросс-компилированный tslib со всей иерархией директорий строго по тому же адресу на тион, например /home/ubuntu/tslib на хосте
/home/ubuntu/tslib на тионе. Так нужно было мне, потому что ругался на отсутствие по данному пути некоторых .conf файлов. /etc/ было недостаточно. Может у вас будет по другому.

ts.conf должен быть следующим:
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

директорию /lib/ из cross-compiled Qt перекинуть в /usr/lib/ на тионе
тоже самое с /tslib/lib директорией

задать переменные окружения:
export QT_QWS_FONTDIR=/usr/lib/fonts
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=/dev/tty
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0

запускать приложения черей -qws ключ.

Всем удачи!
« Последнее редактирование: 15 Августа, 2016, 12:58:14 от via-fati »
Записан

Danila

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 703
Re: Запуск Qt приложения на Tion pro 28
« Ответ #6 : 16 Августа, 2016, 13:15:41 »

Спасибо за подробную инструкцию.
Записан