QtCreator

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(5. OpenMokoder)
(5. OpenMokoder)
Line 121: Line 121:
  
 
*Now switch to Folder /Openmokoder/sampleproject/QtCreator and open the file SampleProject.pro with QtCreator for example by doubleklick
 
*Now switch to Folder /Openmokoder/sampleproject/QtCreator and open the file SampleProject.pro with QtCreator for example by doubleklick
*If you click on "Projects" on the left of QtCreator U should see something like this. In the new QtCreator 1.1 you have to do a right click on the white area to see the build configurations.
+
*If you click on "Projects" on the left of QtCreator U should see something like this. In the new QtCreator 1.1 you have to do a right click on the white area to see the "build settings".
 
[[Image:ScreenshotQTCreator2.png]]
 
[[Image:ScreenshotQTCreator2.png]]
  

Revision as of 17:52, 27 April 2009

WARNING:

As long as there are no Qt 4.5 sources for arm this doesn't work on K/Ubuntu 9.04 (Jaunty Jackalope).


Contents

Introduction

I created a project called "OpenMokoder" which should help to develop Qt4 projects for freerunner. You only need to copy your sourcecode or use the included sample project run the script and you can easy compile, debug, crosscompile, package your project with Trolltechs QtCreator. QtCreator is a very good lightweight Qt IDE with features like embedded Qt Designer, Code completion, debugging, svn, ...

Note:

  • This tutorial is tested with SHR and FSO
  • The installation process is based on Kubuntu 8.10 (Intrepid)

1. install Toolchain

First of all you have to install the toolchain. If you have already done this skip this step. I will just give a summary of how to do that for copy paste the detailed information can be found at Toolchain

sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check uboot-mkimage libcurl3 libqt4-dev

Unfortunately the libtool since Ubuntu(intrepid) doesnt't work with the toolchain so you have to install the one from Ubuntu(Hardy)

  • deinstall libtool from intrepid/jaunty
 sudo apt-get remove libtool
 wget  http://ftp.sjtu.edu.cn/ubuntu/pool/main/libt/libtool/libtool_1.5.26-1ubuntu1_i386.deb

or

 wget  http://ftp.sjtu.edu.cn/ubuntu/pool/main/libt/libtool/libtool_1.5.26-1ubuntu1_amd64.deb
  • and install it
 sudo dpkg -i libtool_1.5.26-1ubuntu1_i386.deb 
  • build a debian package and install it
mkdir ~/sources
cd ~/sources
wget http://downloads.openmoko.org/developer/toolchains/openmoko-i686-20090323-armv4t-linux-gnueabi-toolchain-openmoko.tar.bz2
cd /
sudo tar -xjvf ~/sources/openmoko-i686-20090323-armv4t-linux-gnueabi-toolchain-openmoko.tar.bz2
cd ~/sources/
bunzip2 openmoko-i686-20090323-armv4t-linux-gnueabi-toolchain-openmoko.tar.bz2
gzip openmoko-i686-20090323-armv4t-linux-gnueabi-toolchain-openmoko.tar
fakeroot alien -d openmoko-i686-20090323-armv4t-linux-gnueabi-toolchain-openmoko.tar.gz
sudo dpkg -i openmoko-i686_20090323-2_all.deb
  • Change permissions of toolchain that scripts don't need root rights. REPLACE <your-name> (in general with your username)
sudo chown -R <your-name>.<your-name> /usr/local/openmoko/arm

2. Configure Toolchain

  • Install important packages in toolchain
. /usr/local/openmoko/arm/bin/setup-env
opkg-target update
opkg-target install libpng12-0 libpng12-dev libgcc1 libglib-2.0-0 libgmodule-2.0-0 libgobject-2.0-0 libgthread-2.0-0 libpng-dev libpng3  libxrender-dev libxrender1 libxrandr-dev libxrandr2 libfontconfig-dev libfontconfig1 
  • Add SHR Repo and QT4 libs to toolchain
echo arch base 50 >> /usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/etc/opkg.conf
echo src/gz base http://build.shr-project.org/shr-unstable/ipk/armv4t >>/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/etc/opkg.conf
opkg-target update
opkg-target install libgcc1 libglib-2.0-0 libgmodule-2.0-0 libgobject-2.0-0 libgthread-2.0-0 libpng12-0 
  • install with force depends
opkg-target -force-depends install qt4-x11-free qt4-x11-free-dev
  • If not done yet install qt sources on Host
sudo apt-get install libqt4-dev

