1 Embedded Linux System development © Copyright 2004-2008, Free Electrons Creative Commons Attribution-ShareAlike 2.5 license

Slides:



Advertisements
Similar presentations
Windows solution for linux
Advertisements

Chapter 3: Software Basics Section I: Preparing to Use Technology.
Win8 on Intel Programming Course Win8 for developers, in detail Cédric Andreolli Intel.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Chapter 6A Operating System Basics PART II.
Media Player for the i.MX31 Advanced Embedded Systems Architecture Class Project May 14, 2011 Rafael Castro Ryan Ugland Carlos Cabral.
Android Platform Overview (1)
Internet of Things with Intel Edison Presentation Paul Guermonprez Intel Software
Mobile Application Development
Linux GUI X-Windows System. X-Windows System A stable and extremely powerful GUI system that provides a complete Client/Server framework. The X-org foundation.
SM3121 Software Technology Mark Green School of Creative Media.
Chapter 2: Exploring the Desktop The Complete Guide to Linux System Administration.
An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying.
To be Presented by, T.Sathishkumar [11mw07] 1. Synopsis Introduction Version Features License An Application Development Demo Possibilities Advantages.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Linux Operations and Administration
Operating Systems Operating System
Win8 on Intel Programming Course The challenge Paul Guermonprez Intel Software
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
02/2008 MATRIX VISION GmbH 1 Presentation The intelligent camera and Image processing sensor.
Introduction to Embedded Software Development School of software Engineering Introduction to Windows CE.
Overview Embedded Linux Graphics Typical desktop Linux graphics stack SystemRAMDisk X Window System5MB16MB GNOME14MB95MB KDE11MB96MB Mozilla12MB95MB.
Chapter 8 Browsing and Searching the Web. Browsing and Searching the Web FAQs: – What’s a Web page? – What’s a URL? – How does a browser work? – How do.
An Introduction to Linux Name: Haixin Wang ID :
Copyright © by Shayne R Flint Simplified Web Application Development Shayne R Flint Department of Computer Science Australian National University.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Created By. Jainik B Patel Prashant A Goswami Gujarat Vidyapith Computer Department Ahmedabad.
Mobile Application Development with ANDROID Umang Patel(6537) LDCE.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
GTK+
By Adam Reimel. Outline Introduction Platform Architecture Future Conclusion.
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
BY : MS ARTI B BAVANE. INTRODUCTION Formed on February 15,2010. Jointly found by two pillars Intel and Nokia by joining their existing open source projects.
CHAPTER 7 Operating System Copyright © Cengage Learning. All rights reserved.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Embedded Linux Conference.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Free Electrons Introduction.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Embedded Linux system development.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com The GRUB bootloader Michael.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Scratchbox The Scratchbox.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com SSH Thomas Petazzoni Free.
1 Kernel development with VirtualBox © Copyright 2009, Marco Stornelli Creative Commons Attribution-ShareAlike 3.0 license 9/30/2016 Linux development.
The Basics of Android App Development Sankarshan Mridha Satadal Sengupta.
The GRUB bootloader Michael Opdenacker Thomas Petazzoni Free Electrons
DISCOVERING COMPUTERS 2018 Digital Technology, Data, and Devices
What is DirectX? DirectX is built by Microsoft as a collection of API’s (Application Programming Interfaces) for the purpose of multimedia processing.
Introducing the Windows Mobile development
Development Environment
Ottawa Linux Symposium 2007
Operating System & Application Software
Embedded Linux Conference Europe
Lecture 1-Part 2: Operating-System Structures
Using USB gadget drivers
Computer Software Digital Literacy.
Porting U-boot Michael Opdenacker Free Electrons
Mobile App Development
Why Nokia aquired Qt by Knut Yrvin at Community One, Apr 15 - Oslo
MOBILE DEVICE OPERATING SYSTEM
The blob bootloader Thomas Petazzoni Free Electrons
Directions: GO THROUGH THE FOLLWING SLIDES. Make sure you have quizlet cards for all the vocabulary. Study the terms.
Contents: Introduction Different Mobile Operating Systems
Embedded Linux Conference - April 2009
5 SYSTEM SOFTWARE CHAPTER
Chapter 2: Operating-System Structures
Mobile Application Development with MeeGo™ - Programming with SDK
OPERATING SYSTEMS.
Directions: GO THROUGH THE FOLLWING SLIDES. Make sure you have quizlet cards for all the vocabulary. Study the terms GCFLearnFree website “Computer Basics”:
Chapter 2: The Linux System Part 1
5 SYSTEM SOFTWARE CHAPTER
Digital Literacy 1.00 Computer Basics
Overview of System Development for Windows CE.NET
Presentation transcript:

1 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Embedded Linux System Development Embedded Linux System Development Thomas Petazzoni / Michael Opdenacker Free Electrons Created with OpenOffice.org 2.xOpenOffice.org

2 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Rights to copy Attribution – ShareAlike 2.5 You are free to copy, distribute, display, and perform the work to make derivative works to make commercial use of the work Under the following conditions Attribution. You must give the original author credit. Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under a license identical to this one. For any reuse or distribution, you must make clear to others the license terms of this work. Any of these conditions can be waived if you get permission from the copyright holder. Your fair use and other rights are in no way affected by the above. License text: sa/2.5/legalcodehttp://creativecommons.org/licenses/by- sa/2.5/legalcode © Copyright Free Electrons Document sources, updates and translations: electrons.com/training/devtoolshttp://free- electrons.com/training/devtools Corrections, suggestions, contributions and translations are welcome!

3 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Embedded Linux system development Tools for the target device Graphical toolkits

4 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Nano-X / Microwindows License: Mozilla Public License. Allows proprietary applications. Very lightweight (< 100 KB) portable graphics library, running on Linux kernel framebuffer, X / Windows, SVGAlib and a few other systems. 2 APIs (C language) Win32 graphics device API: allows easy porting of Windows or WindowsCE programs. Nano-X API: small X server with Xlib-like API API documentation, FAQs and tutorial on the project page. Limitation: lack of skin support.

5 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 MiniGUI License: GNU GPL Need to get a commercial license to create proprietary software Programming language: C Popular and mature UI toolkit supporting Linux / uClinux, eCos, some proprietary real-time operating systems and also Win32. Supported architectures: x86, arm, ppc, m68k, mips Looks popular in devices made in Asia. Size: approx. 700 KB Introduction:

6 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 MiniGUI screenshots Phone Industrial control Browser Set top box

7 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 FLTK - Fast Light ToolKit License: LGPL Pronounce it “fulltick” Cross-platform (Unix X11, Windows and MacOS X) C++ GUI toolkit Modern but without the bloat. Supports 3D graphics (OpenGL). Applications can be prototyped in minutes with the FLUID builder Many applications and examples:

8 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 FLTK screenshots flPhoto Gmsh Spiral Synth HTMLDOC

9 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 SDL - Simple Directmedia Layer License: LGPL Cross-platform multimedia library (similar usefulness as DirectX) Provides low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. Originally created for writing games. Now also used in embedded systems. Many libraries, applications and demos available. Native C API - Bindings for other programming and scripting languages. Details in

10 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 SDL screenshots Pig: a demo arcade game lines.QEMU: CPU and system emulator

11 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 DirectFB License: LGPL User space library (C language) developed for the special requirements of embedded devices. Small, powerful, flexible and easy to use. Hardware accelerated graphics support. Software fallbacks for operation not supported by the underlying hardware. Input device handling and abstraction. Windowing system with support for translucent windows. Many applications and demos available. Details in

12 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 DirectFB screenshot Demo of the new TextureTriangles() method using existing windows as textures (updated in real time)

13 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Qtopia Core Formerly Qt Embedded License: GPL Need to get a commercial license to create proprietary software. Language: C++. Same API as Qt Desktop. Easy to port applications. Framebuffer based (instead of X server), with its own windowing system. Customizable look and feel Completely modular to reduce size and memory footprint. Size: from 1.1 to 3 MB (x86). Integrates with several Java VM. Same look and feel as native applications. Tools to test and develop on the desktop.

