Tizen V2.3 Graphics & UI Frameworks

Total Page:16

File Type:pdf, Size:1020Kb

Tizen V2.3 Graphics & UI Frameworks !1 105 Tizen v2.3 Graphics & UI Frameworks Embedded Software Lab. @ SKKU 内容 !2 105 • EFL(Enlightenment Foundation Library) – EFL Features – Ecore – Evas – Edje – Elementary – Cserve2 • Window Systems – X Window System – Wayland • DALi 3D Engine Embedded Software Lab. @ SKKU !3 Tizen Graphics & UI Frameworks 96 • UI 框架 – 实现交互型 GUI的模块 – EFL(Elementary/Ecore), OSP, GTK, Qt – Input Service Framework(ISF), Voice Framework • 图像库 – 渲染图像对象的模块 – Evas, Cairo, OpenGL ES, EGL • 窗⼝系统 (Window Systems) – 管理窗⼝和 frame缓存的模块 – X Window System, Wayland Embedded Software Lab. @ SKKU !4 Tizen Graphics & UI Frameworks 96 • Frameworks for UI of core Deprecated applications & web applications (Bada App FW) Embedded Software Lab. @ SKKU !5 96 EFL (Enlightenment Foundation Library) Embedded Software Lab. @ SKKU !6 Enlightenment 96 • 起源于桌⾯窗⼝管理器 – Bodhi Linux的默认窗⼝管理器 Embedded Software Lab. @ SKKU !7 Enlightenment Foundation Library 96 • ⼀组⽀持 Enlightenment的库 – Enlightenment 0.17(E17) • 组件由函数区分 – Event loop: Ecore – Rendering engine: Evas – UI: Edje, Elementary, … – UI builder tools: Enventor, Eflete, ELM Theme Editor • 当前的 EFL – Tizen 图形 /UI框架的核⼼组件 – 26% 的代码是 E17, 其他的是 EFL Embedded Software Lab. @ SKKU !8 EFL in Tizen 96 Core Applications Elementary Input Ecore Service Edje Evas Framework & Eet Voice Eina freetype2 fontconfig Cairo OpenGL ES/EGL Framework X Window System Linux Kernel Frame Buffer Input Devices H/W Legend Applications Window System Graphics EFL & fonts ISF& Voice FW H/W kernel / Frame Buffer/ Input Devices Embedded Software Lab. @ SKKU !9 Immediate vs. Retained 模式 (1/2) 96 • 即时模式图形系统 – 应⽤直接重新绘制⽆效的部分 – 当需要新的 frame时,应⽤重新发出绘制请求描述整个场景 – GTK+ 3, GDI, GDI+ Application 1. Invalidate 2. Expose GTK+/GDK-X11 3. Drawing Window System Graphics Card Frame Buffer for Screen Embedded Software Lab. @ SKKU !10 Immediate vs. Retained Mode (2/2) 96 • 保留模式图形系统 – 图形系统负责渲染应⽤给的绘制对象 – 应⽤将绘制对象传递给图形系统 – Evas, GTK+ 4(Clutter), WPF Application Evas objects Expose X Window System Evas Rendering Engine (Graphics system) Graphics Card Framebuffer for screen Embedded Software Lab. @ SKKU !11 为何在 Tizen中使⽤ EFL(1/3) 96 • ⾼性能 Desktop Memory – 保留模式图形系统 Environment Used – 在⼀般智能机可达 60fps+ (MiB) Enlightenment 83.8 • 适应低端硬件 0.18.8 – Small memory, no swap, no GPUs LXDE 0.5.5 87.0 – OpenGL 不适合于所有的情况 XFCE 4.10.2 110.0 LXQt 0.7.0 113.0 • Texture保持了速度,但耗费内存 MATE 1.8.1 123.0 • ⽀持 HW rendering Cinnamon 2.2.13 176.3 – OpenGL ES GNOME3 3.12.2 245.3 KDE 4.13.1 302.6 – SIMD vector(MMX, Neon) Unity 7.2.0.14 312.5 Embedded Software Lab. @ SKKU !12 为何在 Tizen中使⽤ EFL(2/3) 96 • 多样的后端引擎 – X11 (~Tizen 2.2.1), Wayland (Tizen 3.0~) – Direct Frame Buffer, DRM, Memory buffers, PS3 Native, Windows (GDI & DirectDraw), … • UI可扩展性 – 同样的布局和资源在不同的分辨率 (WVGA ~ XQXGA)下 Scale factor: 0.6 0.8 1.0 Embedded Software Lab. @ SKKU !13 为何在 EFL中使⽤ Tizen(3/3) 96 • GUI, 逻辑分离 • 主题 – A preset package containing graphical appearance details – 包含图形外观细节的内置包 • 绑定的语⾔ – 基本上基于 C – EFL 也可与 Javascript, C++, Python, Ruby, Perl 绑定 … – Eo: Generic object model Embedded Software Lab. @ SKKU !14 EFL 缺点 96 • ⼊⻔障碍 – 冷僻的开发⻛格 – 缺少⽂档,开发者 • 没有基于对象的实现 – C-based – Eo计划正在进⾏中 • 不完整的 C++⽀持 – Eolian based E++ project ongoing • 不⽀持线程安全 Embedded Software Lab. @ SKKU !15 Tizen Rendering Path 96 3D App EFL App. Composite Window OpenGL ES/ EFL Manager EGL EVAS OpenGL ES/ OpenGL ES/ EGL EGL Video App. X window server EFL MM FW EFL win Textures OpenGL Frame Buffer ES win Video win Legend 3D App. EFL App. Multimedia App. OpenGL ES/EGL Configurable Enable/disable Process Texture Mem. Rendering pipeline path; rendering data flow Texture from Pixmap Embedded Software Lab. @ SKKU !16 Rendering Path on SW Backend 96 Elementary Edje Ecore Evas Ecore X Evas software backend LCD xlib controller X shared Mem. Update Frame X Server window areas buffer 60Hz Embedded Software Lab. @ SKKU !17 Rendering Path on GLES Backend 96 Elementary Edje Evas Ecore Evas OpenGL ES backend Ecore X OpenGL ES EGL for X OpenGL ES H/W LCD controlled by xlib EGL controller back front Update Double buffer X Server Frame window area buffer 60Hz /dev/fb1 Embedded Software Lab. @ SKKU !18 EFL组件: Core 96 • Ecore (E + Core) – 包含便利模块的事件环路库( Event Loop Library) • Evas (E + canVAS) – 画布 &渲染库 • Edje – 复杂图像设计 &布局库 • Elementary – 控件集 Embedded Software Lab. @ SKKU !19 EFL 组件 : 其他 96 • Eo • Edbus – ⽤于绑定其他语⾔的通⽤对 – Dbus的包装 象模型 • Emotion • Eina – 影像/⾳频播放库 – 数据结构库 • Eio • Eet – 异步I/O – 数据编解码器和存储 • Eeze • Efreet – Udev 硬件监测 – Freedesktop.org 标准⽀持 • Ethumb – 缩略图& cacher Embedded Software Lab. @ SKKU !20 105 EFL: Ecore The core loop of EFL applications Embedded Software Lab. @ SKKU !21 Ecore 96 • EFL应⽤、事件 &编组库的核⼼ – 提供各个⼦系统的关联 – ⽀持多种战线系统 • X11, FB, Wayland, Win32, WinCE, etc. • 特征: – Networking & IPC – Threading & inter-thread communication – Evas input feeding and output driving – More... Embedded Software Lab. @ SKKU !22 Simple EFL Application 96 • elm_main() – EFL应⽤的主要函数 – 在初始化后,进⼊每个事件回路中 On exiting window, it also exits Ecore event loop Elementary UI configuration (Elementary Window) Start Ecore main loop! Finalization process like freeing resource Embedded Software Lab. @ SKKU !23 Ecore Main Loop (1/2) 96 • ecore_main_loop_begin() – Ecore主要回路的包装 – 可以在 Ecore main loop和 Glib main loop中进⾏选择 Ecore main loop Glib main loop Embedded Software Lab. @ SKKU !24 Ecore Main Loop (2/2) 96 • _ecore_main_loop_iterate_internal() – Ecore main loop的实现 – 开启应⽤中的所有时间处理器,事件处理器和渲染⼯作 Embedded Software Lab. @ SKKU !25 Ecore: Ecore事件的使⽤ 96 • Key down 事件 Ecore_Event_Handler *handler; handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, func, data); Eina_Bool func(void *data, int type, void *event_info) { if (…) return ECORE_CALLBACK_DONE; return ECORE_CALLBACK_PASS_ON; } • Timer 事件 Ecore_Timer *timer; double time; timer = ecore_timer_add(time, func, data); Eina_Bool func(void *data) { if (…) return ECORE_CALLBACK_RENEW; return ECORE_CALLBACK_CANCEL; } Embedded Software Lab. @ SKKU !26 96 EFL: Evas Canvas & Rendering Library Embedded Software Lab. @ SKKU !27 Evas 96 • 画布 &渲染库 • 特征 – 保留模式渲染 • 以原始对象和智能对象来控制渲染⾏为 – 场景图 • 跟踪对象状态 ->最⼩化渲染⾏为 – 多个输出路径 • Pure software/OpenGL ES – 渲染优化 • 3D H/W Acceleration, SIMD vector operations – 提供了 GL Glue Layer Embedded Software Lab. @ SKKU !28 Evas: Retained Mode Rendering 96 • Evas 使⽤保留模式渲染 – 应⽤将 Evas对象发送给 Evas – Evas基于 Evas对象来渲染 Application Evas objects Expose X Window System Evas Rendering Engine (Graphics system) Graphics Card Framebuffer for screen Embedded Software Lab. @ SKKU !29 Evas 对象 96 • 所有展⽰在画布上的对象 – 由 Evas_Object handles控制 • 加载⽂字和图⽚,渲染符号和图⽚, scaling, blending,3D转换 等 – Evas对所有的对象实⾏同样的管理 • Evas 对象的种类 – 基本对象 : Evas 渲染的最⼩单元 • Rectangle, Line, Polygon, Text, Textblock, Textgrid, Image – 智能对象 • Box, Grid, Table, Customized smart objects(ELM Widgets) Embedded Software Lab. @ SKKU !30 Evas 基本对象 96 • Evas的渲染单元 Embedded Software Lab. @ SKKU !31 Evas 智能对象( smart objects) 96 • Evas对象由基本对象组成 – 作为⼀个组来活动 – 也可以使⽤ Evas对象的通⽤函数 Embedded Software Lab. @ SKKU !32 Image Native Surface 96 Evas Runtime Evas_Object_Rect Hello World! Hello World! Evas_Object_Text … GL Rendering X11 Engine Output Output Evas Engine Module SW Buffer Rendering Evas_Object_Image Output Engine … … X11 SDL Rendering Output Engine OpenGL App Evas_Object_Image (surface_a (img_obj_a) ie. Pixmap or texture) evas_object_image_native_surface_set(img_obj_a, surface_a) Embedded Software Lab. @ SKKU !33 Evas: 场景图 96 • 场景图 – ⼀种结构,⼀个绘画场景的逻辑表⽰ – 在 GUI应⽤中通⽤的数据结构 • Scene graph in Evas – 以图像数据结构的⽅式管理 Evas对象 – 追踪所有对象的状态,并在下⼀个 frame中获取改变的区 域 ->最⼩化渲染区域 Embedded Software Lab. @ SKKU !34 Evas: Minimizing Rendering Region 96 • Start Here Embedded Software Lab. @ SKKU !35 Evas: Minimizing Rendering Region 96 • Next frame is… Embedded Software Lab. @ SKKU !36 Evas: Minimizing Rendering Region 96 • 计算实际的更新区域变化量 Embedded Software Lab. @ SKKU !37 Evas: Minimizing Rendering Region 96 • 只重画更新的区域 Embedded Software Lab. @ SKKU !38 Evas: ⻓⽅形案例 96 /* Build by $ gcc evas_rectangle.c -o evas_rectangle `pkg-config --cflags --libs ecore ecore-evas` */ #include <Ecore.h> #include <Ecore_Evas.h> int main(int argc, char **argv) { Ecore_Evas *ee; Evas *evas; Evas_Object *bg; if(ecore_evas_init() <= 0) return 1; ee = ecore_evas_new(NULL, 0, 0, 200, 200, NULL); ecore_evas_show(ee); evas = ecore_evas_get(ee); // Get the Ecore_Evas's Evas object. bg = evas_object_rectangle_add(evas); // Add a rectangle to the given Evas object. evas_object_color_set(bg, 255, 255, 255, 255); // Set the color of the given Evas object to the given one. evas_object_move(bg, 0, 0); // Move the given Evas object to the given location inside its canvas' viewport. evas_object_resize(bg, 200, 200); // Change the size of the given Evas object. evas_object_show(bg); // Make the given Evas object visible. ecore_main_loop_begin(); ecore_evas_free(ee); ecore_evas_shutdown(); return 0; } Embedded Software Lab. @ SKKU !39 Evas:图像 案例 96 /* Build by $ gcc evas_image.c -o evas_image `pkg-config --cflags --libs ecore ecore-evas` */ #include <Ecore.h> #include <Ecore_Evas.h> int main(int argc, char **argv) { Ecore_Evas *ee; Evas *evas; Evas_Object *bg; if(ecore_evas_init() <= 0) return 1; ee = ecore_evas_new(NULL, 0, 0, 200, 200, NULL); ecore_evas_show(ee); evas = ecore_evas_get(ee); // Get the Ecore_Evas's Evas object. bg = evas_object_image_filled_add(evas); // Add an image to the given Evas object. evas_object_image_file_set(img, “test.png”, NULL); // Set the image file path of the given Evas object. evas_object_move(img, 0, 0); // Move the given Evas object to the given location inside its canvas' viewport. evas_object_resize(img, 200, 200); // Change the size of the given Evas object. evas_object_show(img);
Recommended publications
  • Current Status of Win32 Gdk Implementation
    Current status of Win32 Gdk implementation Bertrand Bellenot - [email protected] Features (recall) ! Same environment on every system : ! Same look and feel on every platform. ! Simplify the code maintenance : ! No need to care about a « windows specific code ». ! Simplify functionality extension : ! No need to implement the code twice, once for windows and once for other OS. ! Only use TVirtualX. Actual Status (recall) ! The actual code uses a modified version of gdk and glib, the GIMP low-level libraries ported on win32. In practice, this means that we only need to link with gdk.lib, glib.lib and iconv.dll as additional libraries (hopefully less in the future). These libraries are under LGPL, so there are no licensing issues in using and distributing them. ! As original version of gdk was not doing everything needed by root (as font orientation!), I did have to slightly modify the original code. Points fixed since last year ! Some characters were not displayed. " ! Some problems with icon’s transparency. " ! The event handling was not perfect. " ! OpenGL was not working. " Events handling architecture (actual) TSystem CINT TGClient TVirtualX Gdk Threads issue ! From gdk developper FAQ : ! Without some major restructuring in GDK-Win32, I don't think there is any chance that GTK+ would work, in general, in a multi-threaded app, with different threads accessing windows created by other threads. ! One problem is that each thread in Windows have its own message queue. GDK-Win32 currently uses just one "message pump" in the main thread. It will never see messages for windows created by other threads. Threads issue ! As gdk is not thread safe, I had to create a separate thread from within the gdk calls are made.
    [Show full text]
  • The GNOME Desktop Environment
    The GNOME desktop environment Miguel de Icaza ([email protected]) Instituto de Ciencias Nucleares, UNAM Elliot Lee ([email protected]) Federico Mena ([email protected]) Instituto de Ciencias Nucleares, UNAM Tom Tromey ([email protected]) April 27, 1998 Abstract We present an overview of the free GNU Network Object Model Environment (GNOME). GNOME is a suite of X11 GUI applications that provides joy to users and hackers alike. It has been designed for extensibility and automation by using CORBA and scripting languages throughout the code. GNOME is licensed under the terms of the GNU GPL and the GNU LGPL and has been developed on the Internet by a loosely-coupled team of programmers. 1 Motivation Free operating systems1 are excellent at providing server-class services, and so are often the ideal choice for a server machine. However, the lack of a consistent user interface and of consumer-targeted applications has prevented free operating systems from reaching the vast majority of users — the desktop users. As such, the benefits of free software have only been enjoyed by the technically savvy computer user community. Most users are still locked into proprietary solutions for their desktop environments. By using GNOME, free operating systems will have a complete, user-friendly desktop which will provide users with powerful and easy-to-use graphical applications. Many people have suggested that the cause for the lack of free user-oriented appli- cations is that these do not provide enough excitement to hackers, as opposed to system- level programming. Since most of the GNOME code had to be written by hackers, we kept them happy: the magic recipe here is to design GNOME around an adrenaline response by trying to use exciting models and ideas in the applications.
    [Show full text]
  • GTK Lesson 3: Containers
    CSci493.70 Graphical User Interface Programming Prof. Stewart Weiss Lesson 3: Containers Lesson 3: Containers 1 Container Widgets and Packing When you design an application with a graphical user interface, you put various widgets inside of one another and implicitly dene a hierarchy of what's inside of what. This is a containment hierarchy. Some of the widgets you use have specic purposes, such as buttons, text entry boxes, and menus. If you design your GUI on paper, you draw these widgets where you want them and making them the sizes that you want them to be. However, getting them to be in those specic positions with their specic sizes using a library like GTK+ requires that you use widgets whose primary purpose is for laying out other widgets. These widgets are called container widgets. In Lesson 2, we introduced the GtkContainer class, which is the ancestral class of all container widgets and which we now cover in more detail. Recall that containers can be partitioned into two categories: (1) those that can hold only a single child widget, and (2) those that can hold more than one. Containers that can contain only a single widget are called decorator containers, because their principal purpose is to add functionality and decorative eects to the child widget. Containers that can hold several children are called layout containers, because they are used primarily for laying out the child widgets within their (GDK) windows. Layout containers assign sizes and positions to their children. 1.1 The GtkContainer Class Before we look at their concrete subclasses, we will examine what functionality and properties GtkContainers possess.
    [Show full text]
  • Drawing in GTK+
    CSci493.70 Graphical User Interface Programming Prof. Stewart Weiss Drawing in GTK+ Drawing in GTK+ Background In order to understand how to draw in GTK, you rst have to understand something about how GTK draws widgets, because how GTK draws widgets has an important role in how you design your drawing application. An understanding of how GTK draws widgets is also required if you ever plan to build your own custom widgets. Windows and Clipping Most windowing systems are designed around the idea that an application's visual display lies within a rectangular region on the screen called its window. The windowing system, e.g. Gnome or KDE or Explorer, does not automatically save the graphical content of an application's windows; instead it asks the application itself to repaint 1 its windows whenever it is needed. For example, if a window that is stacked below other windows gets raised to the top, then a client program has to repaint the area that was previously obscured. When the windowing system asks a client program to redraw part of a window, it sends an exposure event to the program that contains that window. An exposure event is simply an event sent from the underlying windowing system to a widget to notify it that it must redraw itself. In this context, a "window" means "a rectangular region with automatic clipping", not a top-level application window. Clipping is the act of removing portions of a window that do not need to be redrawn, or looked at the other way, it is determining which are the only regions of a window that must be redrawn.
    [Show full text]
  • Embedded Linux Training
    Free Electrons Embedded Linux training Gregory Clement Thomas Petazzoni Michael Opdenacker Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Rights to copy © Copyright 2004-2011, Free Electrons [email protected] Electronic version of this document available on http://free-electrons.com/doc/training/embedded-linux Updates will be available on http://free-electrons.com/doc/training/embedded-linux/ Attribution ± ShareAlike 3.0 Corrections, suggestions, You are free contributions and translations are welcome! to copy, distribute, display, and perform the work to make derivative works Latest update: Feb 14, 2011 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: http://creativecommons.org/licenses/by-sa/3.0/legalcode Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Linux kernel Linux device drivers Free Electrons Board support code Our services Mainstreaming kernel code Kernel debugging Custom Development System integration
    [Show full text]
  • Pygtk GUI Programming Pygtk GUI Programming Table of Contents Pygtk GUI Programming
    PyGTK GUI programming PyGTK GUI programming Table of Contents PyGTK GUI programming...............................................................................................................................1 Chapter 1. Introduzione....................................................................................................................................2 1.1. Primo approccio...............................................................................................................................2 1.2. Il toolkit PyGTK..............................................................................................................................2 1.3. PyGTK e Glade................................................................................................................................2 1.4. IDE o editor......................................................................................................................................4 1.5. Installazione.....................................................................................................................................6 1.5.1. Installazione su piattaforma GNU/Linux...............................................................................6 1.5.2. Installazione su piattaforma Windows...................................................................................6 1.6. Supporto e help................................................................................................................................6 Chapter 2. I Widget, le classi ed un
    [Show full text]
  • Pygtk 2.0 Tutorial
    PyGTK 2.0 Tutorial John Finlay October 7, 2012 PyGTK 2.0 Tutorial by John Finlay Published March 2, 2006 ii Contents 1 Introduction 1 1.1 Exploring PyGTK . .2 2 Getting Started 5 2.1 Hello World in PyGTK . .7 2.2 Theory of Signals and Callbacks . .9 2.3 Events . 10 2.4 Stepping Through Hello World . 11 3 Moving On 15 3.1 More on Signal Handlers . 15 3.2 An Upgraded Hello World . 15 4 Packing Widgets 19 4.1 Theory of Packing Boxes . 19 4.2 Details of Boxes . 20 4.3 Packing Demonstration Program . 22 4.4 Packing Using Tables . 27 4.5 Table Packing Example . 28 5 Widget Overview 31 5.1 Widget Hierarchy . 31 5.2 Widgets Without Windows . 34 6 The Button Widget 35 6.1 Normal Buttons . 35 6.2 Toggle Buttons . 38 6.3 Check Buttons . 40 6.4 Radio Buttons . 42 7 Adjustments 45 7.1 Creating an Adjustment . 45 7.2 Using Adjustments the Easy Way . 45 7.3 Adjustment Internals . 46 8 Range Widgets 49 8.1 Scrollbar Widgets . 49 8.2 Scale Widgets . 49 8.2.1 Creating a Scale Widget . 49 8.2.2 Methods and Signals (well, methods, at least) . 50 8.3 Common Range Methods . 50 8.3.1 Setting the Update Policy . 50 8.3.2 Getting and Setting Adjustments . 51 8.4 Key and Mouse Bindings . 51 8.5 Range Widget Example . 51 9 Miscellaneous Widgets 57 9.1 Labels . 57 9.2 Arrows . 60 9.3 The Tooltips Object .
    [Show full text]
  • Real-Time Calibration and Monitoring of Radar Reflectivity on Nationwide
    remote sensing Article Real-Time Calibration and Monitoring of Radar Reflectivity on Nationwide Dual-Polarization Weather Radar Network Jeong-Eun Lee , Soohyun Kwon and Sung-Hwa Jung * Weather Radar Center, Korea Meteorological Administration, Seoul 07062, Korea; [email protected] (J.-E.L.); [email protected] (S.K.) * Correspondence: [email protected]; Tel.: +82-2-2181-0862 Abstract: Monitoring calibration bias in reflectivity (ZH) in an operational S-band dual-polarization weather radar is the primary requisite for monitoring and prediction (nowcasting) of severe weather and routine weather forecasting using a weather radar network. For this purpose, we combined methods based on self-consistency (SC), ground clutter (GC) monitoring, and intercomparison to monitor the ZH in real time by complementing the limitations of each method. The absolute calibra- tion bias can be calculated based on the SC between dual-polarimetric observations. Unfortunately, because SC is valid for rain echoes, it is impossible to monitor reflectivity during the non-precipitation period. GC monitoring is an alternative method for monitoring changes in calibration bias regardless of weather conditions. The statistics of GC ZH near radar depend on the changes in radar system status, such as antenna pointing and calibration bias. The change in GC ZH relative to the baseline was defined as the relative calibration adjustment (RCA). The calibration bias was estimated from the change in RCA, which was similar to that estimated from the SC. The ZH in the overlapping volume of adjacent radars was compared to verify the homogeneity of ZH over the radar network after applying the calibration bias estimated from the SC.
    [Show full text]
  • Embedded Linux System Design and Development
    Au0586 half title page 11/17/05 2:05 PM Page 1 EMBEDDED LINUX SYSTEM DESIGN AND DEVELOPMENT Au0586 title page 11/17/05 2:04 PM Page 1 EMBEDDED LINUX SYSTEM DESIGN AND DEVELOPMENT TEAM FLY P. Raghavan • Amol Lad • Sriram Neelakandan Boca Raton New York Published in 2006 by Auerbach Publications Taylor & Francis Group 6000 Broken Sound Parkway NW, Suite 300 Boca Raton, FL 33487-2742 © 2006 by Taylor & Francis Group, LLC Auerbach is an imprint of Taylor & Francis Group No claim to original U.S. Government works Printed in the United States of America on acid-free paper 10987654321 International Standard Book Number-10: 0-8493-4058-6 (Hardcover) International Standard Book Number-13: 978-0-8493-4058-1 (Hardcover) Library of Congress Card Number 2005048179 This book contains information obtained from authentic and highly regarded sources. Reprinted material is quoted with permission, and sources are indicated. A wide variety of references are listed. Reasonable efforts have been made to publish reliable data and information, but the author and the publisher cannot assume responsibility for the validity of all materials or for the consequences of their use. No part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information storage or retrieval system, without written permission from the publishers. For permission to photocopy or use material electronically from this work, please access www.copyright.com (http://www.copyright.com/) or contact the Copyright Clearance Center, Inc.
    [Show full text]
  • Pipenightdreams Osgcal-Doc Mumudvb Mpg123-Alsa Tbb
    pipenightdreams osgcal-doc mumudvb mpg123-alsa tbb-examples libgammu4-dbg gcc-4.1-doc snort-rules-default davical cutmp3 libevolution5.0-cil aspell-am python-gobject-doc openoffice.org-l10n-mn libc6-xen xserver-xorg trophy-data t38modem pioneers-console libnb-platform10-java libgtkglext1-ruby libboost-wave1.39-dev drgenius bfbtester libchromexvmcpro1 isdnutils-xtools ubuntuone-client openoffice.org2-math openoffice.org-l10n-lt lsb-cxx-ia32 kdeartwork-emoticons-kde4 wmpuzzle trafshow python-plplot lx-gdb link-monitor-applet libscm-dev liblog-agent-logger-perl libccrtp-doc libclass-throwable-perl kde-i18n-csb jack-jconv hamradio-menus coinor-libvol-doc msx-emulator bitbake nabi language-pack-gnome-zh libpaperg popularity-contest xracer-tools xfont-nexus opendrim-lmp-baseserver libvorbisfile-ruby liblinebreak-doc libgfcui-2.0-0c2a-dbg libblacs-mpi-dev dict-freedict-spa-eng blender-ogrexml aspell-da x11-apps openoffice.org-l10n-lv openoffice.org-l10n-nl pnmtopng libodbcinstq1 libhsqldb-java-doc libmono-addins-gui0.2-cil sg3-utils linux-backports-modules-alsa-2.6.31-19-generic yorick-yeti-gsl python-pymssql plasma-widget-cpuload mcpp gpsim-lcd cl-csv libhtml-clean-perl asterisk-dbg apt-dater-dbg libgnome-mag1-dev language-pack-gnome-yo python-crypto svn-autoreleasedeb sugar-terminal-activity mii-diag maria-doc libplexus-component-api-java-doc libhugs-hgl-bundled libchipcard-libgwenhywfar47-plugins libghc6-random-dev freefem3d ezmlm cakephp-scripts aspell-ar ara-byte not+sparc openoffice.org-l10n-nn linux-backports-modules-karmic-generic-pae
    [Show full text]
  • How Do I Pick a New Linux Laptop System and Distro? (Excerpts from Emperorlinux-Lincolns-Logbook)
    How do I pick a new Linux laptop system and distro? (Excerpts from EmperorLinux-Lincolns-Logbook) Lincoln D. Durey, Ph.D. May 5, 2004 Portable Linux Enthusiast, Today's article has relevance to all of us at some time or another. It is the nature of hardware to get old and slow. So, we all find ourselves needing new Linux laptop about every 3 years. Lincoln's new Linux Laptop: As the founder and president of a Linux laptop company, I get quite a few questions about which machine I use, and which Linux distro I use. While those are interesting questions with easy answers which we'll get to, I also field the age old question of "How can I take my data with me?" from our returning customers (as we've been at this Linux on laptops thing for 5 years now, we have many customers coming back after a 3-4 year run on one of our systems, and it's time to upgrade). So, I'm going to roll all these questions into one essay and answer: "How do I pick a new Linux laptop system and distro, and then move my data, and my work flow to it?" I took delivery of an EmperorLinux Toucan T21 in January of 2001, and used it approximately 12-16 hours a day for over three years. The Toucan T21 (named "tori") ran Red Hat 7.3, with all the same modifications to the kernel (the empkernel), and the config files that our customers enjoy. Recently, tori started making not-happy-disk noises, and the LCD back-light was flickering.
    [Show full text]
  • Bitbake Problems
    Richard Purdie, Linux Foundation <[email protected]> by Richard Purdie Copyright © 2010-2015 Linux Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-Share Alike 2.0 UK: England & Wales [http://creativecommons.org/licenses/by-sa/2.0/uk/] as published by Creative Commons. Note For the latest version of this manual associated with this Yocto Project release, see the Yocto Project Reference Manual [http://www.yoctoproject.org/docs/1.7.2/ref-manual/ref-manual.html] from the Yocto Project website. Table of Contents 1. Introduction ............................................................................................................................ 1 1.1. Introduction ................................................................................................................. 1 1.2. Documentation Overview ............................................................................................. 1 1.3. System Requirements .................................................................................................. 2 1.3.1. Supported Linux Distributions ........................................................................... 2 1.3.2. Required Packages for the Host Development System ....................................... 3 1.3.3. Required Git, tar, and Python Versions .............................................................. 5 1.4. Obtaining the Yocto Project .........................................................................................
    [Show full text]