From a60d0bc6995994ea72a968ea7d933690bda51589 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Fri, 20 May 2016 14:11:17 +0200 Subject: doc: Add emulator build instructions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTAUTO-141 Task-number: QTAUTO-142 Change-Id: I14fb793f937702dfcb564555334c8ce5726a4f24 Reviewed-by: Topi Reiniƶ --- src/doc/src/qtee-build-emulator.qdoc | 207 +++++++++++++++++++++++++++++++++++ src/doc/src/qtee-changelog.qdoc | 2 +- src/doc/src/qtee-index.qdoc | 1 + src/doc/src/qtee-static-linking.qdoc | 2 +- 4 files changed, 210 insertions(+), 2 deletions(-) create mode 100644 src/doc/src/qtee-build-emulator.qdoc (limited to 'src/doc') diff --git a/src/doc/src/qtee-build-emulator.qdoc b/src/doc/src/qtee-build-emulator.qdoc new file mode 100644 index 0000000..f87354d --- /dev/null +++ b/src/doc/src/qtee-build-emulator.qdoc @@ -0,0 +1,207 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** All rights reserved. +** For any questions to The Qt Company, please use the contact form at +** http://www.qt.io/contact-us +** +** This file is part of Qt for Device Creation. +** +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +****************************************************************************/ + +/*! + \page qtee-build-emulator.html + \title Building the Emulator from Sources + \previouspage qtee-static-linking.html + \nextpage qtee-changelog.html + + To build the emulator from source, you need to build the emulator host part + and an emulator device image for a VirtualBox virtual machine. + + \section1 Building Emulator Host Part from Sources + + To build the emulator host part from sources: + + \list 1 + \li Create a directory for the emulator parts: + + \badcode + mkdir emulator + cd emulator + \endcode + + \li Clone the emulator repositories: + + \badcode + git clone ssh://codereview.qt-project.org/tqtc-boot2qt/emulator-scripts.git scripts + git clone ssh://codereview.qt-project.org/tqtc-boot2qt/emulator emulator + cd emulator + git submodule update --init + cd .. + \endcode + + \li Create a build directory for a shadow build: + + \badcode + mkdir build + cd build + \endcode + + \li Build the QtSystems module: + + \badcode + mkdir qtsystems + pushd qtsystems + qmake "${EMULATOR_SOURCE_DIR}"/src/qtsystems + make + make install + popd + \endcode + + \li Build the QtSimulator module: + + \badcode + mkdir simulator + pushd simulator + qmake "${EMULATOR_SOURCE_DIR}"/src/qtsimulator + make + make install + popd + \endcode + + \li Build the QtGlesStream component: + + \badcode + mkdir qtglesstream + pushd qtglesstream + qmake "${EMULATOR_SOURCE_DIR}"/src/qtglesstream + make + make install + popd + \endcode + + \li Build the emulator: + + \badcode + mkdir emulator + pushd emulator + EMULATOR_INSTALL_DIR=../install/ + qmake "${EMULATOR_SOURCE_DIR}" PREFIX="${EMULATOR_INSTALL_DIR}" + make + make install + popd + \endcode + + \endlist + + \section1 Building Emulator Device Image for VirtualBox VM + + To build the emulator device image for a VirtualBox VM: + + \list 1 + \li Make sure that your Qt library is built with GLES support and + defaults to eglfs. + \li Make sure that the virtual machine is reachable with the IP address + \c 192.168.56.101. + \li Create a shared folder on the virtual machine and mount it to + \c /var/vqvideo by using the \c vboxsf kernel module and a mount + tool for the folder. You can get these from the VirtualBox addons + provided by Oracle or compile them yourself from the VirtualBox + sources. + + \badcode + mkdir -p /var/vqvideo + mount.vboxsf vqvideo /var/vqvideo + \endcode + + \li Set up \c appcontroller, as instructed in + \l{Setting Up appcontroller}. + \li Build the \c emulatorproxy daemon that is located in the emulator + sources in the \c src/helperlibs/proxy directory: + + \badcode + cd "${EMULATOR_SOURCE_DIR}"/src/helperlibs/proxy + sdk-qmake && make + \endcode + + \li Start the \c emulatorproxy daemon on the device to enable the + emulator to perform several tasks on the running machine. The daemon + will fork itself. + \li Clone the QtSimulator module from + \c ssh://codereview.qt-project.org/tqtc-boot2qt/qtsimulator, and + then build and deploy it on the device as any Qt module: + + \badcode + git clone ssh://codereview.qt-project.org:29418/tqtc-boot2qt/qtsimulator + cd qtsimulator + sdk-qmake && make && make install + \endcode + + \li Clone the QtGlesStream module from + \c ssh://codereview.qt-project.org/qt/tqtc-qtglesstream, and then + build and deploy it on the device: + + \badcode + git clone ssh://codereview.qt-project.org:29418/qt/tqtc-qtglesstream + tqtc-qtglesstream + sdk-qmake && make && make install + \endcode + + \li To enable handling touch and keyboard input, build the emulator + specific input plugin from the emulator sources in the + \c src/helperlibs/vinput directory using qmake and deploy it to the + Qt input plugin folder on the device: + + \badcode + cd "${EMULATOR_SOURCE_DIR}"/src/helperlibs/vinput + sdk-qmake && make && make install + \endcode + + \endlist + + \section2 Setting Up appcontroller + + To set up \c appcontroller: + + \list 1 + \li Clone the \c appcontroller sources from + \c git://codereview.qt-project.org/tqtc-boot2qt/appcontroller. + \li Build \c appcontroller using qmake and make. + \li Set \c appcontroller in the PATH. + \li Create a configuration file for \c appcontroller to configure device + specific variables for your application. + \endlist + + An example \c /etc/appcontroller.conf configuration file looks like this: + + \badcode + env=QT_QPA_GENERIC_PLUGINS=simulator + env=QT_QPA_EGLFS_HIDECURSOR=1 + env=QML2_IMPORT_PATH=/data/user/qt/qmlplugins + env=QT_IM_MODULE=qtvirtualkeyboard + env=QTGLESSTREAM_DISPLAY=192.168.56.1 + env=QT_QUICK_CONTROLS_STYLE=Flat + base=linux + platform=emulator + \endcode + + \table + \row + \li \c base + \li Has to be \c linux + \row + \li \c platform + \li Has to be \c emulator + \row + \li \c env + \li All these variables will be added to the environment before + starting the application. + \endtable +*/ diff --git a/src/doc/src/qtee-changelog.qdoc b/src/doc/src/qtee-changelog.qdoc index 5e96d45..549fa3b 100644 --- a/src/doc/src/qtee-changelog.qdoc +++ b/src/doc/src/qtee-changelog.qdoc @@ -20,7 +20,7 @@ /*! \page qtee-changelog.html \title ChangeLog - \previouspage qtee-customization.html + \previouspage qtee-build-emulator.html \nextpage qtee-troubleshooting.html \section1 Boot to Qt 5.6.0 diff --git a/src/doc/src/qtee-index.qdoc b/src/doc/src/qtee-index.qdoc index 02403f1..79b622a 100644 --- a/src/doc/src/qtee-index.qdoc +++ b/src/doc/src/qtee-index.qdoc @@ -63,6 +63,7 @@ \list \li \l{Linking to Static Builds of Qt} \endlist + \li \l{Building the Emulator from Sources} \li \l{ChangeLog} \li \l{Troubleshooting} \li \l{Known Issues} diff --git a/src/doc/src/qtee-static-linking.qdoc b/src/doc/src/qtee-static-linking.qdoc index 4014dbc..4357784 100644 --- a/src/doc/src/qtee-static-linking.qdoc +++ b/src/doc/src/qtee-static-linking.qdoc @@ -20,7 +20,7 @@ \page qtee-static-linking.html \title Linking to Static Builds of Qt \previouspage qtee-custom-embedded-linux-image.html - \nextpage qtee-changelog.html + \nextpage qtee-build-emulator.html The device-specific sysroots in \B2Q come with a dynamically linked version of Qt libraries (\c *.so files). In some cases, using static linking may be -- cgit v1.2.3