Graphics for Embedded Linux

Increasingly, embedded systems incorporate graphical displays and touch screens to create a rich man-machine interface. Linux, of course, has the capability to display complex graphics as anybody who has seen Linux running on a desktop PC will know.

But, graphical environments are memory-hungry and can easily eat up hundreds of MB of RAM and storage.

This course describes the architecture of graphical environments on Linux, especially the X windows system, and shows how to create optimised systems that are suitable for embedded use. Topics include X servers, frame buffers, programming environments, the GTK+ and Qt widget libraries.

EL-301
3 days
Please contact Feabhas (available for onsite delivery only)
pdf download

Course Outline

 

Linux and Graphics

  • Types of display hardware
  • Frame buffer drivers
  • Input devices: keyboard, mouse, touch-screen

The X Window System

  • The X.org project
  • Components of X
  • X modules
  • Kdrive (Micro X)

Building X

  • Selecting components
  • Cross-compiling
  • Installing X on the target

Running X

  • Configuring display and input devices
  • Fonts: bitmapped vs scaled
  • Anti-aliasing
  • Networked access to X servers
  • Testing and debugging common problems

Window Managers

  • The role of window manager: do you really need one?
  • Examples: twm, ICE, Matchbox

Writing Graphical Applications

  • Different layers, widget sets
  • Low-level libraries: xlib
  • Xt and the Athena widget set
  • The Motif widget set
  • The GTK+ widget set
  • The Qt widget set
  • Nano-X

Programming with Xlib

  • Description of Xlib
  • Example program using Xlib
  • What Xlib can and can’t do!

Programming with GTK+

  • GDK, Glib and GTK+
  • Using Glade to design application layout
  • Writing GTK+ applications in ‘C’
  • Other language bindings

Programming with Qt

  • Qt Objects
  • Event handling: signals and slots
  • Using Kdevelop for application design
  • Writing Qt programs in C++
  • Other language bindings

Living without X

  • Other ways to program graphical applications
  • Qt Embedded
  • GTK+ Direct

Course Overview

 

A three-day course, providing hands-on experience of configuring and programming graphical environments on Embedded Linux. Practical sessions use the Nokia 770 web pad.

Course Objectives:

After completing the course attendees will:

  • Understand how to include complex graphical interfaces in small memory embedded systems
  • Be able to cross-compile and load X on a typical target board
  • Understand the architecture of X, frame buffers and window managers
  • Have an overview of graphics programming libraries

Prerequisites:

  • Good knowledge of ‘C’ or C++
  • Some knowledge of Linux is an advantage

Who Should Attend:
Application programmers and software engineers who need to build a graphical user interface on Linux

Duration:

  • Three days

Course Materials:

  • Delegate Handbook

Related Courses: