Cross-compiling the ARM Linux Kernel in Ubuntu 12.04 LTS

Yesterday I installed Ubuntu 12.04 ‘Precise’ Beta 1 in Virtual Box to give it a try (I could not manage to have HUD working btw), and today, I’ve noticed an article entitled “Ubuntu 12.04 ‘precise’ and cross compilation of ARM kernels” explaining how to build Linaro ARM kernel in Ubuntu 12.04. So I’ve decided to give it a try, especially it seems straightforward. I followed the instructions in the aforementioned link,  it basically worked except I had to install dpkg-dev package that also installed the build essentials (gcc, g++, etc…) and use sudo for some commands. You’ll notice the name change for the ARM gcc toolchain as it now uses hard-float by default which seems to provide quite a boost in performance for the Pandaboard. Here are the steps I followed: Install the ARM GCC cross compiler and the development package of dpkg:

Retrieve the kernel source:

Install […]

The Yocto Project Overview and Update – ELC 2012

Saul Wold, User Space Architect at Intel Open Source Technology Center, discusses the latest on the Yocto Project at the Embedded Linux Conference 2012. Abstract: The Yocto Project is a joint project to unify the world’s efforts around embedded Linux and to make Linux the best choice for embedded designs. The Yocto Project is an open source starting point for embedded Linux development which contains tools, templates, methods and actual working code to get started with an embedded device project. In addition, the Yocto Project includes Eclipse plug-ins to assist the developer. This talk gives a walk-through of the key parts of the Yocto Project for developing embedded Linux projects. In addition, features will be described from the latest release of Yocto. At the end of the talk, developers should be able to start their own embedded project using the Yocto Project and use it for developing the next great […]

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 […]

Java SE Server Compiler now Available on ARM

Hardware and software development is going full-steam ahead for ARM servers.  After Calxeda and AppliedMicro server SoCs – based respectively on Cortex A9 and ARMv8 architecture – have been announced and Ubuntu focusing further ARM development on Servers (Calxeda, Marvell and ARMv8), Oracle has released the Java SE server compiler – a throughput optimizing JIT compiler –  for ARMv7. The ARMv7 server compiler is part of Java SE for Embedded 7 Update 2. First, some quick explanations on the 2 JIT compilers available for Java SE: Client: The client compiler is a fast start-up, lightly optimizing compiler. It’s better suited for smaller footprint systems and those running applications that require fast start-up such as Android applications. Server:  The server compiler is optimizing code for throughput and produces highly-optimized code but incurs a start-up cost in achieving that. The server compiler only works on ARMv7 processors with hardfloat (VFPv3 FPU), and  initial […]

Linaro 12.01 Release with Kernel 3.2 – Android 4.0.3

Linaro has just released version 12.01 based on Linux Kernel 3.2 and Android ICS upgraded to 4.0.3.  A lot of work has been done to have video hardware decoding on OMAP 4 (in GStreamer) enabling Pandaboard to run Ubuntu TV and XBMC with Video HW acceleration. Prebuilt binaries for Linaro GCC and Linaro GDBare now available which means you don’t need to use Ubuntu with Linaro Toolchain. It has been tested with Debian 6.0.2, Fedora 16, openSUSE 12.1 and Red Hat Enterprise Linux Workstation 5.7 and should run on any Linux Standard Base 3.0 compatible distribution. Windows binaries are also available and known to work on Windows XP Pro SP3, Windows Vista Business SP2 and Windows 7 Pro SP1. Here are the highlights of the release: Android Linaro’s ICS has been upgraded to 4.0.3. Linaro Android ICS builds are now optimized using -O3 with the Linaro Toolchain. Click through builds […]

Installing Emdebian ARM Cross Toolchain in Debian

I had previously installed Sourcery G++ ARM Linux toolchain in Ubuntu to build some software running in Debian, but I encountered some issues with some libraries (libavg) that use gethostbyname in static libraries without any easy way to make it dynamic. In that case, the library in the rootfs and cross-compiler must match.  So I decided to install Debian Squeeze (6.0.3) and the corresponding cross-toolchain by Emdebian (short for Embedded Debian). First to use this toolchain, add the URL to get Emdebian packages to /etc/apt/sources.list: # # — Emdebian cross toolchains # deb http://www.emdebian.org/debian/ squeeze main Then install Emdebian public key: apt-get install emdebian-archive-keyring apt-get update If you don’t install the key, you’ll get the following error: W: GPG error: http://www.emdebian.org squeeze Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY B5B7720097BB3B58 Search and install packages for the architecture that you need, in this […]

Using Buildroot For a Real Project – ELCE 2011

Thomas Petazzoni, embedded Linux engineer and trainer at Free Electrons, shows how they used buildroot for a specific project at Embedded Linux Conference Europe 2011. Abstract: Buildroot is a nice, simple and efficient tool to build small to medium sized embedded Linux systems, such as the ones found in many industrial systems or highly dedicated systems. Buildroot allows to automate the process of building a cross-compiling toolchain, building the root filesystem with all userspace components, building a Linux kernel image and a bootloader image. Based on experiences of a specific customer project, Thomas details how Buildroot can be configured and used to quickly produce nice, fast and efficient embedded Linux systems, but also how the target application development and debugging can be done based on Buildroot. You can also download the presentation slides. Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as […]

LLVM (Low Level Virtual Machine) Compiler Infrastructure

The Low Level Virtual Machine (LLVM) is a compiler and toolchain infrastructure, written in C++, designed for compile-time, link-time, run-time, and “idle-time” optimization of programs written in arbitrary programming languages. Originally implemented for C/C++, LLVM is now used with a variety programming languages such as Python, Ruby and may others. Code in the LLVM project is licensed under the “UIUC” BSD-Style license. LLVM can be used to replace and/or supplement the GNU tools such as gcc, g++, gdb, etc… LLVM now consists of a number of different sub-projects including: The LLVM Core libraries provide a source- and target-independent optimizer, along with code generation support for many popular CPUs. These libraries are built around a well specified code representation known as the LLVM intermediate representation (“LLVM IR”). The LLVM Core libraries are well documented, and it is particularly easy to invent your own language (or port an existing compiler) to use […]

EmbeddedTS embedded systems design