3. configure Freerunner

SHR

  1. SHR has Qt libs in the feeds you only need to install
opkg install qt4-x11-free

If Qt libs are not in the feeds

You shlould install the libs like this without adding the angstrom repository, cause if you install the whole qt4-x11-free it installs dependencies which are not compatible and the Freerunner doesn't boot anymore.

opkg -force-depends install  http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/libqtgui4_4.4.3-r4.1_armv4t.ipk
opkg -force-depends install  http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/libqtcore4_4.4.3-r4.1_armv4t.ipk
opkg -force-depends install  http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/libqtdbus4_4.4.3-r4.1_armv4t.ipk
opkg -force-depends install  http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/libqtxml4_4.4.3-r4.1_armv4t.ipk
opkg -force-depends install  http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/libqttest4_4.4.3-r4.1_armv4t.ipk

4. install QTCreator

  • download binary from:

http://www.qtsoftware.com/downloads/

  • easy install via: (Filenames will change)
 chmod +x qt-creator-linux-x86-opensource-1.1.0.bin
 sudo ./qt-creator-linux-x86-opensource-1.1.0.bin

5. OpenMokoder

  • OpenMokoder is just a set of folders that contain some scripts, templates and the sample project.
  • Install subversion
sudo apt-get install subversion
  • Checkout (remember these are only scripts you do not have to compile anything)
svn checkout svn://svn.projects.openmoko.org/svnroot/openmokoder

or

svn checkout https://svn.projects.openmoko.org/svnroot/openmokoder
  • Make all scripts executable
cd openmokoder/scripts/
chmod +x *.script
cd ..
chmod +x *.script
  • If your Freerunner has another Ip than 192.168.0.202 please change it in copy.script start.script and packaging.script in the scripts folder
  • For the first try I would recommend to use the included sample project
  • Run Script
./CreateProject.script sampleproject
  • Now switch to Folder /Openmokoder/sampleproject/QtCreator and open the file SampleProject.pro with QtCreator for example by doubleklick
  • If you click on "Projects" on the left of QtCreator U should see something like this. In the new QtCreator 1.1 you have to do a right click on the white area to see the "build settings".

ScreenshotQTCreator2.png

  • You can see the 3 customized build options
  1. Host: Builds the sample project on the host
  2. Freerunner: Crosscompiles the sample project and scp to freerunner /usr/bin/
  3. Packaging: Packages the sample project and installs the package on the freerunner

Crosscompiling

  • Connect your freerunner to your Computer (if necessary use: sudo /etc/init.d/networking/restart)
  • Choose "Freerunner" as Build Settings and start compiling with ctrl+b
  • You can watch the build process if you chose "Compile Output" at the bottom right
  • Once the build process is finished the test program should start on the freerunner

Packaging

  • Now choose "Packaging" as Build Settings and hit ctrl+b again
  • Afterwards the package should be installed on your Freerunner
  • You should have a new Icon on the Freerunner Desktop
  • The different build steps can be turned on and off
  • The BuildStep "Freerunner Autotools" is only needed at the first time or when you add a new file and can afterwards be deactivated then the build process is much faster
NOTE:

The binary for the Freerunner can be found in /Openmokoder/sampleproject/src The Host binary can be found in /Openmokoder/sampleproject/QtCreator


Custom Project

If you want to compile your own project just put your Project (It must contain a .pro Poject File) into /Openmokoder/src/ and start

./CreateProject.script projectname

Because the projectname you enter here will also be used for packaging it has to be without capital letters Afterwards continue like with the SampleProject

Adding Librarys

  1. Install the libs to the toolchain and don't forget the libXY-dev packages
. /usr/local/openmoko/arm/bin/setup-env
opkg-target install libXY libXY-dev
  1. Add the Libs to the CreateProject.script. search for the line
echo "$1_LDADD = -lQtDBus -lQtGui -lQtCore " >> temp2.txt
  • and add the lib, for example
echo "$1_LDADD = -lQtDBus -lQtGui -lQtCore -lXY " >> temp2.txt

Customize Icon

Just change the Icon in /data/openmoko-sample.png but use the same filename otherwise the Script must be modified

Customize Version Number

Don't know how to do that yet feel free to add it here

What does CreateProject.script do ? (draft)

To be done

Todo

  1. upload Openmokoder to svn soon that scripts can be extended and simplified - DONE
  2. Better documtation in the OpenMokoder scripts
  3. Add Information here what Createproject.script exactly does
  4. Information about other Distributions as well on the Freerunner as on the Host

Issues

SSH

  • You should be able to connect to your freerunner via SSH else some scripts do not work properly
  • Try if
ssh root@192.168.0.202
  • works
  • The best is using public key authentication that you were not asked for the password
Personal tools
WARNING:

As long as there are no Qt 4.5 sources for arm this doesn't work on K/Ubuntu 9.04 (Jaunty Jackalope).


Introduction

I created a project called "OpenMokoder" which should help to develop Qt4 projects for freerunner. You only need to copy your sourcecode or use the included sample project run the script and you can easy compile, debug, crosscompile, package your project with Trolltechs QtCreator. QtCreator is a very good lightweight Qt IDE with features like embedded Qt Designer, Code completion, debugging, svn, ...

Note:

  • This tutorial is tested with SHR and FSO
  • The installation process is based on Kubuntu 8.10 (Intrepid)

1. install Toolchain

First of all you have to install the toolchain. If you have already done this skip this step. I will just give a summary of how to do that for copy paste the detailed information can be found at Toolchain

sudo apt-get install gcc g++ autoconf automake binutils libtool libglib2.0-dev ccache libxrender-dev intltool libmokoui2-dev libgconf2-dev mtools fakeroot alien check uboot-mkimage libcurl3 libqt4-dev

Unfortunately the libtool since Ubuntu(intrepid) doesnt't work with the toolchain so you have to install the one from Ubuntu(Hardy)

  • deinstall libtool from intrepid/jaunty
 sudo apt-get remove libtool
 wget  http://ftp.sjtu.edu.cn/ubuntu/pool/main/libt/libtool/libtool_1.5.26-1ubuntu1_i386.deb

or

 wget  http://ftp.sjtu.edu.cn/ubuntu/pool/main/libt/libtool/libtool_1.5.26-1ubuntu1_amd64.deb
  • and install it
 sudo dpkg -i libtool_1.5.26-1ubuntu1_i386.deb 
  • build a debian package and install it
mkdir ~/sources
cd ~/sources
wget http://downloads.openmoko.org/developer/toolchains/openmoko-i686-20090323-armv4t-linux-gnueabi-toolchain-openmoko.tar.bz2
cd /
sudo tar -xjvf ~/sources/openmoko-i686-20090323-armv4t-linux-gnueabi-toolchain-openmoko.tar.bz2
cd ~/sources/
bunzip2 openmoko-i686-20090323-armv4t-linux-gnueabi-toolchain-openmoko.tar.bz2
gzip openmoko-i686-20090323-armv4t-linux-gnueabi-toolchain-openmoko.tar
fakeroot alien -d openmoko-i686-20090323-armv4t-linux-gnueabi-toolchain-openmoko.tar.gz
sudo dpkg -i openmoko-i686_20090323-2_all.deb
  • Change permissions of toolchain that scripts don't need root rights. REPLACE <your-name> (in general with your username)
sudo chown -R <your-name>.<your-name> /usr/local/openmoko/arm

2. Configure Toolchain

  • Install important packages in toolchain
. /usr/local/openmoko/arm/bin/setup-env
opkg-target update
opkg-target install libpng12-0 libpng12-dev libgcc1 libglib-2.0-0 libgmodule-2.0-0 libgobject-2.0-0 libgthread-2.0-0 libpng-dev libpng3  libxrender-dev libxrender1 libxrandr-dev libxrandr2 libfontconfig-dev libfontconfig1 
  • Add SHR Repo and QT4 libs to toolchain
echo arch base 50 >> /usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/etc/opkg.conf
echo src/gz base http://build.shr-project.org/shr-unstable/ipk/armv4t >>/usr/local/openmoko/arm/arm-angstrom-linux-gnueabi/etc/opkg.conf
opkg-target update
opkg-target install libgcc1 libglib-2.0-0 libgmodule-2.0-0 libgobject-2.0-0 libgthread-2.0-0 libpng12-0 
  • install with force depends
opkg-target -force-depends install qt4-x11-free qt4-x11-free-dev
  • If not done yet install qt sources on Host
sudo apt-get install libqt4-dev

3. configure Freerunner

SHR

  1. SHR has Qt libs in the feeds you only need to install
opkg install qt4-x11-free

If Qt libs are not in the feeds

You shlould install the libs like this without adding the angstrom repository, cause if you install the whole qt4-x11-free it installs dependencies which are not compatible and the Freerunner doesn't boot anymore.

