Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
Create Qt on Raspberry Pi
En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh
QtonPi App SDK
QtonPi Release-0.x App SDK consists of,
- Qt Creator
- Sysroot + Toolchain
As indicated in the roadmap, we hope to have a more integrated App SDK from Release-1.x onwards.
Download
QtonPi releases are distributed via BitTorrent. QtonPi download page is here.
Upon downloading a QtonPi release, you should see a tarball
qtonpi-X.Y.tar.bz2
, where
"X"
is the major release number and
"Y"
is the minor release.
QtonPi release directory is organized as follows,
qtonpi-X.Y/ ├── app-sdk/ ├── platform-sdk/ │ ├── host-rpms/ │ ├── image-creator-binaries/ │ └── mt-cross-tools/ └── sdcard-img/
Following is a brief description of the directory structure,
app-sdk/
|
Application SDK |
platform-sdk/
|
Platform SDK - In case you would like to roll your own SD Card Image and/or Sysroot. |
sdcard-img/
|
Default SD Card Image - Please use this for reporting bugs! |
Install
Qt Creator
First step would be to install Qt Creator. You will find Qt Creator installer here,
qtonpi-X.Y/ └── app-sdk/ └── qt-creator-linux-x86-opensource-2.x.y.bin
To install, just run the
qt-creator-linux-x86-opensource-2.x.y.bin
file
$ pwd /home/rajiv/qtonpi-0.2/app-sdk $ ./qt-creator-linux-x86-opensource-2.4.1.bin
This should install, launch Qt Creator. In addition, it'll also create an icon on your Desktop.
Toolchain and Sysroot
Next step would be to install the toolchain and default sysroot. You can find it here,
qtonpi-X.Y/ └── app-sdk/ └── toolchain-and-sysroot-armv5tel.tar.bz2
You will need to extract this as
root
user, into the
root("/")
directory of your filesystem.
$ cd / $ pwd / $ sudo tar jxvf /home/rajiv/qtonpi-0.2/app-sdk/toolchain-and-sysroot-armv5tel.tar.bz2
Qt 5
QtonPi ships with a known working (necessarily not stable!) version of Qt 5. This version works both on the sysroot and the target and you can find it here,
qtonpi-0.2/ └── app-sdk/ └── opt-qt5-current.tar.bz2
You will need to extract this as
root
user, into the
root("/")
directory of your filesystem.
$ cd / $ pwd / $ sudo tar jxvf /home/rajiv/qtonpi-0.2/app-sdk/opt-qt5-current.tar.bz2
SD Card Image
In addition, there is also a default 2GB SD Card Image, with Qt 5 on it. You'll find it here.
qtonpi-X.Y/ └── sdcard-img/ └── qtonpi-sdcard-X.Y.img.bz2
To setup your SD card,
cat/dd
the contents of this file onto your SD Card. Assuming your SD Card device is
/dev/sdb
, one way to do this is as follows. Note you'll need to be logged in as
root
in order to be able to write to
/dev/sdb
device.
# pwd /home/rajiv/qtonpi-0.2/sdcard-img # bzcat qtonpi-sdcard-0.2.img.bz2 > /dev/sdb; sync
You're now ready to boot your Raspberry Pi Device! There are two accounts -
root
and
qtonpi
. Password for the accounts are
rootme
and
qtonpi
respectively. Upon booting and logging into your Raspberry Pi device as
root
, you'll need to enable networking (which is disabled by default!). If you've DHCP setup, find out the ethernet interface of your Raspberry Pi device by doing
ifconfig -a
and run
dhclient eth0
on that interface.
-bash-4.1# ifconfig -a eth0 Link encap:Ethernet HWaddr B8:27:EB:E2:26:B5 […] -bash-4.1# dhclient eth0 […] -bash-4.1# ifconfig -a eth0 Link encap:Ethernet HWaddr B8:27:EB:44:23:50 inet addr:10.48.194.196 Bcast:10.48.194.255 Mask:255.255.255.128 UP BROADCAST RUNNING MULTICAST MTU:1488 Metric:1 RX packets:549 errors:0 dropped:0 overruns:0 frame:0 TX packets:46 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:90538 (88.4 KiB) TX bytes:8025 (7.8 KiB)
dhclient
usually does a lousy job at giving useful information. So, once you are back on the command prompt, do an
ifconfig -a
to see if an IP Address got assigned. In the above example, eth0 has an IP address of 10.48.194.196. Then update the date/time on Raspberry Pi device. This can be done easily using
ntpdate
-bash-4.1# ntpdate -u 0.us.pool.ntp.org
Configuring Qt Creator, Toolchain, Qt 5 and Raspberry Pi board
Connecting Qt Creator to Raspberry Pi board
By this time you should be able to ssh from your host machine (running Qt Creator) into your Raspberry Pi Board. If you are not able to do so, please check your network connectivity before proceeding any further!
- Launch Qt Creator and select Tools -> Options-> Linux Devices
- Click Add and select Generic Linux Device. Then Click on Start Wizard
- Enter the following in the dialog box that appears
- The name to identify this configuration:
Raspberry Pi
- The device's hostname or IP address : IP Address of your Raspberry Pi device
- The user name to log into the device:
root
- The authentication type: Select Password
- The user's password:
rootme
- The name to identify this configuration:
- Click Next followed by Finish
- The Device Test should finish successfully. If not, go back and check your network connectivity and other settings.
Setting up your toolchain
- In Qt Creator, select Tools -> Options-> Build & Run and Tool Chains tab
- Select Manual and click on Add
- In the dropdown menu, select GCC
- Then select GCC, as it appears below Manual and specify the Compiler path: as /opt/qtonpi/bin/armv5tel-qtonpi-linux-gnueabi-gcc and Debugger: as /opt/qtonpi/bin/armv5tel-qtonpi-linux-gnueabi-gdb
- Click on Apply and select OK
Selecting Qt 5 for Raspberry Pi
- In Qt Creator, select Tools -> Options-> Build & Run and Qt Versions tab
- Select Manual and click on Add…
- Then select file located in /opt/qt5/bin/qmake and click on Open
qmake
- Click on Apply and select OK
Qt creator might indicate "Qt version 5.0.0 for Desktop", which can be safely ignored for now.
Hello QtonPi!
QtonPi App SDK comes with
hello-qtonpi
App to get you started with Qt 5, which is located here,
qtonpi-X.Y/ └── app-sdk/ └── hello-qtonpi.tar.bz2
Feel free to extract the tarball anywhere in your home directory.
$ pwd /home/rajiv $ tar jxvf qtonpi-0.2/app-sdk/hello-qtonpi.tar.bz2 hello-qtonpi/ hello-qtonpi/main.cpp hello-qtonpi/hello-qtonpi.pro […]
Next launch Qt Creator (if you don't already have it running!), and do the following.
- Select File -> Open File or Project…, navigate to and click Open
hello-qtonpi/hello-qtonpi.pro
- When you do this first time, Project Setup Dialog appears for the Target Setup, with sane defaults. Select Finish
- In the side-bar, select Projects mode or press Control-5, and go into Run Settings
- In the Deployment section, click on Add and select Deploy to Remote Linux Host
- In Device Configuration you should see Raspberry Pi (Default)
- In the Run section, click on Add and select hello-qtonpi (on Remote Generic Linux Host)
- At this point, you should be all set to roll. In the side-bar, select Edit mode or press Control-2
- To build your project, select Build -> Build All. This should build the binary using QtonPi toolchain.
- Next step would be deploy your binaries onto your Raspberry Pi Device. To do this, select Build -> Deploy All. Your Raspberry Pi device should now have executable in
hello-qtonpi
directory./root/hello-qtonpi
- To run your newly minted App, select Build -> Run*, and at this point you should see your Qt 5 Qt Quick App running on your display
Now that you've a working QtonPi SDK, next step would be to learn more about Qt Quick. Following are some resources to help you get started.
Uninstall
Release 0.x of QtonPi SDK consists of three parts, which you'll need to uninstall separately.
- Qt Creator
- Qt 5
- QtonPi Toolchain and Sysroot
Note - If you are updating between 0.x releases, you do not have to uninstall Qt Creator each time.
Qt Creator
In order to uninstall Qt Creator, go to the
bin/
directory in your Qt Creator installation and execute the
uninstall
command.
$ pwd /home/rajiv $ cd qtcreator-2.4.1/bin $ pwd /home/rajiv/qtcreator-2.4.1/bin $ ./uninstall
Toolchain and Sysroot
Uninstalling the toolchain and sysroot is as simple as removing the
/opt/qtonpi/
directory.
$ sudo rm -rf /opt/qtonpi/
Should take care of it!
Qt 5
Likewise, to uninstall Qt 5, remove
/opt/qt5/
directory.
$ sudo rm -rf /opt/qt5/