I used the instructions and got a working BBB with a CAP LCD7. However I 
needed to cut the eMMC lines to the LCD CAP (BeagleToys one), it is a A3 
Ref but still did not work, but the site say is 100% BBB compatible.. ha ha 
. The only thing that does not work is the mouse when used with the LCD 
CAP, but that is not a problem to me as I used the touch screen. I made a 
document up with the instructions as I had to change some things to get the 
GUI , GDD and LCD cap working.

I also think QT creator has a bug , one has to delete the xx.user file and 
then setup the kit, else you cannot change the kit, it still uses the 
original kit. So just be sure to select the correct kit when started after 
the .user file was was deleted.

It works great !!


 Building and setting up QT environment for BeagleBone 

There are too few information available on how to easily setup QT 
environment for building Beaglebone applications (command line or GUI). In 
this tutorial we will compile QT and setup the environment from scratch.
1. My environment 
   
   - 
   
   Host: Ubuntu 13.10 64bit (VB) 
   - 
   
   Target: BeagleBone Black running Angstrom 
   - 
   
   QT: 4.8.5 
   
2. Setup Angstrom cross-compile toolchain for Linux 

Download :

   - 
   
   
   
angstrom-2011.03-x86_64-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2<http://www.angstrom-distribution.org/toolchains/angstrom-2011.03-x86_64-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2>
 for 
   64bit host or 
   - 
   
   
   
