summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/doc/config/b2qt.qdocconf30
-rw-r--r--src/doc/config/html-offline.qdocconf34
-rw-r--r--src/doc/config/template/style/offline.css667
-rw-r--r--src/doc/doc.pro3
-rw-r--r--src/doc/images/b2qt-vs-qt-for-android.pngbin0 -> 24526 bytes
-rw-r--r--src/doc/images/qtcreator-run.pngbin0 -> 619 bytes
-rw-r--r--src/doc/src/b2qt.qdoc578
-rw-r--r--src/src.pro3
8 files changed, 1314 insertions, 1 deletions
diff --git a/src/doc/config/b2qt.qdocconf b/src/doc/config/b2qt.qdocconf
new file mode 100644
index 0000000..d64e3a3
--- /dev/null
+++ b/src/doc/config/b2qt.qdocconf
@@ -0,0 +1,30 @@
+include(html-offline.qdocconf)
+
+naturallanguage = en_US
+outputencoding = UTF-8
+sourceencoding = UTF-8
+
+project = B2Qt
+description = Boot to Qt Technology Preview Documentation
+version = tp1
+
+sourcedirs = ../src
+imagedirs = ../images
+
+sources.fileextensions = "*.qdoc"
+
+qhp.projects = B2Qt
+
+qhp.B2Qt.file = b2qt.qhp
+qhp.B2Qt.namespace = com.digia.b2qt.tp1
+qhp.B2Qt.virtualFolder = b2qt
+qhp.B2Qt.indexTitle = Boot to Qt Technology Preview
+qhp.B2Qt.indexRoot =
+
+qhp.B2Qt.subprojects = manual
+qhp.B2Qt.subprojects.manual.title = Boot to Qt Introduction
+qhp.B2Qt.subprojects.manual.indexTitle = Boot to Qt Introduction
+qhp.B2Qt.subprojects.manual.type = manual
+
+macro.B2Q = "Boot to Qt"
+
diff --git a/src/doc/config/html-offline.qdocconf b/src/doc/config/html-offline.qdocconf
new file mode 100644
index 0000000..2bbce93
--- /dev/null
+++ b/src/doc/config/html-offline.qdocconf
@@ -0,0 +1,34 @@
+HTML.nobreadcrumbs = "true"
+
+HTML.stylesheets = template/style/offline.css
+
+qhp.extraFiles += style/offline.css
+
+HTML.headerstyles = \
+ " <link rel=\"stylesheet\" type=\"text/css\" href=\"style/offline.css\" />\n"
+
+HTML.endheader = \
+ "</head>\n" \
+ "<body>\n" \
+ "<div class=\"header\" id=\"qtdocheader\"></div>\n"\
+ "<div class=\"content\">\n" \
+ "<div class=\"line\">\n" \
+ "<div class=\"content mainContent\">\n" \
+
+HTML.footer = \
+ "</div>\n" \
+ "</div>\n" \
+ "</div>\n" \
+ "<div class=\"footer\">\n" \
+ " <p>\n" \
+ " <acronym title=\"Copyright\">&copy;</acronym> 2013 Digia Plc and/or its subsidiaries.</p>\n" \
+ " <p>\n" \
+ " Licensees holding valid Qt Commercial licenses may use this document in accordance\n" \
+ " with the Qt Commercial License Agreement provided with the Software or, alternatively,\n" \
+ " in accordance with the terms contained in a written agreement between you and Digia.</p>\n" \
+ " <p>\n" \
+ " Digia, Qt and their respective logos are trademarks of Digia Plc \n" \
+ " in Finland and/or other countries worldwide. All other trademarks are property\n" \
+ " of their respective owners. <a title=\"Privacy Policy\"\n" \
+ " href=\"http://en.gitorious.org/privacy_policy/\">Privacy Policy</a></p>\n" \
+ "</div>\n" \
diff --git a/src/doc/config/template/style/offline.css b/src/doc/config/template/style/offline.css
new file mode 100644
index 0000000..6753cba
--- /dev/null
+++ b/src/doc/config/template/style/offline.css
@@ -0,0 +1,667 @@
+body{
+font: normal 400 14px/1.2 Arial;
+margin-top:85px;
+font-family: Arial, Helvetica;
+color:#313131;
+text-align:justify;
+margin-left:5px;
+margin-right:5px;
+}
+
+p {
+line-height: 20px;
+}
+img{
+-moz-box-shadow: 3px 3px 3px #ccc;
+-webkit-box-shadow: 3px 3px 3px #ccc;
+box-shadow: 3px 3px 3px #ccc;
+border:#8E8D8D 2px solid;
+margin-left:0px;
+max-width: 800px;
+height: auto
+}
+
+.content{}
+
+.descr{
+margin-top:35px;
+/*max-width: 75%;*/
+margin-left:5px;
+text-align:justify;
+vertical-align:top;
+}
+
+.name{
+max-width: 75%;
+font-weight:100;
+}
+
+tt{
+text-align:left;}
+
+/*
+-----------
+links
+-----------
+*/
+
+a:link{
+color: #007330;
+text-decoration: none;
+text-align:left;
+}
+
+a:hover{
+color: #44a51c;
+text-align:left;
+}
+
+a:visited{
+color: #007330;
+text-align:left;
+}
+
+a:visited:hover{
+color: #44a51c;
+text-align:left;
+}
+
+/*
+-----------
+offline viewing: HTML links display an icon
+-----------
+*/
+a[href*="http://"], a[href*="ftp://"],a[href*="https://"]
+{
+text-decoration: none;
+background-image:url(../images/ico_out.png);
+background-repeat:no-repeat;
+background-position:left;
+padding-left:20px;
+text-align:left;
+}
+
+.flags{
+text-decoration:none;
+text-height:24px;
+}
+
+/*
+-------------------------------
+NOTE styles
+-------------------------------
+*/
+.notetitle, .tiptitle, .fastpathtitle{
+font-weight:bold;
+}
+
+.attentiontitle,.cautiontitle,.dangertitle,.importanttitle,.remembertitle,.restrictiontitle{
+font-weight:bold;
+}
+
+.note,.tip,.fastpath{
+background: #F2F2F2 url(../images/ico_note.png);
+background-repeat: no-repeat;
+background-position: top left;
+padding:5px;
+padding-left:40px;
+padding-bottom:10px;
+border:#999 1px dotted;
+color:#666666;
+margin:5px;
+}
+
+.attention,.caution,.danger,.important,.remember,.restriction{
+background: #F2F2F2 url(../images/ico_note_attention.png);
+background-repeat:no-repeat;
+background-position:top left;
+padding:5px;
+padding-left:40px;
+padding-bottom:10px;
+border:#999 1px dotted;
+color:#666666;
+margin:5px;
+}
+
+/*
+-------------------------------
+Top navigation
+-------------------------------
+*/
+
+.qtref{
+display: block;
+position: relative;
+height:15px;
+z-index: 1;
+font-size:11px;
+padding-right:10px;
+float:right;
+}
+
+.naviNextPrevious{
+clear: both;
+display: block;
+position: relative;
+text-align: right;
+top: -47px;
+float:right;
+height:20px;
+z-index:1;
+padding-right:10px;
+padding-top:2px;
+vertical-align:top;
+margin:0px;
+}
+
+
+.naviNextPrevious > a:first-child{
+background-image:url(../images/btn_prev.png);
+background-repeat:no-repeat;
+background-position:left;
+padding-left:20px;
+height:20px;
+padding-left:20px;
+}
+
+.naviNextPrevious > a:last-child{
+background-image:url(../images/btn_next.png);
+background-repeat:no-repeat;
+background-position:right;
+padding-right:20px;
+height:20px;
+margin-left:30px;
+}
+/*
+-----------
+footer and license
+-----------
+*/
+.footer{
+text-align:center
+}
+
+/* table of content
+no display
+*/
+
+/*
+-----------
+headers
+-----------
+*/
+
+
+@media screen{
+.title{
+color:#313131;
+font-size: 18px;
+font-weight: normal;
+left: 0;
+padding-bottom: 20px;
+padding-left: 10px;
+padding-top: 20px;
+position: absolute;
+right: 0;
+top: 0;
+background-color:#E6E6E6;
+border-bottom: 1px #CCC solid;
+border-top: 2px #CCC solid;
+font-weight:bold;
+margin-left:0px;
+margin-right:0px;
+}
+}
+
+h1 {
+margin: 0;
+}
+
+h2, p.h2 {
+font: 500 16px/1.2 Arial;
+font-weight:100;
+background-color:#F2F3F4;
+padding:4px;
+margin-bottom:30px;
+margin-top:30px;
+border-top:#E0E0DE 1px solid;
+border-bottom: #E0E0DE 1px solid;
+max-width: 99%;
+overflow: hidden;
+}
+
+h3{
+
+font: 500 14px/1.2 Arial;
+font-weight:100;
+text-decoration:underline;
+margin-bottom:30px;
+margin-top:30px;
+}
+
+h3.fn,span.fn{
+border-width: 1px;
+border-style: solid;
+border-color: #E6E6E6;
+-moz-border-radius: 7px 7px 7px 7px;
+-webkit-border-radius: 7px 7px 7px 7px;
+border-radius: 7px 7px 7px 7px;
+background-color: #F6F6F6;
+word-spacing: 3px;
+padding: 5px 5px;
+text-decoration:none;
+font-weight:bold;
+max-width:75%;
+font-size:14px;
+margin:0px;
+margin-top:45px;
+
+}
+
+.name{
+color:#1A1A1A;
+}
+.type{
+color:#808080;
+}
+
+
+
+@media print {
+.title {
+color:#0066CB;
+font-family:Arial, Helvetica;
+font-size: 32px;
+font-weight: normal;
+left: 0;
+position: absolute;
+right: 0;
+top: 0;
+}
+}
+
+
+/*
+-----------------
+table styles
+-----------------
+*/
+.table img {
+border:none;
+margin-left:0px;
+-moz-box-shadow:0px 0px 0px #fff;
+-webkit-box-shadow: 0px 0px 0px #fff;
+box-shadow: 0px 0px 0px #fff;
+}
+
+/* table with border alternative colors*/
+
+ table,pre{
+-moz-border-radius: 7px 7px 7px 7px;
+-webkit-border-radius: 7px 7px 7px 7px;
+ border-radius: 7px 7px 7px 7px;
+background-color: #F6F6F6;
+border: 1px solid #E6E6E6;
+border-collapse: separate;
+margin-bottom: 25px;
+margin-left: 15px;
+font-size: 12px;
+line-height: 1.2;
+}
+
+
+table th{
+text-align:left;
+padding-left:20px;
+}
+
+table td {
+padding: 3px 15px 3px 20px;
+border-bottom:#CCC dotted 1px;
+}
+table p { margin:0px;}
+
+table tr.even {
+background-color: white;
+color: #66666E;
+}
+
+table tr.odd {
+background-color: #F6F6F6;
+color: #66666E;
+}
+
+
+table thead {
+text-align:left;
+padding-left:20px;
+background-color:#e1e0e0;
+border-left:none;
+border-right:none;
+}
+
+table thead th {
+padding-top:5px;
+padding-left:10px;
+padding-bottom:5px;
+border-bottom: 2px solid #D1D1D1;
+padding-right:10px;
+}
+
+
+/* table bodless & white*/
+
+.borderless {
+border-radius: 0px 0px 0px 0px;
+background-color: #fff;
+border: 1px solid #fff;
+}
+
+.borderless tr {
+background-color: #FFF;
+color: #66666E;
+}
+
+.borderless td {
+border:none;
+border-bottom:#fff dotted 1px;
+}
+
+/*
+-----------
+List
+-----------
+*/
+
+ul{
+padding-bottom:2px;
+}
+
+li {
+margin-bottom: 10px;
+padding-left: 8px;
+list-style:outside;
+list-style-type:square;
+text-align:left;
+}
+
+
+ol{
+margin:10px;
+padding:0;
+}
+
+ol > li{
+margin-left: 30px;
+padding-left:8px;
+list-style:decimal;
+}
+
+.centerAlign{
+text-align: left;
+}
+
+.cpp{
+display: block;
+margin: 10px;
+overflow: auto;
+padding: 20px 20px 20px 20px;
+}
+
+.js{
+display: block;
+margin: 10px;
+overflow: auto;
+padding: 20px 20px 20px 20px;
+}
+
+.footer{
+margin-top: 50px;
+padding-left:5px;
+margin-bottom: 10px;
+font-size:10px;
+border-top: 1px solid #999;
+padding-top:11px;
+}
+
+.footerNavi{
+width:auto;
+text-align:right;
+margin-top:50px;
+z-index:1;
+}
+
+.memItemLeft{
+padding-right: 3px;
+}
+
+.memItemRight{
+padding: 3px 15px 3px 0;
+}
+
+.qml{
+display: block;
+margin: 10;
+overflow: auto;
+padding: 20px 20px 20px 20px;
+}
+
+.qmldefault{
+padding-left: 5px;
+float: right;
+color: red;
+}
+
+.qmlreadonly{
+padding-left: 5px;
+float: right;
+color: #254117;
+}
+
+.rightAlign{
+padding: 3px 5px 3px 10px;
+text-align: right;
+}
+
+.qmldoc {
+margin-left: 15px;
+}
+/*
+-----------
+Content table
+-----------
+*/
+
+@media print{
+.toc {
+float: right;
+clear: right;
+padding-bottom: 10px;
+padding-top: 50px;
+width: 100%;
+background-image:url(../images/bgrContent.png);
+background-position:top;
+background-repeat:no-repeat;
+}
+}
+
+@media screen{
+.toc{
+float:right;
+clear: right;
+vertical-align:top;
+-moz-border-radius: 7px 7px 7px 7px;
+-webkit-border-radius: 7px 7px 7px 7px;
+border-radius: 7px 7px 7px 7px;
+ background:#FFF url(../images/bgrContent.png);
+background-position:top;
+background-repeat:repeat-x;
+border: 1px solid #E6E6E6;
+padding-left:5px;
+padding-bottom:10px;
+height: auto;
+width: 200px;
+text-align:left;
+margin-left:20px;
+}
+}
+
+.toc h3{
+text-decoration:none;
+}
+
+.toc h3{font: 500 14px/1.2 Arial;
+font-weight:100;
+padding:0px;
+margin:0px;
+padding-top:5px;
+padding-left:5px;
+}
+
+
+.toc ul{
+padding-left:10px;
+padding-right:5px;
+}
+
+.toc ul li{
+margin-left:15px;
+list-style-image:url(../images/bullet_dn.png);
+marker-offset: 0px;
+margin-bottom:8px;
+padding-left:0px;
+}
+
+.toc .level1{
+border:none;}
+
+.toc .level2{
+border:none;
+margin-left: 25px;
+}
+
+.level3{
+border:none;
+margin-left: 30px;
+}
+
+.clearfix{
+clear:both;}
+
+/* start index box */
+.indexbox
+{
+width: 100%;
+display:inline-block;
+}
+
+.indexboxcont
+{
+display: block;
+
+}
+
+.indexboxcont .section
+{
+display: inline-block;
+width: 49%;
+*width:42%;
+_width:42%;
+padding:0 2% 0 1%;
+vertical-align:top;
+}
+
+.indexboxcont .indexIcon
+{
+width: 11%;
+*width:18%;
+_width:18%;
+overflow:hidden;
+}
+
+.indexboxcont .section {
+ float: left;
+}
+
+.indexboxcont .section p
+{
+padding-top: 20px;
+padding-bottom: 20px;
+}
+.indexboxcont .sectionlist
+{
+display: inline-block;
+vertical-align:top;
+width: 32.5%;
+padding: 0;
+}
+.indexboxcont .sectionlist ul
+{
+margin-bottom: 20px;
+}
+
+.indexboxcont .sectionlist ul li
+{
+line-height: 1.5;
+}
+
+.content .indexboxcont li
+{
+font: normal bold 13px/1 Verdana;
+}
+
+.content .normallist li
+{
+font: normal 13px/1 Verdana;
+}
+
+.indexbox .indexIcon {
+width: 11%;
+}
+
+.indexbox .indexIcon span
+{
+display: block;
+}
+
+.indexboxcont:after
+{
+content: ".";
+display: block;
+height: 0;
+clear: both;
+visibility: hidden;
+}
+
+/*
+-----------
+Landing page
+-----------
+*/
+.col-group {
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+.col-1 {
+ display: inline-block;
+ white-space: normal;
+ width: 70%;
+ height: 100%;
+ float: left;
+}
+
+.col-1 h1 {
+ margin: 20px 0 0 0;
+}
+
+.col-2 {
+ display: inline-block;
+ white-space: normal;
+ width: 25%;
+ margin: 0 0 0 50px;
+}
+
+.sectionlist {
+ width: 100% !important;
+}
diff --git a/src/doc/doc.pro b/src/doc/doc.pro
new file mode 100644
index 0000000..36dc209
--- /dev/null
+++ b/src/doc/doc.pro
@@ -0,0 +1,3 @@
+TEMPLATE = aux
+QMAKE_DOCS = $$PWD/config/b2qt.qdocconf
+QMAKE_DOCS_OUTPUTDIR = $$OUT_PWD/b2qt
diff --git a/src/doc/images/b2qt-vs-qt-for-android.png b/src/doc/images/b2qt-vs-qt-for-android.png
new file mode 100644
index 0000000..60ca0a8
--- /dev/null
+++ b/src/doc/images/b2qt-vs-qt-for-android.png
Binary files differ
diff --git a/src/doc/images/qtcreator-run.png b/src/doc/images/qtcreator-run.png
new file mode 100644
index 0000000..a4c2436
--- /dev/null
+++ b/src/doc/images/qtcreator-run.png
Binary files differ
diff --git a/src/doc/src/b2qt.qdoc b/src/doc/src/b2qt.qdoc
new file mode 100644
index 0000000..c558e95
--- /dev/null
+++ b/src/doc/src/b2qt.qdoc
@@ -0,0 +1,578 @@
+/**************************************************************************
+**
+** Copyright (c) 2013 Digia Plc and/or its subsidiary(-ies).
+**
+** Licensees holding valid Qt Commercial licenses may use this document in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in a
+** written agreement between you and Digia.
+**
+**************************************************************************/
+
+/*!
+ \contentspage{index.html}{Boot to Qt}
+ \page index.html
+ \nextpage b2qt-getting-started.html
+ \title Boot to Qt Introduction
+
+
+ \list
+ \li \b {\l{Getting Started with Boot to Qt}}
+ \list
+ \li \l{Installation}
+ \li \l{Preparing for Development}
+ \li \l{Building and Running an Example on Hardware}
+ \endlist
+ \li \b {\l{Supported Platforms}}
+ \li \b {\l{Troubleshooting}}
+ \endlist
+
+
+ \section1 What is \B2Q?
+
+ \b{\B2Q} is a light-weight UI stack for embedded linux, based on the
+ \l{http://qt.digia.com/}{Qt Framework} by Digia. \B2Q places Qt on top of
+ an Android kernel/baselayer and offers an elegant means of developing
+ beautiful and performant embedded devices.
+
+ \B2Q runs on top of Android 4.0/4.1 baselayers and has been tested and
+ verified on a number of different hardware configurations.
+
+
+ \section1 About Qt
+
+ \l{http://qt.digia.com/}{Qt} is a full development framework with tools
+ designed to streamline the creation of applications and user interfaces
+ for desktop, embedded and mobile platforms.
+
+ \list
+ \li \b{Qt Framework} - intuitive APIs for C++
+ and CSS/JavaScript-like programming with
+ \b{Qt Quick} for rapid UI
+ creation
+ \li \b{Qt Creator IDE} - powerful cross-platform integrated development
+ environment, including UI designer tools and on-device debugging
+ \li \b{Tools and toolchains} - internationalization support, embedded
+ toolchains and more.
+ \endlist
+
+ With Qt, you can reuse code efficiently to target multiple platforms
+ with one code base. The modular C++ class library and developer tools
+ enables developers to create applications for one platform and easily
+ build and run to deploy also on other platforms.
+
+
+ \section1 \B2Q vs Qt for Android
+
+ \image b2qt-vs-qt-for-android.png
+
+ \b{Qt for Android} is a port of the Qt Framework to be used for application
+ development on the Android platform. Its purpose is to enable development
+ of applications that can run on Android devices. For developers writing
+ applications for the Android ecosystem, Qt for Android is the right choice.
+
+ \b{\B2Q} tries to strip down the Android stack to the bare minimum, relying
+ only on basic Linux features. The majority of the Android stack, such as
+ \e{SurfaceFlinger} or \e{DalvikVM} is not running in \B2Q, resulting in
+ faster startup times, lower memory consumption and overall better
+ performance.
+
+
+ \section1 \B2Q SDK
+
+ \B2Q SDK provides a complete software development package for
+ creating applications on embedded linux devices. It comes with Qt Creator
+ IDE with preconfigured build targets for hardware platforms
+ as well as an \l{Emulator}{emulator}.
+*/
+
+/*!
+ \page b2qt-getting-started.html
+ \title Getting Started with Boot to Qt
+ \previouspage index.html
+ \nextpage b2qt-installation.html
+
+ \B2Q SDK provides you all the tools to start developing embedded
+ linux devices using Qt and Qt Quick.
+
+ \B2Q runs on top of Android 4.0 based kernels. For the technology
+ preview release, following devices are in focus and tested to
+ work:
+
+ \list
+ \li \l{http://www.google.com/nexus/7/specs/}{Google Nexus 7}
+ \li \l{http://beagleboard.org/hardware-xM}{BeagleBoard-xM}
+ \li \l{http://boundarydevices.com/products/sabre-lite-imx6-sbc/}{Boundary Devices i.MX 6}
+ \endlist
+
+ In addition, \B2Q comes with an emulator to help you test your
+ applications without deploying to hardware.
+
+
+ \section1 Requirements
+
+ \b {Target Hardware Requirements}
+
+ Rough minimal requirements for running \B2Q are:
+ \list
+ \li 256Mb of RAM
+ \li 500Mhz CPU, 1Ghz preferred for 60 FPS velvet-smooth UI
+ \li OpenGL ES 2.0 support
+ \li Android 4.0+ compatible hardware
+ \endlist
+
+
+ \b {\B2Q SDK Requirements}
+
+ A 64-bit Linux system is required for \B2Q development. Instructions
+ in this documentation assume Ubuntu Linux 64-bit 12.04 LTS or later.
+
+ To install and use \B2Q SDK, the following things are required:
+
+ \list
+ \li 64-bit Linux system (for example, \l{http://www.ubuntu.com/download}{Ubuntu}).
+ \li C/C++ build essentials and support for running 32-bit code.
+ \li \l{https://www.virtualbox.org/}{VirtualBox} virtualization software.
+ \endlist
+
+
+ \section1 Installing 32-bit Support Libraries
+
+ Some of the build tools in \B2Q are 32-bit programs, and they require
+ that support libraries for running 32-bit code are present in the
+ system. To install the required packages in Ubuntu, use
+
+ \code
+ sudo apt-get install g++-multilib:i386
+ \endcode
+
+
+ \section1 Installing VirtualBox
+
+ Emulator in \B2Q relies on VirtualBox virtualization software. You can
+ download it from \l{https://www.virtualbox.org/wiki/Linux_Downloads} or
+ install it from the command line. In Ubuntu:
+
+ \code
+ sudo apt-get install virtualbox
+ \endcode
+
+ \b{Configuring VirtualBox}
+
+ Open VirtualBox network settings: Select \b{File > Preferences...}
+ and click on the \b{Network} tab. Create a new network named
+ \e{vboxnet0} and edit its properties:
+
+ \list
+ \li Change IPv4 address to 192.168.56.1 and IPv4 network mask to 255.255.255.0.
+ \li Check \b{Enable Server} in \b{DCHP Server} tab.
+ \li Change server address to 192.168.56.1.
+ \li Change both the lower and upper address bounds to 192.168.56.101.
+ \endlist
+*/
+
+/*!
+ \page b2qt-installation.html
+ \title Installation
+ \previouspage b2qt-getting-started.html
+ \nextpage b2qt-preparing-for-development.html
+
+ Before proceeding to install the \B2Q SDK, make sure that your development
+ system meets the \l{requirements}.
+
+ After downloading the \B2Q SDK binary installer, make sure it
+ is executable either by
+
+ \list
+ \li Using \c{chmod +x <filename>} command, or
+ \li Right-clicking on the file, selecting \b{Properties}, and checking
+ \b{Allow executing file as program} on the \b{Permissions} tab.
+ \endlist
+
+ Run the installer and follow its instructions.
+
+ After the installation has finished, continue with \l{Preparing for Development}.
+*/
+
+/*!
+ \page b2qt-preparing-for-development.html
+ \title Preparing for Development
+ \previouspage b2qt-installation.html
+ \nextpage b2qt-preparing-hardware-nexus-7.html
+
+ After installing the \B2Q SDK, the hardware devices need
+ to be prepared before they can be used for application
+ deployment from the Qt Creator.
+
+ \section1 Setting up Access to Development Hardware via USB
+
+ On Ubuntu Linux you have to grant your development user access to
+ plugged in devices. This is done by creating a new \e{udev} rule that
+ allows access to the device via USB. In order to do that, you need to
+ find out the USB ID of your device.
+
+ First, power up the device and connect it to your development
+ machine with a USB cable. Then, look for a line listing your
+ device in the output generated by the \c{lsusb} command.
+
+ For example:
+
+ \code
+ $ lsusb
+ ...
+ ...
+ Bus 001 Device 008: ID 18d1:9018 Google Inc.
+ ...
+ \endcode
+
+ Take note of the numbers stated after \c{ID}, and replace them in the
+ following shell command:
+
+ \code
+ echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="9018", TAG+="udev-acl"' | sudo tee -a /etc/udev/rules.d/70-boot2qt.rules
+ \endcode
+
+
+ \section1 Preparing Hardware for Running \B2Q
+
+ Before deploying and testing your Qt application on hardware, it needs
+ to be flashed with an image that contains the \B2Q stack. These steps
+ vary from device to device - follow the instructions specific to
+ your device:
+
+ \list
+ \li \l{Preparing Nexus 7 for Development}
+ \li \l{Preparing BeagleBoard-xM for Development}
+ \li \l{Preparing i.MX 6 for Development}
+ \endlist
+
+
+ \section1 Configuring a Device Kit in Qt Creator
+
+ After the hardware has been prepared, there is one final step required
+ to set up the development tools in Qt Creator for your device.
+
+ A separate device \b{Kit} needs to be cloned for each hardware device
+ you want to develop for.
+
+ To do so, connect your device to your computer via USB and launch
+ Qt Creator (\B2Q IDE). Then,
+
+ \list 1
+ \li Go to \b{Tools > Options > Build & Run > Kits}
+ \li Select one of the predefined Kits starting with \e{Boot2QtSDK...}
+ that matches the type of your device.
+ \li Click \b{Clone}.
+ \li (Optional) Change the name to a shorter one, for example, \e{MyBeagleBoard}.
+ \li Select the correct device in the \b{Device} combobox.
+ \li Click \b{Ok}.
+ \endlist
+
+ You are now ready to start developing for your device!
+
+ See \l{Building and Running an Example on Hardware}
+*/
+
+/*!
+ \page b2qt-preparing-hardware-nexus-7.html
+ \title Preparing Nexus 7 for Development
+ \previouspage b2qt-preparing-for-development.html
+ \nextpage b2qt-preparing-hardware-beagleboard.html
+
+ When using a \l{http://www.google.com/nexus/7/specs/}{Nexus 7} as a
+ development device, following steps are required to prepare it for
+ \B2Q.
+
+ \section1 Unlocking Nexus 7
+
+ The Nexus 7 has to be unlocked to allow custom software to be installed.
+ This procedure can be done directly from the device UI, and needs to be
+ done only once.
+
+ First, go to \b{Settings > Developer Options}, tap the \b{Build Number}
+ entry seven times. You should see a message \e{"You are now a developer!"}
+ displayed.
+
+ In \b{Developer Options}, also enable \b{USB Debugging}.
+
+ \note When running Android 4.2: If you don't see \b{Developer Options}
+ directly under \b{Settings}, go to \b{About Tablet}.
+
+ Finally, connect your Nexus 7 to your computer via USB, and run
+ the following command:
+
+ \code
+ <SDK_INSTALL_DIR>/targets/android-utils/bin/fastboot oem unlock
+ \endcode
+
+
+ \section1 Updating a Nexus 7 with \B2Q Images
+
+ \note \b{It is important that the steps in this section are repeated
+ every time after updating the \B2Q SDK.}
+
+ An unlocked Nexus 7 device can now be updated with a \B2Q image.
+
+ To do so, connect your Nexus 7 to your computer via USB, and run the
+ commands
+
+ \code
+ cd <SDK_INSTALL_DIR>/targets/
+ ./android-utils/bin/adb reboot bootloader
+ \endcode
+
+ The device will reboot into \e{fastboot} mode.
+
+ To re-flash the \e{boot}, \e{system}, and \e{userdata} partitions on the
+ device, use the following commands in the order they are listed:
+
+ \code
+ ./android-utils/bin/fastboot flash boot nexus7/images/boot.img
+ ./android-utils/bin/fastboot flash system nexus7/images/system.img
+ ./android-utils/bin/fastboot flash userdata nexus7/images/data.img
+ \endcode
+
+ Once the flashing is completed successfully, reboot the device:
+
+ \code
+ ./android-utils/bin/fastboot reboot
+ \endcode
+
+
+ \section1 Installing Proprietary Graphics Drivers
+
+ Download the proprietary graphics drivers for your Nexus 7
+ \l{https://developers.google.com/android/nexus/drivers#grouperjzo54k}{here}.
+
+ \note Make sure you have read the license terms at the beginning of the
+ driver download page.
+
+ Select the link in the \b{Graphics} row from the table
+ \e{"Nexus 7 (Wi-Fi) binaries for Android 4.1.2"}, download and save the file
+ to the installation directory of the \B2Q SDK.
+
+ Make sure your Nexus 7 is connected to the computer via USB.
+
+ Then, follow these steps to update the Nexus 7:
+
+ \list 1
+ \li Extract the downloaded file, and run the extracted installer. For example,
+ \code
+ cd <SDK_INSTALL_DIR>
+ tar xf nvidia-grouper-jzo54k-56de148f.tgz
+ ./extract-nvidia-grouper.sh
+ \endcode
+ \li Find out the serial number of the connected Nexus 7 device:
+ \code
+ <SDK_INSTALL_DIR>/targets/android-utils/bin/adb devices
+ \endcode
+ \li Deploy the drivers to your device using the following command:
+ \code
+ <SDK_INSTALL_DIR>/targets/android-utils/bin/deploy_tegra_drivers_to_nexus7 <serial_number>
+ \endcode
+ \endlist
+
+ Next, see \l{Configuring a Device Kit in Qt Creator} for information on how
+ to finish the new hardware configuration in \B2Q IDE.
+*/
+
+/*!
+ \page b2qt-preparing-hardware-beagleboard.html
+ \title Preparing BeagleBoard-xM for Development
+ \previouspage b2qt-preparing-hardware-nexus-7.html
+ \nextpage b2qt-preparing-hardware-imx6.html
+
+ When using a \l{http://beagleboard.org/hardware-xM}{BeagleBoard-xM} as a
+ development device, following steps are required to prepare it for
+ \B2Q.
+
+ \note \b{It is important that the steps in this section are repeated
+ every time after updating the \B2Q SDK.}
+
+ The image containing \B2Q stack for BeagleBoard-xM is included in the SDK,
+ ready to be copied to an SD card.
+
+ Write the image to an SD card with at least 2GB capacity. To do so,
+ plug in the SD card/reader and use the following command to find out
+ its device name:
+
+ \code
+ df -h
+ \endcode
+
+ Next, unmount the SD card. Assuming the device name of the SD card is
+ \c{/dev/sdb}:
+
+ \code
+ umount /dev/sdb
+ \endcode
+
+ Finally, write the image to the SD card:
+
+ \code
+ cd <SDK_INSTALL_DIR>
+ sudo dd if=targets/beagleboard/images/sdcard.img of=/dev/sdb bs=1M
+ \endcode
+
+ \warning \b{Make very sure you select the right device. Selecting the wrong
+ one can result in a wiped hard drive}.
+
+ Next, see \l{Configuring a Device Kit in Qt Creator} for information on how
+ to finish the new hardware configuration in \B2Q IDE.
+*/
+
+/*!
+ \page b2qt-preparing-hardware-imx6.html
+ \title Preparing i.MX 6 for Development
+ \previouspage b2qt-preparing-hardware-beagleboard.html
+ \nextpage b2qt-building-and-running-on-hw.html
+
+ When using a \l{http://boundarydevices.com/products/sabre-lite-imx6-sbc/}{Boundary Devices i.MX 6}
+ as a development device, following steps are required to prepare it for \B2Q.
+
+ \note \b{It is important that the steps in this section are repeated
+ every time after updating the \B2Q SDK.}
+
+ Download the package \e{r13.4.1-nitrogen-20130407.tar.gz} from
+ \l{http://boundarydevices.com/i-mx6-images-for-branch-r13-4-1/}{i.MX6 images for branch r13.4-1}
+
+ Follow the instructions on the Boundary Devices web site to create an SD card containing
+ the downloaded image.
+
+ Make sure you have the required tools installed in your development machine:
+
+ \code
+ sudo apt-get install u-boot-tools
+ \endcode
+
+ Then, upgrade the SD Card with \B2Q:
+
+ \code
+ <SDK_INSTALL_DIR>/targets/android-utils/deploy_to_iMX6 /dev/XXX
+ \endcode
+
+ where \c{XXX} is the device for your SD card, typically \c{sdb}.
+
+ \warning \b{Make very sure you select the right device. Selecting the wrong
+ one can result in a wiped hard drive.}
+
+ Next, see \l{Configuring a Device Kit in Qt Creator} for information on how
+ to finish the new hardware configuration in \B2Q IDE.
+*/
+
+
+/*!
+ \page b2qt-building-and-running-on-hw.html
+ \title Building and Running an Example on Hardware
+ \previouspage b2qt-preparing-for-development.html
+ \nextpage b2qt-supported-platforms.html
+
+ Once the installation and configuration steps for all the hardware are
+ completed, it's time to test the setup.
+
+ First, make sure your device is connected to the computer via USB.
+
+ Then, follow these steps to create and run a simple \l{Qt Quick}
+ application on the device:
+
+ \list 1
+ \li Open \b{File > New File or Project}, select
+ \b{Qt Quick 2 Application (Built-in Elements)} and click \b{Next}.
+ \li In \b{Kit Selection} dialog, select all kits you created for your
+ devices. You can also select the emulator kit to test running the
+ project in the emulator.
+ \li Click \b{Next} and finish the wizard.
+ \li In \b{Projects > Build & Run}, select the correct kit for your
+ connected device. Also, click on \b{Run} to check if the
+ \b{Run configuration} of your device kit has a
+ \b{Custom Executable} setting, and remove it if present.
+ \li To build and run the project, click \inlineimage qtcreator-run.png
+ \endlist
+*/
+
+/*!
+ \page b2qt-supported-platforms.html
+ \title Supported Platforms
+ \previouspage b2qt-building-and-running-on-hw.html
+ \nextpage b2qt-troubleshooting.html
+
+ \section1 Supported Hardware Platforms
+
+ \B2Q can be made to run on hardware that has support for
+ Android 4.0+ operating system. Additional requirements
+ are as follows:
+
+ \list
+ \li 256Mb of RAM
+ \li 500Mhz CPU, 1Ghz preferred
+ \li OpenGL ES 2.0 support
+ \endlist
+
+ The \B2Q Technology Preview Release focuses on the following
+ devices:
+
+ \list
+ \li \l{http://www.google.com/nexus/7/specs/}{Google Nexus 7} (Manufactured by ASUS)
+ \li \l{http://beagleboard.org/hardware-xM}{BeagleBoard-xM}
+ \li \l{http://boundarydevices.com/products/sabre-lite-imx6-sbc/}{Boundary Devices i.MX 6}
+ \endlist
+
+ See also \l{Preparing Hardware for Running Boot to Qt}.
+
+ \section1 Supported Development Environment
+
+ The development environment supported in \B2Q Technology Preview release
+ is Ubuntu Linux 64-bit (12.04 LTS or 12.10).
+*/
+
+/*!
+ \page b2qt-troubleshooting.html
+ \title Troubleshooting
+ \previouspage b2qt-supported-platforms.html
+
+ \section1 General Issues
+
+ \b {Problems launching/running applications on hardware after updating \B2Q SDK}
+
+ Remember to repeat the process of updating also your device with the latest
+ version of \B2Q. See \l{Preparing Hardware for Running Boot to Qt}.
+
+ \b {Problems deploying/launching the application in Qt Creator}
+
+ Check if the device is properly connected to the PC via USB.
+ See \l{Connectivity Issues}.
+
+ If using the emulator, see \l{Installing VirtualBox}{Configuring VirtualBox}.
+
+ In addition, check if \b{Run configuration} of your device kit has a
+ \b{Custom Executable} setting, and remove it if present. To see the
+ run configuration, click on \b{Projects > Build & Run}, and click
+ \b{Run} on the active device kit.
+
+ \b{How do I restore my Nexus 7 to factory settings?}
+
+ Goto \l{https://developers.google.com/android/nexus/images} and
+ download the correct file for your device. Unpack it, and then
+
+ \code
+ <SDK_INSTALL_DIR>/targets/android-utils/bin/adb reboot bootloader
+ <SDK_INSTALL_DIR>/targets/android-utils/bin/fastboot -w update <image-file>.zip
+ <SDK_INSTALL_DIR>/targets/android-utils/bin/fastboot reboot
+ \endcode
+
+ \b{I'm unable to shut down my Nexus 7, what can I do?}
+
+ In case you are not able to shut down or reboot your Nexus 7, press and
+ hold the power button for 10 seconds. This will force a reboot.
+
+ \b{Trying to build for the emulator target fails with error message \e{make: i686-android-linux-g++: Command not found}}
+
+ You need to install proper libraries in order to run 32-bit programs in 64-bit Linux operating system.
+
+ See \l{Requirements}.
+
+ \section1 Connectivity Issues
+ \b {I cannot connect to my hardware device via USB}
+
+ See \l{Setting up Access to Development Hardware via USB}.
+*/
diff --git a/src/src.pro b/src/src.pro
index c9231e6..35b4433 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -2,4 +2,5 @@ TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += \
utils \
- imports
+ imports \
+ doc