14 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Qtopia License: GPL (same as Qt Embedded) Full set of Qtopia Core applications for PDAs (PDA Edition) or phones (Phone Edition) Featured applications: PIM, productivity, , games, media player... Phone interface in the Phone Edition. Synchronization with Qtopia Desktop or MS Outlook. Community, developer resources (tutorials), forum and device list available on

15 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Graphical environment and apps: Opie Open Palmtop Integrated Environment, fork from Trolltech's Qtopia License: GPL No X server, framebuffer based Comprehensive software suite for PDAs: Personal Information Management (Contacts, Calendar...) Multimedia: graphics, sound and video players Device configuration interface Misc: games, , and much more Theme based interface. Attractive icons and interface. Lacks a maintained web browser (old Konqueror port available)

16 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Opie screenshots

17 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 GTK License: LGPL The exact same toolkit as on the desktop Size: a bit bigger than the others (approx 4-5 MB on glibc / arm ) C native API. Bindings for many other languages (e.g. gtkmm for C++) Usually run with an X server (TinyX / kdrive in embedded systems). Also supports DirectFB (no X server). Based on Cairo for vector graphics since version Issue for systems with no floating point unit, as a few parts of Cairo rely on floating point computation. Things are improving, this issue is not completely solved yet (Apr status).

18 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Graphical environment and apps: GPE GPE = GPE Palmtop Environment, based on the GTK+ toolkit Uses the framebuffer X server from Doesn't look heavy. Easy to display applications on a remote (PC) screen. Comprehensive set of tools for PDAs: PIM, , web browser, multimedia, configuration tools, LinPhone... They also have a phone edition: On screen handwriting recognition Existing GTK applications can be run with few or no changes

19 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 GPE screenshots

20 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Graphical environment and apps: Emacs A complete environment, user interface and application set for your embedded systems! License: GPL Supports multiple windows Rich application set: mail and news reader, web browser, games, advanced calendar, file browser, development environment, shell... Advanced and powerful scripting language. Extensible through script plug-ins. Even includes a text editor! What else would you need?

21 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Use a browser based GUI! Use the Dillo browser (or a lightweight browser based on WebKit ) as your graphical interface! Build it without menus, navigation and URL controls 1 fullscreen application: no window manager needed Extremely fast to develop and deploy! No interface programming Very lightweight solution too. Example:

22 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Graphical toolkits - Summary Licenses matter here! Toolkits allowing proprietary applications Nano-X / Microwindows, FLTK, SDL, DirectFB, GTK GPL toolkits (commercial license required for proprietary apps) MiniGUI, Qt Embedded Graphical environments and applications Qtopia, Opie, GPE Web browser based interfaces

23 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Distributions Distribute ready to use root filesystems. Can be used by any binary compatible platform. Example: running Familiar Linux on a mobile phone! Can be reused even on an early development phase. No need to create your root filesystem from scratch! Easy to upgrade, remove or add applications through binary packages.

24 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Embedded distributions (1) Familiar: Targets PDAs and webpads (Siemens Simpad...) Binaries available for arm little endian. Rockbox: A distribution for portable media players. Supports a wide range of players and open to new ones!

25 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Embedded distributions (2) Poky: from OpenedHand GNOME-based Linux distribution for mobile devices. Includes a Sato graphical application framework (GTK based). Can be tried with QEMU.

26 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Embedded distributions (3) Emdebian: Supports all embedded platforms Leverages standard Debian package descriptions and sources, but adapts them for embedded systems: uClibc usage, reduced package size (no documentation), removed dependencies, configured with less options... Packages not available yet, but makes it possible to build packages using Debian utilities (such as dpkg- cross ) Still lacks momentum. Contributors are welcome!

27 Embedded Linux System development © Copyright , Free Electrons Creative Commons Attribution-ShareAlike 2.5 license 9/21/2016 Ready-made root filesystems Very useful to start porting work. Contain C library, and minimum apps. uClibc i386, arm(eb), mips(el ), i386, ppc, sh4 Images where generated by Buildroot and include a native gcc toolchain ARM Include kernel image, bootloader, and rootfs ( cramfs or packages). Other architectures If some readers know more useful links, they are welcome!