Содержание

Компиляция Qt с поддержкой SGX на AM335x

Все действия выполнялись на Ubuntu 12.04.4 LTS

Компилятор

Вы можете использовать следующие компиляторы:

Данные инструкции были выполнены с компилятором Linaro 4.7.3 hardfp toolchain

wget https://releases.linaro.org/13.04/components/toolchain/binaries/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.xz
tar xf gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux.tar.xz

Зависимости

SGX библиотека

Обязательно выполните действия, описанные на этой странице: usomiq-sgx

tslib

Если вам нужна поддержка tslib (touchscreen, сенсорные экраны) в приложениях, то сначала выполните действия, описанные на этой странице: tslib-arm

Исходники

Скачайте исходные тексты библиотеки Qt 4.8.6

wget http://download.qt-project.org/official_releases/qt/4.8/4.8.6/qt-everywhere-opensource-src-4.8.6.tar.gz

Распакуйте их:

tar xf qt-everywhere-opensource-src-4.8.6.tar.gz

Теперь надо применить исправления, чтобы компиляция была без ошибок:

cd qt-everywhere-opensource-src-4.8.6
wget http://mentorel.ru/downloads/qt/qt-4.8.6_1.patch
wget http://mentorel.ru/downloads/qt/qt-4.8.6_2.patch
wget http://mentorel.ru/downloads/qt/qt-4.8.6_3.patch
patch -p1 < qt-4.8.6_1.patch
patch -p1 < qt-4.8.6_2.patch
patch -p1 < qt-4.8.6_3.patch

Компиляция

Для кросс-компиляции с поддержкой SGX необходимо добавить соответствующую конфигурацию

wget http://mentorel.ru/downloads/qt/linux-TIarmv7-sgx-g++.tgz

Распакуем конфигурацию

cd mkspecs/qws/
tar xf linux-TIarmv7-sgx-g++.tgz

Теперь необходимо внести исправления в файл конфигурации, чтобы файл соответствовал локальным путям на вашем компьютере. Откройте файл 'linux-TIarmv7-sgx-g++/qmake.conf' и правильно настройте следующие переменные (остальную часть файла менять не требуется)

#User specific Path - To Be edited by User
QT_INSTALL_DIR          = $$PWD/../../../
SGX_SDK_ROOT            = /home/maxx/Graphics_SDK_4_10_00_01/
TSLIB_INCDIR            = /media/vmdisk/Projects/qt_sgx/tslib/build/include
TSLIB_LIBDIR            = /media/vmdisk/Projects/qt_sgx/tslib/build/lib
CC_TOOLCHAIN            = /opt/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/bin

Теперь настроим конфигурацию перед компиляцией:

./configure -prefix /opt/qt4.8.6 -embedded arm -platform qws/linux-x86-g++ \
 -xplatform qws/linux-TIarmv7-sgx-g++ -depths 16,24,32 -no-mmx -no-3dnow -no-sse \
-no-sse2 -no-glib -no-cups -no-largefile -no-accessibility -no-openssl \
-no-gtkstyle -qt-mouse-pc -qt-mouse-linuxtp -qt-mouse-linuxinput -plugin-mouse-linuxtp \
-plugin-mouse-pc -fast -opengl es2 -qt-gfx-transformed -qt-gfx-vnc -qt-gfx-linuxfb \
-qt-gfx-multiscreen -qt-mouse-tslib -plugin-gfx-powervr -D QT_NO_QWS_CURSOR \
-D QT_QWS_CLIENTBLIT -opensource -confirm-license -no-pch -no-sql-ibase \
-no-sql-mysql -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 \
-no-webkit -no-qt3support

Установка

Установка библиотек, утилит и всего, что было собрано в ходе компиляции будет выполнена по пути, указанного в ./configure … -prefix /opt/qt4.8.6 … То есть, в данном примере установка будет в директорию «/opt/qt4.8.6».

Для установки в директорию '/opt' выполните команду

sudo make install

Если вы хотите выполнить установку в домашнюю директорию, то права суперпользователя не потребуются и поэтому достаточно выполнить команду

make install

Проверка

Для включения поддержки OpenGLES ускорения для Qt приложений выполните следующий код на подмонтированной файловой системе, в которой будет Qt приложение:

# cat >> /etc/powervr.ini << _EOF

[hellogl_es2]
WindowSystem=libpvrQWSWSEGL.so.1

[animatedtiles]
WindowSystem=libpvrQWSWSEGL.so.1
_EOF