LINUX.ORG.RU

Cross Compile Qt5 for ARM

 , , ,


0

2

Вечер добрый, объясните дураку, как установить Qt5 на cubieboard2?

Пару месяцев назад установил Qt5 на raspberry pi без особых проблем, да еще и добавил устройство / компиляторы в Qt Creator. И было очень удобно, на малинку поставил NFS сервер, на PC монтировал rootfs малинки и свеже-скомпилированная программа заливалась на rpi.

Делал все для малинки по след. мануалу: http://www.ics.com/blog/building-qt-and-qtwayland-raspberry-pi

Начал все делать точно также и на cubieboard2: Установил необходимые пакеты, настроил NFS сервер, скачал gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_linux

Применил скрипт cross-compile-tools/fixQualifiedLibraryPaths

Сконфигурировал исходники Qt5

cd qt-everywhere-opensource-src-5.1.1
./configure -opengl es2 -device linux-cubieboard2-g++ -device-option CROSS_COMPILE=gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_linux/bin/arm-linux-gnueabihf- -sysroot /mnt/cub-rootfs -opensource -confirm-license -optimized-qmake -release -make libs -prefix /opt/qt5-cub -no-pch -nomake examples -nomake tests -no-xcb -eglfs -v

После чего запустил make -j4 install Компиляция и установка должна протекать минут ~40 (i7/6Gb)

Но после 15 минут сборки, вылетает с ошибкой, связанной (как я понял) с драйверами qtsqlite - именно тут вылетает ошибка.

Собственно вопрос: можно ли исключить из компиляции этот несчастный драйвер, и включить вместо него MySQL драйвер?

М.б. я что то делаю не так? Как вообще все это можно собрать и установить, как я это делал на малинке?

бро, а прочитать выхлоп ./configure --help?

-no-sql-<driver> Disable SQL <driver> entirely, by default none are turned on.

Stil ★★★★★
()
Ответ на: комментарий от Adonai

qt-everywhere-opensource-src-5.1.1.tar.gz

log сейчас скинуть не могу, завтра на работе запущу еще раз компиляцию, и предоставлю логи.

jeka_sharapov
() автор топика
Ответ на: комментарий от Adonai

Пробывал изначально на 5.2.1 ошибка была именно с sqlite, затем попробывал 5.1.1 - ролучил ошибку на том же месте.

Все поиски в гугл ведут на след. топик:

Ok, so based on the previous steps:

cubieboard 2 (A20)
I'm running Linaro rootfs 12.11 from my previous post in this thread
ssvb's patched kernel for mali libs r3p2-01rel2
installed mali libs r3p2-01rel2 (Framebuffer)

