This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to get started with Qt development? Ubuntu cross-compile? Qmake from DM8168 target?

I am familiar with Qt and Qt Creator development under Linux but have not used it for ARM targets.  Can someone please point me to a wiki or tutorial to get started developing ARM apps using Qt?

I would prefer to cross-compile from a Ubuntu x86 host for management of software releases.   However, if cross-compile development environment setup is too time consuming then I will go native for now.

Environment:

  • Target is a Z3-DM8168-RPS-LITE board which is functionally very similar to the DM8168 EVM.  
  • Ubuntu 10.04.4 LTS host configured to tftp boot and NFS serve the DM8168 file system
  • Using EZSDK  5.05.01.04
  • CodeSourcery G++ Lite is installed.
Thanks in advance,
-Ed
  • Hello,

    You could check here: /ti-ezsdk_dm816x-evm_5_05_01_04/docs

    DM816x_EZ_Software_Developers_Guide.pdf

    chapters: 3.4 Running the Qt/Embedded examples and 5.4 Creating a Qt/Embedded application.

    I hope this to help you.

    Best Regards,

    Margarita




  • Thank you Margarita!

    I had been reading various TI wiki documents in various states of completeness on how to build Qt Embedded from source.  Then I learned I would also need to build the TI graphics SDK, support for OpenGLES and tslib (touchscreen) and it started to appear that this was going to be more complicated than building the Linux kernel and it was overwhelming me. The documented you pointed me to is just what I needed at this point.

    Thanks again,

    -Ed

  • Thank you Vladimir for the helpful links.  I understand the Qt / Embedded apps use the frame buffer to render.  This appears to work great on the HDMI output of my Z3-DM8168 board I am using.

    However there are some useful X11 packages under the Angstrom feed I would like to use.  Is it a difficult challenge to add X11 support to a DM8168 EVM board running the TI DM816x EZSDK Arago?

    src/gz angstrom-base http://www.angstrom-distribution.org/feeds/2011.03/ipk/glibc/armv7a/base/

    Thanks,

    -Ed

  • Hi, I am using DVR-RDK 2, and the development board is Ugworks DVR-RDK board. My question is:

       (1)  where can I start to do Qt works on DVR-RDK ?

       (2) Are there any demos or docs in DVR-RDK 2 for Qt UI design ?

         Thanks

  • Hello ,

    New thread can be opened about  DVR RDK.

    Best Regards,

    Margarita

  • Hi,

    If you have a UD Works DVR board, then you can get the DVR GUI(using Qt) source code from them. This GUI is implemented using Qt, and complete integration to DVR Use Case has been done. Please check the 'dvrapp' folder in the DVRRDK release for GUI source code.

    If you have TI software license(my Registered Software), then you can download the latest software from www.ti.com/myregisteredsoftware too

    Regards,

    Arun

  • Hi Ed,

    EZSDK and Arago respectively are minimalistic systems by design and there is no official support for X11 by TI as you know (http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/p/234417/836046.aspx). I am not sure that it would be easy to use these packages from Angstrom, I think Angstrom builds with bitbake.

    To get X on this platform should be relatively hard, I personally haven't tried it and I am not aware of someone that has achieved that, but shouldn't be impossible. Unofficially, I think you should start with cross-compiling the X for ARM following guide like this one: http://bhagwat-masalkar.blogspot.com/2009/07/cross-compiling-x11-for-arm-board.html (this one is just an example, try to search for similar tutorials for more details), you would likely face some problems, try to handle them one by searching the Internet. Also preferably stick to the toolchain used for EZSDK. Feel free to post your progress.

    Thank you.

    BR

    Vladimir

  • Hi Arun,

    Thanks for the clarifications.

    BR
    Vladimir

  • Hi Vladimir,

    Once again thank you very much for your patient and informative explanations.

    EZSDK and Arago respectively are minimalistic systems by design and there is no official support for X11 by TI as you know (http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/p/234417/836046.aspx). I am not sure that it would be easy to use these packages from Angstrom, I think Angstrom builds with bitbake.

    For non-X11 packages, for example openssh and java the Angstrom feed /2011.03/ipk/glibc/armv7a/base/ works well on the DM8168.  Note that I am using the Angstrom glibc feed.  Packages from the newer feed use embedded eglibc and do not seem to want to automatically install on the DM8168.  No idea why.  Perhaps a eglibc run-time lib dependency?

    I have not attempted to install the base X11 packages from the Angstrom feed on the DM8168.  Even if I did install then then I assume X11 output on DM8168 HDMI is not going to connect and work auto-magically.  My Linux knowledge of how X11 connects to an output device is lacking.

    To get X on this platform should be relatively hard, I personally haven't tried it and I am not aware of someone that has achieved that, but shouldn't be impossible. Unofficially, I think you should start with cross-compiling the X for ARM following guide like this one: http://bhagwat-masalkar.blogspot.com/2009/07/cross-compiling-x11-for-arm-board.html (this one is just an example, try to search for similar tutorials for more details), you would likely face some problems, try to handle them one by searching the Internet. Also preferably stick to the toolchain used for EZSDK. Feel free to post your progress.

     

    Thank you for the article CROSS COMPILING X11 FOR ARM BOARD.  I may research X11 a bit to try and understand how it connects to an output device.  Or perhaps just go ahead and try installing the X11 packages from Angstrom feed and just see what happens.

    Thanks you for your time and assistance,

    -Ed

  • Hi Arun:   

         For now, I bought and now using a DVR board which is similar with UD Works DVR board, it is based on DVR-RDK 2.0, and I can not find any "dvrapp" folder in the Cross Compiler. However, there is a demo that shows Qt based UI. And the salesman told me they would not provide "dvrapp" folder and the source code for this Qt based demo.  

        And I had bought an UD Works DVR board 3 weeks ago, but did not got the board for now, so I can not check whether there is "dvrapp" folder.   

         My questions are:    

          (1) Are you sure there is "dvrapp" folder in DVRRDK release with the UD Works DVR board?    

         (2) How can I get a TI software license? I bought a DM8168-evm board about 3 weeks ago also, therefore, can I apply for the license for free?    

     

    Thanks

  • Hi Vladimir,

         Do you mean there are many workd to do to implement Qt UI based on EZSDK?

         Are there any demos on the DM8168-evm + EZSDK env..

         Thanks

  • Hi XIONG,

    I was talking about X11.

    Qt is supported on this platform. Check the my first post in this forum thread.

    For examples check this folder in the file system of your board:

    /usr/bin/qtopia/examples/

    BR

    Vladimir

  • A possibly easier path for adding X11 support to the TI Arago EZSDK may be to use the Angstrom repo.  Last week I had x-terminals mostly working on a DM8168 running Arago by installing a bunch of "X" packages from the Angstrom repo. 

    The only problem was I could not figure out how to configure input for mouse and keyboard.  My USB mouse and keyboard worked fine with the Qtopia demo Qt apps.

    Anyway after running startx I had 3 xterm terminals and a xclock app displaying on my HDMI output.

    Opkg Notes from my personal wik said:

    Package Manager (opkg)

    Configure DNS

    On the TI EZSDK /etc/resolv.conf is a symbolic link to /var/run/. Changes to this file will not persists.

    Workaround

    Remove symbolic link, create a new /etc/resolv.conf and add Google DNS servers:

    File: /etc/resolv.conf

    nameserver 8.8.8.8
    nameserver 8.8.4.4
    

    Using Angstrom Feeds

    Angstrom has many packages for many architectures and machines. Search here:

    Edit file: /etc/opkg/opkg.conf

    # Must have one or more source entries of the form:
    #
    #   src <src-name> <source-url>
    #
    # and one or more destination entries of the form:
    #
    #   dest <dest-name> <target-path>
    #
    # where <src-name> and <dest-names> are identifiers that
    # should match [a-zA-Z0-9._-]+, <source-url> should be a
    # URL that points to a directory containing a Familiar
    # Packages file, and <target-path> should be a directory
    # that exists on the target system.
    
    # Try using Angstrom feed with Z3 DM8168
    # Use glibc with Arago
    src/gz angstrom-base http://www.angstrom-distribution.org/feeds/2011.03/ipk/glibc/armv7a/base/
    

    After edit and save:

    opkg update
    

    List Package Dependencies

    opkg depends -A openssh
    openssh depends on:
            openssh-scp
            openssh-ssh
            openssh-keygen
            update-rc.d
            openssh-sshd
    

    Install a Package

    root@dm816x-evm:~# opkg install openssh
    
    root@dm816x-evm:~# opkg install openjdk-6-jdk --force-depends

    -Ed

  • Hi Ed,

    It is great that you've managed to enable the X packages from Angstrom. Congrats. Also thank you very much for the feedback.

    About the mouse and the keyboard: You could check the binary prints from your input events (for example cat /dev/input/mice). I guess that you will see them. If  that is the case, probably you have to register the input devices following a guide like this one:

    https://wiki.archlinux.org/index.php/Xorg#Input_devices

    That is what I found, maybe it is not the most suitable one.

    BR

    Vladimir

  • Hi Vladimir,

    Thanks.  I am X11 ignorant.  I really do not know what I am doing.  I just kept installing packages with x11 and xorg in the name and fiddling with xorg.conf file until I started seeing display output which surprised me. ;-)

    My USB mouse and USB keyboard input work fine with the Qt apps.  However I could not figure out the trick of connecting them using an xorg.conf file.  It did not not seem to like InputClasss declarations in the xorg.conf.  I created a new file named /etc/X11/xorg.conf.d/50-mouse-kybd.conf.   I was never really sure if this config file was being read at startx.   I should have put a deliberate error in it and see what happened.

    File: /etc/X11/xorg.conf.d/50-mouse-kybd.conf

    Section "InputClass"

    Identifier "Mouse-evdev"
    Option "Emulate3Buttons" "false"
    MatchIsPointer "true"
    MatchDevicePath "/dev/input/mouse*"
    Driver "evdev"
    EndSection
    Section "InputClass"
        Identifier             "evdev keyboard catchall"
        MatchIsKeyboard        "on"
        MatchDevicePath        "/dev/input/event*"
        Driver                 "evdev"
    EndSection

    File: /etc/X11/xorg.conf

    Section "Monitor"
        Identifier "Configured Monitor"
    EndSection
    Section "Screen"
        Identifier "Default Screen"
        Device "Configured Video Device"
        #Limited by SGX?
        DefaultDepth 16
    EndSection
    Section "Device"
        Identifier "Configured Video Device"
        Driver "fbdev"
        Option "fb" "/dev/fb0"
    EndSection
    It would be nice to create a procedure to setup and configure X11 using the Angstrom guide.  I think I have a lot more learning to do about X11. :-)
    -Ed