opkg -force-depends install  http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/libqtgui4_4.4.3-r4.1_armv4t.ipk
opkg -force-depends install  http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/libqtcore4_4.4.3-r4.1_armv4t.ipk
opkg -force-depends install  http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/libqtdbus4_4.4.3-r4.1_armv4t.ipk
opkg -force-depends install  http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/libqtxml4_4.4.3-r4.1_armv4t.ipk
opkg -force-depends install  http://www.angstrom-distribution.org/feeds/2008/ipk/glibc/armv4t/base/libqttest4_4.4.3-r4.1_armv4t.ipk

4. install QTCreator

  • download binary from:

http://www.qtsoftware.com/downloads/

  • easy install via: (Filenames will change)
 chmod +x qt-creator-linux-x86-opensource-1.1.0.bin
 sudo ./qt-creator-linux-x86-opensource-1.1.0.bin

5. OpenMokoder

  • OpenMokoder is just a set of folders that contain some scripts, templates and the sample project.
  • Install subversion
sudo apt-get install subversion
  • Checkout (remember these are only scripts you do not have to compile anything)
svn checkout svn://svn.projects.openmoko.org/svnroot/openmokoder

or

svn checkout https://svn.projects.openmoko.org/svnroot/openmokoder
  • Make all scripts executable
cd openmokoder/scripts/
chmod +x *.script
cd ..
chmod +x *.script
  • If your Freerunner has another Ip than 192.168.0.202 please change it in copy.script start.script and packaging.script in the scripts folder
  • For the first try I would recommend to use the included sample project
  • Run Script
./CreateProject.script sampleproject
  • Now switch to Folder /Openmokoder/sampleproject/QtCreator and open the file SampleProject.pro with QtCreator for example by doubleklick
  • If you click on "Projects" on the left of QtCreator U should see something like this. In the new QtCreator 1.1 you have to do a right click on the white area to see the build configurations.

ScreenshotQTCreator2.png

  • You can see the 3 customized build options
  1. Host: Builds the sample project on the host
  2. Freerunner: Crosscompiles the sample project and scp to freerunner /usr/bin/
  3. Packaging: Packages the sample project and installs the package on the freerunner

Crosscompiling

  • Connect your freerunner to your Computer (if necessary use: sudo /etc/init.d/networking/restart)
  • Choose "Freerunner" as Build Settings and start compiling with ctrl+b
  • You can watch the build process if you chose "Compile Output" at the bottom right
  • Once the build process is finished the test program should start on the freerunner

Packaging

  • Now choose "Packaging" as Build Settings and hit ctrl+b again
  • Afterwards the package should be installed on your Freerunner
  • You should have a new Icon on the Freerunner Desktop
  • The different build steps can be turned on and off
  • The BuildStep "Freerunner Autotools" is only needed at the first time or when you add a new file and can afterwards be deactivated then the build process is much faster
NOTE:

The binary for the Freerunner can be found in /Openmokoder/sampleproject/src The Host binary can be found in /Openmokoder/sampleproject/QtCreator


Custom Project

If you want to compile your own project just put your Project (It must contain a .pro Poject File) into /Openmokoder/src/ and start

./CreateProject.script projectname

Because the projectname you enter here will also be used for packaging it has to be without capital letters Afterwards continue like with the SampleProject

Adding Librarys

  1. Install the libs to the toolchain and don't forget the libXY-dev packages
. /usr/local/openmoko/arm/bin/setup-env
opkg-target install libXY libXY-dev
  1. Add the Libs to the CreateProject.script. search for the line
echo "$1_LDADD = -lQtDBus -lQtGui -lQtCore " >> temp2.txt
  • and add the lib, for example
echo "$1_LDADD = -lQtDBus -lQtGui -lQtCore -lXY " >> temp2.txt

Customize Icon

Just change the Icon in /data/openmoko-sample.png but use the same filename otherwise the Script must be modified

Customize Version Number

Don't know how to do that yet feel free to add it here

What does CreateProject.script do ? (draft)

To be done

Todo

  1. upload Openmokoder to svn soon that scripts can be extended and simplified - DONE
  2. Better documtation in the OpenMokoder scripts
  3. Add Information here what Createproject.script exactly does
  4. Information about other Distributions as well on the Freerunner as on the Host

Issues

SSH

  • You should be able to connect to your freerunner via SSH else some scripts do not work properly
  • Try if
ssh root@192.168.0.202
  • works
  • The best is using public key authentication that you were not asked for the password