Yocto Project Quick Start Guide for Ubuntu

Yocto is an embedded Linux build system used to create a Linux distribution for a specific application/board combination. I’ll describe 2 methods to get started: Building and running  a qemu image for x86 from scratch Using pre-built binaries to run the x86 image in qemu This is a shorter version of the longish Yocto Project’s Quick Start Guide. The official guide is more complete (explains all details) and give instructions for several distributions, whereas this guide simply lists each step and is focused on Ubuntu. So you could use this guide to start the build, and during the build (which will last a while), read the official guide to actually understand how it all works.   Prerequisites First, you need to use bash instead of dash in Ubuntu:

and select “No” to use bash. Then install the required packages with apt-get:

Building and running a qemu image for […]

Opersys Releases Their Android and Linux Training Materials

Opersys has decided to release their courseware under a Creative Common license (CC-BY-SA 3.0). The materials are available in PDF and ODP format for the following classes: Embedded Android – 5-days hands-on class covering Android (AOSP) for Embedded Systems (not only smartphones and tablets) Presentation Slides: PDF | ODP Exercises: PDF | ODT Android App Development – 5-day class to learn how to build your own Android Apps using Google’s SDK Presentation Slides: PDF | Tarball with Beamer files Exercises: PDF | ODT Embedded Linux– 4-days hands-On class learning about cross development, the kernel, the rootFS and the bootloader Presentation Slides: PDF | ODP Exercises: PDF | ODT Linux Device Drivers– 3-days hands-on class about modules, locking, interrupts and memory management, as well as  char, block, network and USB drivers training. Presentation Slides:PDF | ODP Exercises: PDF | ODT You can freely use this material to learn more about Android and […]

App Inventor for Android is Now Open Source

Android App Inventor has been phased out by Google some weeks ago. But it is not dead yet, as Google made it open source and it is hosted at the Massachusetts Institute of Technology (MIT). The developers of App Inventor said they won’t be accepting contributions to the source code for now, but they plan to accept other developers contribution once the project is “complete and deployed to a large-scale public server”. App Inventor is a tool that allows non-programmer to design applications for Android via a web-based interface for designing Android apps without the need to get into Java programming with the Android software development kit. The projct is being transfered between Google and MIT, and you won’t be able to use App Inventor at the moment. MIT anticipates the public instance of App Inventor will be available for the general public to access some time in the first […]

Linux Debugging: Listing Shared Libraries at Runtime

I had a library (a python plugin) that crashed and outputted the “very useful”: illegal instruction I tried pdb (the Python Debugger) to find the issue without success. So I tried to add some printf to this library but none were outputted at runtime.  So I guessed the illegal instructions was generated by the shared libraries. Let’s see how many libraries we’ve got: ldd libbrowsernode.so | wc -l 125 Oh dear!… 125 libraries.. This is where panic sets in. Luckily, there is a simple way to list the dynamic libraries as they are loaded (and some more useful info). Simply set: export LD_DEBUG=files before running your program. This is extremely verbose, so I recommend you redirect the output to a file. This method allowed me to find undefined symbols during dynamic libraries load time with errors such as: opening file=/usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-png.so [0]; direct_opencount=1 14121: 14121:     /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-png.so: error: symbol lookup error: undefined […]

Android Developers Conference 2012 (AnDevCon III) Schedule

The full schedule for AnDevCon III (14-17 May 2012)  has finally been released with 42 different classes and several workshops. The sessions will be organized into five subject area: Developer Essentials: These technical classes and workshops are for all Android developers and cover all programming topics. Android Enterprise: These technical sessions cover topics specific to building and managing apps for employees, business customers and partners, such as back-end integration corporate data center communications, ERP or CRM systems. Android Business: These classes and workshops are for entrepreneurial developers who want to learn the most effective ways of distributing and selling Android apps, including how to maximize profit through the Android Market. Android Tablets and beyond: These classes and workshops are specific to commercial devices beyond smartphones, including tablets, Google TV, and other platforms. Embedded Android: These classes and workshops are for developers working close to the hardware, such as on custom […]

Embedded Linux Conference 2012 Schedule

The Embedded Linux Conference (ELC 2012) will take place on February 15 – 15, 2012 at Hotel Sofitel in San Francisco. ELC consists of 3 days of presentations, tutorials and sessions. There will be over 50 sessions during those 3 days. I’ll highlight a few sessions that I find particularly interesting. February 15 10:30 – 11: 30 – Profiling and Performance Measurement Techniques Using Linux Kernel Tools by Govindraj Raja, Software Engineer at Texas Instruments and Partha S Basak, Technical Manager at Texas Instruments. With ever growing features and functionality of Linux kernel, one needs methods to trace and profile parts of Linux kernel for various reasons like performance analysis, debugging etc. This presentation aims at providing an insight into few of these tools and their salient features. Supporting use case data as captured on open source OMAP4 pandaboard is also provided. 14:00 – 15:00 – The Yocto Project Overview […]

Cross-compiling libavg 1.7 for ARM on Debian

libavg is a high-level development platform for media-centric applications using Python as scripting language and written in C++ and I’ve already written a post to cross-compile libavg 1.6 in Ubuntu (with linaro cross toolchain) and using Beagleboard qemu image. Since I’ve doing some preparation work to have software running on the Raspberry Pi and that the latter won’t support Ubuntu, I’ve had to cross-compile it again. This time, I’ve found a cleaner way to do the cross-compilation with dpkg-cross and xapt tools which can load the required armel package to the arm toolchain. Those tools really make life easy, as previously (a few years ago), I would have had to cross-compile all dependencies manually. Here are the steps I followed: Install Emdebian ARM Cross Toolchain and Tools in Debian. Download libavg 1.7 source code

Extract it

Install the following armel development packages: sudo /usr/share/pdebuild-cross/xapt -a armel libpango1.0-dev libavformat-dev […]

MIPS Releases Android NDK 7m

MIPS has just announced the release of the Android Native Development Kit version 7. It has the same APIs as the Android NDK revision 7 released in November 2011 (for Android 4.0), but adds support for MIPS architecture and the MIPS ABI . The NDK is available for Windows, Linux and MacOS. The NDK allows developers to use C/C++ code either to reuse existing C/C++ code or to improve the performance over code developed with Java. Note that MIPS states that “using native code does not result in an automatic performance increase, but always increases application complexity. If you have not run into any limitations using the Android framework APIs, you probably do not need the NDK.” The NDK can be downloaded for: Windows Linux Mac You’ll also have to download the Android MIPS SDK, if you want to use the NDK. Strangely, the Mac SDK is not available for […]

UP 7000 x86 SBC