angstrom-2011.03-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2<http://www.angstrom-distribution.org/toolchains/angstrom-2011.03-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2>
 for 
   x86 (or download more recent version at 
   
   http://www.angstrom-distribution.org/toolchains/). 
   - 
   
   https://googledrive.com/host/0B3Z340LOBulvMG5NRmNlZEppSEE
   
 Run

$> tar -C / -xjf 
angstrom-2011.03-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2
3. Download and un-tar QT 

> wget 
http://download.qt-project.org/official_releases/qt/4.8/4.8.5/qt-everywhere-opensource-src-4.8.5.tar.gz
 
> tar -xzf qt-everywhere-opensource-src-4.8.5.tar.gz
 
> mv qt-everywhere-opensource-src-4.8.5 qt-4.8.5-beagle
 

  4. Create qmake.conf 

> cd qt-4.8.5-beagle
 
> mkdir ./mkspecs/qws/linux-am335x-g++ 
 
> cp ./mkspecs/qws/linux-arm-g++/qplatformdefs.h 
./mkspecs/qws/linux-am335x-g++ 
 
> touch ./mkspecs/qws/linux-am335x-g++/qmake.conf
 

 Add the following to qmake.conf with your favorite editor:

#
 
# qmake configuration for building with arm-linux-g++
 
#
 
include(../../common/linux.conf)
 
include(../../common/gcc-base-unix.conf)
 
include(../../common/g++-unix.conf) 
 
include(../../common/qws.conf)
 
 
 
# modifications to g++.conf
 
#Toolchain
 
 
 
#Compiler Flags to take advantage of the ARM architecture
 
QMAKE_CFLAGS_RELEASE =   -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon 
-mfloat-abi=softfp
 
QMAKE_CXXFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon 
-mfloat-abi=softfp
 
 
 
QMAKE_CC = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/gcc
 
QMAKE_CXX = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++
 
QMAKE_LINK = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++
 
QMAKE_LINK_SHLIB = 
/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++
 
 
 
# modifications to linux.conf
 
QMAKE_AR = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/ar cqs
 
QMAKE_OBJCOPY = 
/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/objcopy
 
QMAKE_STRIP = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/strip
 
 
 
load(qt_config)
  5. Configure QT embedded 

./configure -v -opensource -confirm-license -prefix /opt/qt -embedded arm 
-platform qws/linux-x86-g++ -xplatform qws/linux-am335x-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 
-little-endian -host-big-endian -no-pch -no-sql-ibase -no-sql-mysql 
-no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-webkit 
-no-qt3support -nomake examples -nomake demos -nomake docs -nomake 
translations -qt-mouse-tslib
 6. Build and install 

> make -j 4
 
> sudo make install
 7. Install Qt SDK (lib) we built previously on your board 

Make sure you beaglebone is connected to your host (assume ip =192.168.7.2 
USB)

   - 
   
   ssh to your beaglebone (ssh [email protected]) 
   

   - 
   
   Create dir structure from your prefix:
   
   > root@beaglebone:/# mkdir /opt
   
 
   > root@beaglebone:/# mkdir /opt/qt
   
   > opkg install tslib-calibrate
   
   > ts-all
   
   > ts-calibrate (calibrate all points)
   
   > update-rc.d -f gdm remove
   
   > systemctl disable gdm.service
   
   > reboot
   
 
   - 
   
   Copy lib from your host to beagle (after reboot):
   
   > scp -r /opt/qt/lib [email protected]:"/opt/qt"
   - 
   
   Add the lib directory to path by editing /etc/profile and adding:
   
   PATH="...:/opt/qt/lib"
   - 
   
   NS run applications preceding with
   - 
   
   export QWS_MOUSE_PROTO=LinuxInput:/dev/input/eventx
   
   Note x could be 0 or 1 depending on your setup
   
   AND
   - 
   
   ./xxxxx -qws where xxxx is your application
   
8. Download, install and configure QT Creator 

I suggest installing QT Creator using regular installer: 

   Download 
   - 
   
   
qt-creator-linux-x86-opensource-2.8.0.run<http://download.qt-project.org/official_releases/qtcreator/2.8/2.8.0/qt-creator-linux-x86-opensource-2.8.0.run>
 for 
   x86 or 
   - 
   
   
qt-creator-linux-x86_64-opensource-2.8.0.run<http://download.qt-project.org/official_releases/qtcreator/2.8/2.8.0/qt-creator-linux-x86_64-opensource-2.8.0.run>
 for 
   64bit
   
   > chmod +x qt-creator-linux-x86_64-opensource-2.8.0.run 
   /qt-creator-linux-x86_64-opensource-2.8.0.run
   - 
   
   Follow installation Wizard
   - 
   
   Run Angstrom toolchain environment setup:
   
 > . /usr/local/angstrom/arm/environment-setup

   Test with > qmake2 and see if it response without error(not existing)
   
   Open Qt Creator and
   - 
   
   Configure *Qt version * 
   

   1. Go to Tools->Options->Build & Run->Qt Versions and click *Add * 
   

   2. Select qmake.conf from /opt/qt/bin 
   

   3. Click *Ok * 
   

   - 
   
   Configure target *device connection* 
   

   1. Go to Tools->Options->Devices 
   

   2. Click Add and select *Generic Linux Device * 
   

   3. Add IP 192.168.7.2, User: root 
   

   4. Set name to “Beaglebone” 
   

   5. Click Ok 
   

   - 
   
   Configure *Compiler * 
   

   1. Go to Tools->Options->Build & Run->Compilers and click Add->GCC 
   

   2. Select compiler path: 
   /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++ 
   

   3.Click Ok 
   

   - 
   
   Configure* Kit * 
   

   1. Go to Tools->Options->Build & Run->Kits and click Add 
   

   2. Call new kit Beaglebone 
   

   3. Select device type: “Generic Linux Device” 
   

   4. Select the device you previously created 
   

   5. Select compiler you created 
   

   6. Select Qt version you created 
   

   - 
   
   Select GDK path 
   as /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gdk 
   

   1. Click Ok (not found !! )
   - 
   
   Configure GDB
   
   1 Goto Tools > Options > Build & Run, 
   
   2. set Debugger > Edit to 
   /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gdb
   
9. Build Qt application 
   
   - 
   
   Create new project (File->New project->Qt Project->Qt Console 
   application) 
   - 
   
   Edit your project (.pro) file 
   - 
   
   Add the following after “TARGET=…” line:
   
   target.files = <YOUR EXECUTABLE NAME>
   
 
   target.path = /home/root
   
 
   INSTALLS = target
   - 
   
   Go to Projects -> Run, you should see on “Files to deploy” table your 
   “target” settings 
   
 
   - 
   
   Now you are ready to build and deploy you project on your target board 
   

   - 
   
   The following example application should print Hello world inside your 
   console:
   
#include <QCoreApplication>
 
#include <iostream>
 

  int main(int argc, char *argv[])
 
{
 
QCoreApplication a(argc, argv);
 
std::cout << "hello world" << std::endl;
 
return a.exec();
 
}
 


 

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to