Create an SD card image using dd on the cross compile host (I'm using Linux Mint) - check the paths!
dd bs=1M if=/dev/mmcblk0 of=/opt/qt5.cubieboard2A20.workbench/linaro.1211.ssvb.malifb.Qt511.QtWebkit.img;sync
Adapt the Raspberry Pi's Cross Compile Guide:
http://qt-project.org/wiki/RaspberryPi_Beginners_guide
I used gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_linux
I used qt-everywhere-opensource-src-5.1.1
git clone git://gitorious.org/cross-compile-tools/cross-compile-tools.git
consider installing 32bit support if you're on a 64bit OS: sudo apt-get install ia32-libs
Uncompress the Qt5 archive as root and copy over a couple of files
cp -R qeglfshooks_stub.cpp ./qt-everywhere-opensource-src-5.1.1/qtbase/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
cp -R linux-cubieboard2-g++ ./qt-everywhere-opensource-src-5.1.1/qtbase/mkspecs/devices/

mount -o loop,offset=68157440 /opt/qt5.cubieboard2A20.workbench/linaro.1211.ssvb.malifb.Qt511.QtWebkit.img /opt/qt5.cubieboard2A20.workbench/cubie2-rootfs/
Get ready to compile Qt5 (adapt the configure line paths to your own)
cd qt-everywhere-opensource-src-5.1.1
./configure -opengl es2 -device linux-cubieboard2-g++ -device-option CROSS_COMPILE=/opt/sdcard.cubieboard.workbench/gcc-linaro-arm-linux-gnueabihf-4.8-2013.09_linux/bin/arm-linux-gnueabihf- -sysroot /opt/qt5.cubieboard2A20.workbench/cubie2-rootfs -opensource -confirm-license -optimized-qmake -release -make libs -prefix /usr/local/qt5cb2 -no-pch -nomake examples -nomake tests -no-xcb -eglfs -v
Check the config.summary file, mine is below:

cat qt-everywhere-opensource-src-5.1.1/qtbase/config.summary 

   Configure summary

Building on:   linux-g++ (x86_64, CPU features: mmx sse sse2)
Building for:  devices/linux-cubieboard2-g++ (arm, CPU features: neon)
Platform notes:

            - Also available for Linux: linux-kcc linux-icc linux-cxx
        
qmake vars .......... styles += mac fusion windows QMAKE_CFLAGS_FONTCONFIG = -I/opt/qt5.cubieboard2A20.workbench/cubie2-rootfs/usr/include/freetype2   QMAKE_LIBS_FONTCONFIG = -L/opt/qt5.cubieboard2A20.workbench/cubie2-rootfs/usr/lib/arm-linux-gnueabihf -lfontconfig -lfreetype   DEFINES += QT_NO_LIBUDEV DEFINES += QT_NO_XCB DEFINES += QT_NO_XKBCOMMON PRECOMPILED_DIR = .pch/release-shared OBJECTS_DIR = .obj/release-shared MOC_DIR = .moc/release-shared RCC_DIR = .rcc/release-shared UI_DIR = .uic/release-shared sql-drivers =  sql-plugins =  sqlite qmake switches ......... 


make -j 5 && make install
my cross host took less than 1h to build everything successully, at this point, QtWebkit as well
unmount cubie2-rootfs
get an SD Card - either the original one used previously or another one with the same size and burn the image to it - check the device paths!
dd bs=1M if=/opt/qt5.cubieboard2A20.workbench/linaro.1211.ssvb.malifb.Qt511.QtWebkit.img of=/dev/mmcblk0;sync
plug the card on cubie and let it run, make sure everything's ok with booting, networking, etc

If all goes well, the cross-compile binary and qml files will be loaded to Cubie and executed. If upload fails with permissions, just grant permissions on /opt/ on the running cubie

Но я не хочу использовать inaro.1211.ssvb.malifb.Qt511.QtWebkit.img

Там какие-то страшные глюки и система в полурабочем состоянии.

p.s Собирал все это дело на PC Ubuntu 13.10 x64 с установленным пакетом ia32-lib, м.б. в этом проблема?

jeka_sharapov
() автор топика

Вообще по умолчанию драйверы sql не должны компилиться, вроде как...

Чтобы включить поддержку MySql можешь явно указать:

./configure -qt-sql-mysql --тут_еще_опции

А вообще, осиль configure --help, как уже советовали.

solovey ★★
()
25 ноября 2014 г.
Ответ на: комментарий от lazyklimm

дык и стоит демьян,а там только 4.8 а надо 5.2 - 5.3

tux-eda
()

debian 7? так в бэкпортах же есть...

apt-cache search qt5
libmgl-qt5 - library for scientific graphs. (Qt runtime library)
libqt5concurrent5 - Qt 5 concurrent module
libqt5core5a - Qt 5 core module
libqt5dbus5 - Qt 5 D-Bus module
libqt5gui5 - Qt 5 GUI module
libqt5network5 - Qt 5 network module
libqt5opengl5 - Qt 5 OpenGL module
libqt5opengl5-dev - Qt 5 OpenGL library development files
libqt5printsupport5 - Qt 5 print support module
libqt5sql5 - Qt 5 SQL module
libqt5sql5-mysql - Qt 5 MySQL database driver
libqt5sql5-odbc - Qt 5 ODBC database driver
libqt5sql5-psql - Qt 5 PostgreSQL database driver
libqt5sql5-sqlite - Qt 5 SQLite 3 database driver
libqt5sql5-tds - Qt 5 FreeTDS database driver
libqt5test5 - Qt 5 test module
libqt5widgets5 - Qt 5 widgets module
libqt5xml5 - Qt 5 XML module
qt5-default - Qt 5 development defaults package
qt5-qmake - Qt 5 qmake Makefile generator tool
qtchooser - Wrapper to select between Qt development binary versions
libqt5bluetooth5 - Qt Connectivity Bluetooth module
libqt5nfc5 - Qt Connectivity NFC module
libqt5qml5 - Qt 5 QML module
libqt5quick5 - Qt 5 Quick library
libqt5quickparticles5 - Qt 5 Quick particules module
libqt5quicktest5 - Qt 5 Quick Test library
libqt5quickwidgets5 - Qt 5 Quick Widgets library
qt5-doc - Qt 5 API Documentation
qt5-doc-html - Qt 5 API documentation (HTML format)
qt5-image-formats-plugins - Qt 5 Image Formats module
libqt5positioning5 - Qt Positioning module
libqt5positioning5-plugins - Qt Positioning module - position plugins
libqt5multimedia5 - Qt 5 Multimedia module
libqt5multimedia5-plugins - Qt 5 Multimedia module plugins
libqt5multimediaquick-p5 - Qt 5 Multimedia Quick module
libqt5multimediawidgets5 - Qt 5 Multimedia Widgets module
qtmultimedia5-examples - Examples for Qt 5 Multimedia module
libqt5declarative5 - Qt Quick 1 module for Qt 5
libqt5script5 - Qt 5 script module
libqt5scripttools5 - Qt 5 script tools module
libqt5sensors5 - Qt Sensors module
libqt5sensors5-dev - Qt 5 Sensors development files
libqt5serialport5 - Qt 5 serial port support
libqt5serialport5-dev - Qt 5 serial port development files
libqt5svg5 - Qt 5 SVG module
libqt5svg5-dev - Qt 5 SVG module development files
libqt5svg5-private-dev - Qt 5 SVG module private development files
libqt5clucene5 - Qt 5 CLucene module
libqt5designer5 - Qt 5 designer module
libqt5designercomponents5 - Qt 5 Designer components module
libqt5help5 - Qt 5 help module
qdbus-qt5 - Qt 5 D-Bus tool
libqt5webkit5 - Web content engine library for Qt
libqt5webkit5-dev - Web content engine library for Qt - development files
libqt5websockets5 - Qt 5 Web Sockets module
libqt5websockets5-dev - Qt 5 Web Sockets module - development files
libqt5x11extras5 - Qt 5 X11 extras
libqt5x11extras5-dev - Qt 5 X11 extras development files
libqt5xmlpatterns5 - Qt 5 XML patterns module
libqt5xmlpatterns5-dev - Qt 5 XML patterns development files
libqt5xmlpatterns5-private-dev - Qt 5 XML patterns private development files
apt-cache policy libqt5core5a
libqt5core5a:
  Установлен: (отсутствует)
  Кандидат:   5.3.2+dfsg-3~bpo70+1
  Таблица версий:
     5.3.2+dfsg-3~bpo70+1 0
        100 http://192.168.0.101/wheezy-backports/ wheezy-backports/main armhf Packages
lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 7.7 (wheezy)
Release:	7.7
Codename:	wheezy
cat /proc/cpuinfo
Processor	: ARMv7 Processor rev 2 (v7l)
BogoMIPS	: 1049.59
Features	: swp half thumb fastmult vfp edsp neon vfpv3 tls 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x3
CPU part	: 0xc08
CPU revision	: 2
Hardware	: sun4i
Revision	: 0000
odii
()
Ответ на: комментарий от odii

тока у меня оно не ставится - конфликтует с проприетарным драйвером mali :(

odii
()
Ответ на: комментарий от odii

ага, я поставил лишь библиотеки для запуска, а компиляю на desktop

tux-eda
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.