Building and Setup Ångström Distribution from Scratch

Total Page:16

File Type:pdf, Size:1020Kb

Building and Setup Ångström Distribution from Scratch Building and setup Ångström distribution from scratch Host platform: Ubuntu Desktop 10.10 Target platform: Olimex CS-E9302 Development board 1. Overview Ångström was started by a small group of people who worked on the OpenEmbedded, OpenZaurus and OpenSimpad projects to unify their effort to make a stable and userfriendly distribution for embedded devices like handhelds, set top boxes and network-attached storage devices and more. All Ångström binaries are built using OpenEmbedded. OpenEmbedded offers a best-in-class cross-compile environment. It allows developers to create a complete Linux Distribution for embedded systems. Some of the OpenEmbedded advantages include: . support for many hardware architectures . multiple releases for those architectures . tools for speeding up the process of recreating the base after changes have been made . easy to customize . runs on any Linux distribution . cross-compiles 1000's of packages including GTK+, Qt, the X Windows system, Mono, Java, and about anything else you might ever need Bitbake handles the parsing and execution of the data files. The data itself is of various types; recipes which give details about particular pieces of software, class data which is an abstraction of common build information (e.g. how to build a Linux kernel) and configuration data for machines, policy decisions, etc., which acts as a glue and binds everything together. Bitbake knows how to combine multiple data sources together, each data source being referred to as a layer. Bitbake is responsible for parsing the metadata, generating a list of tasks from it and then executing them. The most common usage is bitbake packagename where packagename is the name of the package you wish to build (from now on called the target). This often equates to the first part of a .bb filename, so to run the simple- package_1.2.3.bb file, you might type bitbake simple-package. Several different versions of simple-package might exist and bitbake will choose the one selected by the distribution configuration. Bitbake will also try to execute any dependent tasks first so before building simple-package it would build a cross compiler and glibc if not already built. The Metadata (recipes) are .bb files that are usually referred to as 'recipes'. In general, a recipe contains information about a single piece of software such as where to download the source, any patches that are needed, any special configuration options, how to compile the source files and how to package the compiled output. Class (.bbclass) files contain information which is useful to share between metadata files. An example is the autotools class which contains the common settings that any application using autotools would use. The configuration (.conf) files define various configuration variables which govern what Poky does. These are split into several areas, such as machine configuration options, distribution configuration options, compiler tuning options, general common configuration and user configuration (local.conf). 2. Setup OpenEmbedded toolchain First of all you may want to install some useful packages(if you haven’t installed them already). Next commands have to be executed as root user. apt-get install nano mc openssh-server lrzsz htop Now you can work on SSH terminal. Required software for OpenEmbedded can be found at OE host distributions wiki. Check that /bin/sh (ls -l /bin/sh) is not symbolically linked to dash. "dash" is a POSIX compliant shell that is much smaller than "bash" -- however some broken shell scripts still make use of bash extensions while calling into /bin/sh. To work around this issue call dpkg-reconfigure dash and select No when it asks you to install dash as /bin/sh. If you don’t want to use packages from repository, you can build them manually from source. For this purpose check all OpenEmbedded Required Software or use special script for Ubuntu distribution I prefer to use packages from Ubuntu universe repository. So let’s start with installing of necessary packages: apt-get install sed wget cvs subversion git-core coreutils unzip texi2html texinfo docbook-utils gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ desktop-file-utils chrpath Then we have to install some supplementary packages: apt-get install libxml2-utils xmlto python-psyco OPTIONAL: following packages and their dependencies need to be installed in order to build the bitbake documentation (warning: over 160MB of installed packages). apt-get install docbook Building and setup Ångström distribution from scratch page 2 of 54 This package is necessary to build some packages (in particular the esound documentation needs it). NOTE: If you are building in container (LXC/OpenVZ) check presence of loadkeys tool (/bin/loadkeys). If there is no loadkeys, install console- tools package. apt-get install console-tools Finally we have to install automake and autoconf packages apt-get install automake autoconf autoconf2.13 autoconf-archive gnu-standards autoconf-doc libtool gettext Now we have all needed packages for using OpenEmbedded toolchain. 3. Setup Ångström environment First we have to create directory where to setup an environment. My choise is /angstrom in root directory, but you are free to use whatever you want mkdir /angstrom We have to change owner of directory – all other commands have to be executed as non root user. In this case I’ll use user named user chown user.user /angstrom Now login as non root user: su – user Building Ångström includes a setup script - go to the the setup-scripts repository and clone it, the URLS are on top of that page. You should end up doing something like: git clone git://git.angstrom-distribution.org/setup-scripts /angstrom Next step is to define our target machine and start updating process MACHINE=cs-e9302 ./oebb.sh update After executing of script – OpenEmbedded and BitBake will be obtained. Also script creates a environment file with all needed path variables. This file is stored in user home directory. It’s recommended to execute this in user profile. Edit file ~/.bashrc. nano ~/.bashrc and add following line in the end of file: . ~/.oe/environment-2008 Restart your terminal. Check if everything is fine by typing: bitbake --version Building and setup Ångström distribution from scratch page 3 of 54 You should see something like BitBake Build Tool Core version 1.12.0, bitbake version 1.12.0 To complete process we have to run first building of package(image) using the Angstrom script. I choose to build nano package MACHINE=cs-e9302 ./oebb.sh bitbake nano After a wait we already have the basic structure. It should looks like picture below: 4. Custom bbfile repository In next steps we will make custom bbfile repository in order to make modifications in distributions and recipes without any change in OpenEmbedded repository. OpenEmbedded, Bitbake and packages sources are stored in /angstrom/sources directory. Let's create our custom repository mkdir /angstrom/sources/local bbfile collections exist to allow the user to have multiple repositories of bbfiles that contain the same exact package. Edit the configuration file nano /angstrom/build/conf/local.conf and add the following in the end of file BBFILES =+ "/angstrom/sources/local/recipes/*/*.bb" BBFILE_COLLECTIONS = "local oe" BBFILE_PATTERN_local = "/angstrom/sources/local" BBFILE_PRIORITY_local = "5" BBFILE_PATTERN_oe = "/angstrom/sources/openembedded" BBFILE_PRIORITY_oe = "0" BBPATH =. "${BBFILE_PATTERN_local}:" I suggest to comment out the following line INHERIT += "rm_work" This option will keep all temporary files in process of recipes building. Another option for custom bbfile repositories is bitbake layers. bitbake has a powerful mechanism called layers which provides a way to handle this Building and setup Ångström distribution from scratch page 4 of 54 extension in a fully supported and non-invasive fashion. It is easy to add the layers path to the BBLAYERS variable in your bblayers.conf. # LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf # changes incompatibly LCONF_VERSION = "1" BBFILES ?= "" # Add your overlay location to BBLAYERS # Make sure to have a conf/layers.conf in there BBLAYERS = " \ /angstrom/sources/local \ /angstrom/sources/openembedded \ " Bitbake parses the conf/layer.conf of each of the layers in BBLAYERS to add the layers packages, classes and configuration. To create your own layer, independent of the main OpenEmbedded repository, you need only create a directory with a conf/layer.conf file and add the directory to your bblayers.conf. BBFILES =+ "${LAYERDIR}/recipes/*/*.bb" BBPATH =. "${LAYERDIR}:" BBFILE_COLLECTIONS =+ "local" BBFILE_PRIORITY_local = "10" BBFILE_PATTERN_local = "^${LAYERDIR}/" 5. Building linux kernel We are going to build the latest version of linux kernel (2.6.37) for cs- e9302 target platform. However our machine configuration couldn't be found at OpenEmbedded linux recipes for latest kernel version Building and setup Ångström distribution from scratch page 5 of 54 Next few steps demonstrate process of configuring and building latest linux kernel in Angstrom distribution. First build the kernel normally with bitbake by running this command: bitbake virtual/kernel This will create a source directory in /angstrom/build/tmp- angstrom_2008_1/work/cs-e9302-angstrom-linux-gnueabi/. In this case it will be /angstrom/build/tmp-angstrom_2008_1/work/cs-e9302-angstrom-linux- gnueabi/linux-2.6.24-r46/ Add the following file in your build configuration directory nano /angstrom/build/conf/site.conf and add preferred version of linux kernel PREFERRED_VERSION_linux ?= "2.6.37" Next we will add some patches to the kernel. We want ADC and LED driver support which can't be found in main stream of linux kernel. All patches will be added in the following directory /angstrom/sources/local/recipes/linux/linux-2.6.37 Bitbake must know for our patches, so we have to edit file /angstrom/sources/local/recipes/linux/linux_2.6.37.bb and add the following lines SRC_URI_append_cs-e9302 = " \ file://ep93xx_adc_driver.patch \ file://ep93xx_adc_driver_my.patch \ file://ep93xx_leds.patch \ " ep93xx_adc_driver.patch could be downloaded from here.
Recommended publications
  • Linux on the Road
    Linux on the Road Linux with Laptops, Notebooks, PDAs, Mobile Phones and Other Portable Devices Werner Heuser <wehe[AT]tuxmobil.org> Linux Mobile Edition Edition Version 3.22 TuxMobil Berlin Copyright © 2000-2011 Werner Heuser 2011-12-12 Revision History Revision 3.22 2011-12-12 Revised by: wh The address of the opensuse-mobile mailing list has been added, a section power management for graphics cards has been added, a short description of Intel's LinuxPowerTop project has been added, all references to Suspend2 have been changed to TuxOnIce, links to OpenSync and Funambol syncronization packages have been added, some notes about SSDs have been added, many URLs have been checked and some minor improvements have been made. Revision 3.21 2005-11-14 Revised by: wh Some more typos have been fixed. Revision 3.20 2005-11-14 Revised by: wh Some typos have been fixed. Revision 3.19 2005-11-14 Revised by: wh A link to keytouch has been added, minor changes have been made. Revision 3.18 2005-10-10 Revised by: wh Some URLs have been updated, spelling has been corrected, minor changes have been made. Revision 3.17.1 2005-09-28 Revised by: sh A technical and a language review have been performed by Sebastian Henschel. Numerous bugs have been fixed and many URLs have been updated. Revision 3.17 2005-08-28 Revised by: wh Some more tools added to external monitor/projector section, link to Zaurus Development with Damn Small Linux added to cross-compile section, some additions about acoustic management for hard disks added, references to X.org added to X11 sections, link to laptop-mode-tools added, some URLs updated, spelling cleaned, minor changes.
    [Show full text]
  • Embedded Linux Systems with the Yocto Project™
    OPEN SOURCE SOFTWARE DEVELOPMENT SERIES Embedded Linux Systems with the Yocto Project" FREE SAMPLE CHAPTER SHARE WITH OTHERS �f, � � � � Embedded Linux Systems with the Yocto ProjectTM This page intentionally left blank Embedded Linux Systems with the Yocto ProjectTM Rudolf J. Streif Boston • Columbus • Indianapolis • New York • San Francisco • Amsterdam • Cape Town Dubai • London • Madrid • Milan • Munich • Paris • Montreal • Toronto • Delhi • Mexico City São Paulo • Sidney • Hong Kong • Seoul • Singapore • Taipei • Tokyo Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. For information about buying this title in bulk quantities, or for special sales opportunities (which may include electronic versions; custom cover designs; and content particular to your business, training goals, marketing focus, or branding interests), please contact our corporate sales depart- ment at [email protected] or (800) 382-3419. For government sales inquiries, please contact [email protected]. For questions about sales outside the U.S., please contact [email protected]. Visit us on the Web: informit.com Cataloging-in-Publication Data is on file with the Library of Congress.
    [Show full text]
  • Introduction to the Yocto Project / Openembedded-Core
    Embedded Recipes Conference - 2017 Introduction to the Yocto Project / OpenEmbedded-core Mylène Josserand Bootlin [email protected] embedded Linux and kernel engineering - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/1 Mylène Josserand I Embedded Linux engineer at Bootlin since 2016 I Embedded Linux expertise I Development, consulting and training around the Yocto Project I One of the authors of Bootlin’ Yocto Project / OpenEmbedded training materials. I Kernel contributor: audio driver, touchscreen, RTC and more to come! embedded Linux and kernel engineering - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/1 I Understand why we should use a build system I How the Yocto Project / OpenEmbedded core are structured I How we can use it I How we can update it to fit our needs I Give some good practices to start using the Yocto Project correctly I Allows to customize many things: it is easy to do things the wrong way I When you see a X, it means it is a good practice! Introduction I In this talk, we will: - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/1 I How the Yocto Project / OpenEmbedded core are structured I How we can use it I How we can update it to fit our needs I Give some good practices to start using the Yocto Project correctly I Allows to customize many things: it is easy to do things the wrong way I When you see a X, it means it is a good practice!
    [Show full text]
  • How to Create a Partitioned Image with the Custom Wic Plugin?
    How to create a partitioned image with the custom Wic plugin? Tips and tricks based on the bootimg-grub-tb plugin development Norbert Kamiński, 3mdeb Embedded Systems Consulting Yocto Project Virtual Summit Europe, October 29-30, 2020 Agenda • $ whoami • Wic – OpenEmbedded Image Creator • Preparing layer • WKS files • Wic Plug-in Interface • Overall information • PluginSource Methods • Wic Plug-in development • bootimg-grub-tb - custom Wic Plug-in 2 Yocto Project® | The Linux Foundation® $ whoami • Open-source contributor • meta-pcengines • meta-trenchboot • qubes-fwupd • Scope of interests • embedded Linux • virtualization and containerization • bootloaders Norbert Kamiński Embedded Systems Engineer at 3mdeb Embedded Systems Consulting • • 3 Yocto Project® | The Linux Foundation® Wic – OpenEmbedded Image Creator Yocto Project | The Linux Foundation What is the Wic? • Wic stands for OpenEmbedded Image Creator • It is used to a create partitioned image • Wic is loosely based on the Meego Image Creator framework (mic) • It is using build artifacts instead of installing packages and configurations 5 Yocto Project® | The Linux Foundation® Prepare your layer • Go to your meta layer • Add wic to the IMAGE_FSTYPE variable in your local configuration IMAGE_FSTYPES += "wic" • Use the existing wic kickstart file or create specific one for your purposes 6 Yocto Project® | The Linux Foundation® Default partition layouts • At the start source poky/oe-init-build-env • List the available wic kickstart configurations $ wic list images mpc8315e-rdb Create
    [Show full text]
  • & Qt What Meego Could Have Been
    & Qt What MeeGo could have been David Greaves / lbt merproject.org Qt Developer Days 2012 We're proud of what we've achieved ! … what are we talking about? Making things TVs Cars Mobile Tablets Control/Embedded ... origins : ● Maemo reconstructed '09 ● We drank the MeeGo coolaid – and still do ! ● MeeGo needed to evolve ... but died ● Mer was reborn … vendor focus ... is : ● A core for mobile and smaller devices ● Aimed at device vendors ● Qt / QML ● Quality oriented ● Optimised for speed and size ● Ready to productise ... is not : ● A 'user experience' – no UI ● A 'hardware adaptation' – no kernel, GLES drivers ● Everything including the kitchen sink – <shock>Mer doesn't have Emacs</shock> ... delivers : ● Mobile / Nemo, Tablet / Plasma Active & Vivaldi, TV / TVOS (China), Healthcare / Lincor, IVI / Nomovok... ● X86 (not just Atom), ARM, MIPS ● N950/N900/N9 / Spark / STB / ExoPC / RasPi / Panda-beagleboards / Joggler / ... ... will let you : ● Operate efficiently ● Deliver quickly ● Use closed code ● Innovate ... will achieve this by : ● Customer focus ● Pragmatic ● Operating entirely in the open ● Being meritocratic ● Inclusive ... because code is not enough ... provides : ● Code – of course ● Systems – for build, QA, collaboration ● Best practices ● Documentation and support ... contains : ● Build & development ● Base ● Security ● Session ● Hardware ● Connectivity ● Audio Qt ● Graphical ● X11 / Wayland ● Libraries (inc perl + python libs) ... systems : ● OBS ● Upstream patches ● Integration with sb2 ● BOSS ● Business process automation by Ruote ● Scratchbox2 ● Next generation cross-building ... systems : ● IMG / mic ● Automated image builds ● Bugzilla ● Or <insert your choice here> ● Gerrit ● Or <insert your choice here> ● Futures.... ● Package DB for license tracking and libhybris Mer SDK Mer SDK Qt Creator with Mer plugins + Mer VM with Platform SDK = Mer SDK SDK roadmap ..
    [Show full text]
  • Yocto-Slides.Pdf
    Yocto Project and OpenEmbedded Training Yocto Project and OpenEmbedded Training © Copyright 2004-2021, Bootlin. Creative Commons BY-SA 3.0 license. Latest update: October 6, 2021. Document updates and sources: https://bootlin.com/doc/training/yocto Corrections, suggestions, contributions and translations are welcome! embedded Linux and kernel engineering Send them to [email protected] - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 1/296 Rights to copy © Copyright 2004-2021, Bootlin License: Creative Commons Attribution - Share Alike 3.0 https://creativecommons.org/licenses/by-sa/3.0/legalcode You are free: I to copy, distribute, display, and perform the work I to make derivative works I to make commercial use of the work Under the following conditions: I Attribution. You must give the original author credit. I 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. I For any reuse or distribution, you must make clear to others the license terms of this work. I 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. Document sources: https://github.com/bootlin/training-materials/ - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 2/296 Hyperlinks in the document There are many hyperlinks in the document I Regular hyperlinks: https://kernel.org/ I Kernel documentation links: dev-tools/kasan I Links to kernel source files and directories: drivers/input/ include/linux/fb.h I Links to the declarations, definitions and instances of kernel symbols (functions, types, data, structures): platform_get_irq() GFP_KERNEL struct file_operations - Kernel, drivers and embedded Linux - Development, consulting, training and support - https://bootlin.com 3/296 Company at a glance I Engineering company created in 2004, named ”Free Electrons” until Feb.
    [Show full text]
  • The GNU/Linux "Usbnet" Driver Framework
    T he GNU/Linux "usbnet" Driver http://www.linux-usb.org/usbnet/ The GNU/Linux "usbnet" Driver Framework David Brownell <[email protected]> Last Modified: 27 September 2005 USB is a general purpose host-to-device (master-to-slave) I/O bus protocol. It can easily carry network traffic, multiplexing it along with all the other bus traffic. This can be done directly, or with one of the many widely available USB-to-network adapter products for networks like Ethernet, ATM, DSL, POTS, ISDN, and cable TV. There are several USB class standards for such adapters, and many proprietary approaches too. This web page describes how to use the Linux usbnet driver, CONFIG_USB_USBNET in most Linux 2.4 (or later) kernels. This driver originally (2.4.early) focussed only on supporting less conventional types of USB networking devices. In current Linux it's now a generalized core, supporting several kinds of network devices running under Linux with "minidrivers", which are separate modules that can be as small as a pair of static data tables. One type is a host-to-host network cable. Those are good to understand, since some other devices described here need to be administered like those cables; Linux bridging is a useful tool to make those two-node networks more manageable, and Windows XP includes this functionality too. Linux PDAs, and other embedded systems like DOCSIS cable modems, are much the same. They act as Hosts in the networking sense while they are "devices" in the USB sense, so they behave like the other end of a host-to-host cable.
    [Show full text]
  • User Manual Indicates the User Manual Should Be Referenced for Operating Instructions
    SGXTM 5150, SGXTM 5150 MD, and SGX TM 5150 XL IoT Device Gateway User Guide Part Number 900-776-R Revision G August 2019 Intellectual Property © 2019 Lantronix, Inc. All rights reserved. No part of the contents of this publication may be transmitted or reproduced in any form or by any means without the written permission of Lantronix. Lantronix and MACH10 are a registered trademarks of Lantronix, Inc. in the United States and other countries. DeviceInstaller is a trademark of Lantronix, Inc. Patented: http://patents.lantronix.com; additional patents pending. Wi-Fi is a registered trademark of the Wi-Fi Alliance Corporation. Windows and Internet Explorer are registered trademarks of Microsoft Corporation. Mozilla and Firefox are registered trademarks of the Mozilla Foundation. Chrome is a trademark of Google Inc. Safari is a registered trademark of Apple Inc. All other trademarks and trade names are the property of their respective holders. Warranty For details on the Lantronix warranty policy, please go to our web site at www.lantronix.com/support/warranty. Contacts Lantronix, Inc. 7535 Irvine Center Drive Suite 100 Irvine, CA 92618, USA Toll Free: 800-526-8766 Phone: 949-453-3990 Fax: 949-453-3995 Technical Support Online: www.lantronix.com/support Sales Offices For a current list of our domestic and international sales offices, go to the Lantronix web site at www.lantronix.com/about/contact. Open Source Software Some applications are Open Source software licensed under the Berkeley Software Distribution (BSD) license, the GNU General Public License (GPL) as published by the Free Software Foundation (FSF), and the Python Software Foundation (PSF) License Agreement for Python 2.7.6 (Python License).
    [Show full text]
  • Debian \ Amber \ Arco-Debian \ Arc-Live \ Aslinux \ Beatrix
    Debian \ Amber \ Arco-Debian \ Arc-Live \ ASLinux \ BeatriX \ BlackRhino \ BlankON \ Bluewall \ BOSS \ Canaima \ Clonezilla Live \ Conducit \ Corel \ Xandros \ DeadCD \ Olive \ DeMuDi \ \ 64Studio (64 Studio) \ DoudouLinux \ DRBL \ Elive \ Epidemic \ Estrella Roja \ Euronode \ GALPon MiniNo \ Gibraltar \ GNUGuitarINUX \ gnuLiNex \ \ Lihuen \ grml \ Guadalinex \ Impi \ Inquisitor \ Linux Mint Debian \ LliureX \ K-DEMar \ kademar \ Knoppix \ \ B2D \ \ Bioknoppix \ \ Damn Small Linux \ \ \ Hikarunix \ \ \ DSL-N \ \ \ Damn Vulnerable Linux \ \ Danix \ \ Feather \ \ INSERT \ \ Joatha \ \ Kaella \ \ Kanotix \ \ \ Auditor Security Linux \ \ \ Backtrack \ \ \ Parsix \ \ Kurumin \ \ \ Dizinha \ \ \ \ NeoDizinha \ \ \ \ Patinho Faminto \ \ \ Kalango \ \ \ Poseidon \ \ MAX \ \ Medialinux \ \ Mediainlinux \ \ ArtistX \ \ Morphix \ \ \ Aquamorph \ \ \ Dreamlinux \ \ \ Hiwix \ \ \ Hiweed \ \ \ \ Deepin \ \ \ ZoneCD \ \ Musix \ \ ParallelKnoppix \ \ Quantian \ \ Shabdix \ \ Symphony OS \ \ Whoppix \ \ WHAX \ LEAF \ Libranet \ Librassoc \ Lindows \ Linspire \ \ Freespire \ Liquid Lemur \ Matriux \ MEPIS \ SimplyMEPIS \ \ antiX \ \ \ Swift \ Metamorphose \ miniwoody \ Bonzai \ MoLinux \ \ Tirwal \ NepaLinux \ Nova \ Omoikane (Arma) \ OpenMediaVault \ OS2005 \ Maemo \ Meego Harmattan \ PelicanHPC \ Progeny \ Progress \ Proxmox \ PureOS \ Red Ribbon \ Resulinux \ Rxart \ SalineOS \ Semplice \ sidux \ aptosid \ \ siduction \ Skolelinux \ Snowlinux \ srvRX live \ Storm \ Tails \ ThinClientOS \ Trisquel \ Tuquito \ Ubuntu \ \ A/V \ \ AV \ \ Airinux \ \ Arabian
    [Show full text]
  • Yocto Project and Embedded OS
    Yocto Project and Jeffrey Osier-Mixon Embedded OS •What is the Yocto Project and why is it important? •Working with an open source collaborative project & community Kevin McGrath •Yocto Project concepts in a nutshell: environment, metadata, tools • Using Yocto cross-compiler • Running kernel via qemu th • Module installation, virtio, etc. July 28 2015 • Lessons learned, capabilities 11:00 PDT (GMT -7) 1 Yocto Project and Embedded OS Our guests Jeffrey Osier-Mixon: Jeff "Jefro" Osier-Mixon works for Intel Corporation in Intel's Open Source Technology Center, where his current role is community manager for the Yocto Project.. Jefro also works as a community architect and consultant for a number of open source projects and speaks regularly at open source conferences worldwide. He has been deeply involved with open source since the early 1990s. Kevin McGrath : Instructor at Oregon State University. I primarily teach the operating systems sequence and the senior capstone project sequence, but have taught architecture, assembly programming, introductory programming classes, and just about anything else that needs someone to teach it. While my background is in network security and high performance computing (computational physics), today I mostly live in the embedded space, leading to the “ECE wannabe” title in my department. Oleg Verge (Moderator): Technical Program Manager Intel Higher Education, System Engineer MCSE,CCNA, VCP Intel® IoT Developer Kit v1.0 Hardware components = + + Helpful Linux* tools (GCC tool chain, perf, oProfile, Software image + etc.), required drivers (Wi-Fi*, Bluetooth®, etc.), useful = API libraries, and daemons like LighttPD and Node.js. + Intel XDK Support for various IDEs = + + + For C/C++ For java, For Arduino* For Visual + node.js.,html5 sketches Programming Cloud services = Intel IoT Analytics includes capabilities for data collection, + storage, visualization, and analysis of sensor data.
    [Show full text]
  • Porting an Interpreter and Just-In-Time Compiler to the Xscale Architecture
    Porting an Interpreter and Just-In-Time Compiler to the XScale Architecture Malte Hildingson Dept. of Informatics and Mathematics University of Trollhättan / Uddevalla, Sweden E-mail: [email protected] Abstract code conformed to the targeted environment, the makefiles had to be adjusted accordingly. This task was hugely sim- This exploratory study covers the work of porting an in- plified by tools such as autoconf and automake which per- termediate language interpreter to the ARM-based XScale formed the necessary routines for the target platform given architecture. The interpreter is part of the Mono project, an required input parameters, and created makefiles which en- open source effort to create a .NET-compatible development sured that the code was compiled properly. framework. We cover trampolines together with the proce- dure call standard, discuss memory protection and present a 2. Background complete implementation of atomic operations for the ARM architecture. The Mono [11] project, launched in July 2001 by Ximian Inc. [12], is an effort to create an open source imple- mentation of the .NET [13] development framework. The 1. Introduction project includes the Common Language Infrastucture (CLI) [14] virtual machine, a class library for any programming The biggest problem with porting software is finding language conforming to the Common Language Runtime which parts of the software reflect architectural features of (CLR) [15] and compilers that target the CLR. The virtual the hardware that it runs on [1]. The open source movement machine consists of a class loader, garbage collector and has been a benefactor in the sense that standards for porting an interpreter or a just-in-time (JIT) compiler, depending open software have been in demand and developed.
    [Show full text]
  • Elinux Status
    Status of Embedded Linux Status of Embedded Linux April 2015 Tim Bird Architecture Group Chair 1 LF CE Workgroup 1 10/23/2014 PA1 Confidential Outline Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources 2 2 10/23/2014 PA1 Confidential Outline Kernel Versions Technology Areas CE Workgroup Projects Other Stuff Resources 3 3 10/23/2014 PA1 Confidential Kernel Versions • Linux v3.14 – 30 Mar 2014 – 70 days • Linux v3.15 – 8 Jun 2014 – 70 days • Linux v3.16 – 3 Aug 2014 – 57 days • Linux v3.17 – 5 Oct 2014 – 63 days • Linux v3.18 – 7 Dec 2014 – 63 days • Linux v3.19 – 8 Feb 2015 – 63 day • Linux v4.0-rc7 – (60 days so far) • Linus said probably this weekend or next 4 4 10/23/2014 PA1 Confidential Linux v3.14 • Last long-term stable (LTS) kernel • LTS is at 3.14.37 (as of March 2015) • Will be supported until August of 2016 • Current LTSI is based on 3.14.28 5 10/23/2014 PA1 Confidential Linux v3.16 • Power-aware scheduling • decode_stacktrace.sh • Converts offsets in a stack trace to filenames and line numbers • F2FS large volume support 6 10/23/2014 PA1 Confidential Linux v3.17 • Lots of ARM hardware support • Newly enabled ARM hardware • Rockchip RK3288 SoC • Allwinner A23 SoC • Allwinner A31 Hummingbird • Tegra30 Apalis board support • Gumstix Pepper AM335x • AM437x TI evaluation board • Other ARM boards with existing support also saw improvements with Linux 3.17 • Rework of "config-bisect" mode in ktest 7 10/23/2014 PA1 Confidential Linux v3.18 • OverlayFS introduced • Size reduction patch: • madvise and fadvise
    [Show full text]