ARMQtonEmbedded

  • Launchpad Entry: arm-m-qt-on-embedded

  • Created:

  • Contributors: Alexandros Frantzis

  • Packages affected:

Summary

Bring QT Embedded to the archive. Develop a first proof-of-concept UI without X using QWS and maybe make a first beta build of lighthouse with example applications available that would allow to use accelerated OpenGL/OpenGL ES backends.

Rationale

In some devices with limited resources (memory, screen real-estate) and no need for complicated window handling it is both unnecessary and wasteful to use the X Window System for graphics. Vendors are explicitly interested in using X-less setups for mobile phone applications.

Currently the ubuntu-on-arm platform doesn't offer a UI solution that doesn't require an X server. Although there are other choices to support such and effort (eg GTK+, EFL), QT seems to be gaining ground in the embedded world as the toolkit of choice. QT applications need only minimal porting to run on QT Embedded (in many cases no porting at all). QT is well-established, mature, supported and it is certainly worth making its embedded variant available on the ubuntu-on-arm platform.

User stories

  • A vendor wants to use the ubuntu-on-arm platform to create a small ARM based embedded solution for controlling an industrial application. The system has limited memory and its visual interface consists of a medium-sized touchscreen. The vendor uses QT Embedded (QWS) with the LinuxFB device to provide an elegant UI with a very small overhead.
  • A mobile phone vendor wants to base its product on ubuntu-on-arm. The device has limited resources so the vendor opts not to use an X server. However, he wants to be able to provide a rich user experience. He uses the QT Embedded toolkit (either QWS or Lighthouse, in the future) to create an elegant UI.

Design

  • Package QT/embedded and provide sample applications and/or a proof-of-concept UI.

Implementation

  • QWS
    • QT/Embedded is API but not ABI compatible with QT/X11, so QT/Embedded libraries need a different SONAME!

      • Talk to upstream about changing SONAME.
    • Package a build of QT/Embedded with different SONAME than Qt/X11 (Mostly done: see Specs/M/ARMQtonEmbedded/Guide)

    • Provide a sample package set of QT applications built against Qt/Embedded.
    • Investigate and write a new spec in the future about a proof-of-concept UI using Qt/Embedded: TODO
    • Evaluate the performance of the stack.
  • Lighthouse
    • Needs OpenKODE (includes OpenGL ES) for 3D acceleration
      • Investigate the state of OpenKODE on linux (generic portions eg OpenKODE core).
      • Check with vendors about the state of OpenKODE component implementations on their side (mainly EGL/OpenGL ES).
    • Track lighthouse release schedule (probably Q1/2011).

Test/Demo Plan

  • Run the sample applications on our own boards without X.

Unresolved issues

BoF agenda and discussion

Agenda Items

  • x-less qt
  • hardware requirements
  • cross compiling
  • qt lighthouse
    • integration in the distro/ubuntu
  • validation apps and environments for X lesss environments

Qt on Embedded

  • QWS - qt windowing system
  • needs to be compiled with -embedded armv6 to get atomics
  • cross compiling works without most of the system libs ... can use internal in-source
    • using latest in-source
  • need an window manager outside of EGL
  • potential window managers:
    • DirectFB, test light (for testing), Android port, OpenKODE
  • hw accel is mostly about saving batteries -- not speed only; CPU
  • qws would be available, but doesn't have hardware acceleration
  • qws not packaged in the archive
  • probably better to directly go for lighthouse
  • input handling
    • touchscreens etc. is done through (window manager??) plugin
    • support for evdev available -- not optimal for multi processes
  • Raster engine in the QWS is for general CPU (not GPU) - can benefit from NEON
  • Qt 4.8 Q1 2011 - might be delayed
  • go to gitorous and search for lighthouse - http://gitorious.org/+qt-developers/qt/lighthouse

  • Timeline/Schedule for Lighthouse: targetted for 4.8 (probably Q1/2011)
  • QT Embedded is not binary compatible with X11 -> requires to be recompiled

  • currently QT is build with single precision floating point -> could be changed, but would require rebuild

Action Items

  • Jorgen to publish the slides link
  • Jorgen to get info about available window managers
  • understand what to package (tagged or tarballs)
    • based on 4.7 branch
  • jorgen and asac to discuss window manager options for the "experiment"


CategorySpec

Specs/M/ARMQtonEmbedded (last edited 2010-06-18 17:42:17 by afrantzis)