Embedded Android Workshop at Android Open 2011

The first Android Open Conference took place about 10 days ago. Karim Yaghmour of OperSys published the presentation slides he used during his Android presentations. See Embedded Android Workshop presentation slides below. Those 159 slides cover the following: Android Basics Android History Android Ecosystem Legal Framework for Android Platform and Hardware requirements Development Tools Concepts and Internals: Android Concepts Framework Intro Native Development Overall Architecture System startup Linux Kernel Hardware Support Native User-Space Dalvik JNI System Server Calling on Services Activity Manager Binder Stock AOSP Apps Android Open Source Projects Tools and location Content Building Build system Adding new applications Images Using adb System Server Services run by System Server Observing the System Server Calling on system services Inside a few system services Creating your own system service Hardware Abstraction Layer Android Framework Location and components Android Customization Custom Toolchains and Dev Kits Rationale SDK generation NDK generation Creating a […]

Raspberry Pi Emulator in Ubuntu with Qemu

The Raspberry Pi board is a low cost board based on Broadcom BCM2835 media processor SoC with an ARM1176JZF-S core clocked at 700MHz. This board is currently under development and should be ready by end of November, beginning of December and will be sold for 25 USD (128MB RAM – no Ethernet) and 35 USD (256MB RAM – Ethernet). While we are waiting for the board, we can still test software using qemu to emulate a board based on an ARM1176 core with 128MB or 256 MB memory. I’ve tried to create a rootfs based on Ubuntu with rootstock but this only support processors with ARM cortex A8 and greater, so it would not work with ARM11. I’ll be using Debian Squeeze instead. Prerequisites My host computer is running Ubuntu 10.04.3 LTS, but any recent Ubuntu or Debian installation should work with these instructions. [Update: You won’t be able to […]

Archos G9 GPL Source Code

Archos has released the GPL source code for the Archos G9 Tablets on their Gitorious account. This is obviously the same source code for Archos 80 G9 and Archos 101 G9. There are two git repositories for the G9: archos-gpl-gen9 – Archos generation 9 GPL release archos-gpl-gen9-kernel – Archos generation 9 GPL linux kernel 2.6 release The GPL “userspace” source code is divided into 4 directories: buildroot – Buildroot to generate a cross-compilation toolchain, a root filesystem, a kernel image and a bootloader image. hardware – Direcotory containing hardware related source: WL1283 “Wlan” Driver (WiLink 7.0 single-chip WLAN, GPS, Bluetooth and FM solution) packages: libf2m – Library to convert flash videos (FLV) to AVI, MOV or MP4 libmms – Library for streaming video/audio with mmst / mmsh protocols external- Utilities and libraries (Bold indicates external sw not released/used with Archos G8 Source Code) alsa-lib – Audio library alsa-utils – Audio […]

How to Write and Submit a Linux Kernel Patch

Greg Kroah-Hartman has a very good tutorial about writing and submitting a patch to the Linux kernel. The video is over 1 year old but this is still relevant. The materials for this tutorial are available via git: git clone git://github.com/gregkh/kernel-tutorial.git Alternatively, you can also download a copy of the presentation slides. The actual presentation is divided into 6 parts: git basics (git branch, git clone…) Kernel coding style (Details can be found in Documentation/CodingStyle) Fixing a file (with scripts/checkpatch.pl scripts) Generating a patch (with git -diff) Email the patch (with scripts/get_maintainer.pl and git send-email) Q&A If you want to skip the git basics and kernel coding style parts (although I don’t recommend it), fast forward to 13:33. All patches by in the linux kernel are checked by at least 2 persons. Before submitting a patch, you’ll have to make sure of the following (Checklist): Kernel builds with patch applied […]

Yocto Project: Build Your Own Custom Embedded Kernel Image

The Yocto Project is an open source collaboration project that provides templates, tools and methods to help you create custom Linux-based systems for embedded products regardless of the hardware architecture. The first official release (Yocto Project 1.0) has been made available on the 6th of April 2011. Yocto Project Overview See this short video presentation of the Yocto Project which explains its goals. It’s a complete embedded Linux development environment with tools, metadata, and documentation – everything you need such as emulation environments, debuggers, an Application Toolkit Generator, etc… It is not a new build system however such as buildroot, instead it relies on the Poky build tools that provide an open source development environment targeting the ARM, MIPS, PowerPC and x86 architectures. Here’s what the Yocto Project provides: A recent Linux kernel along with a set of system commands and libraries suitable for the embedded environment. System components such […]

Embedded Linux Quick Start / Tutorial Videos

Free Electrons recorded some videos from the Embedded Linux Conference Europe, in Cambrigde, United Kingdom on October 2010 by Chris Simmonds, the founder of 2net Limited, a UK company providing training, consultancy and custom software for Linux and other embedded platforms. The videos can either be downloaded in webm HD format at http://free-electrons.com/blog/elce-2010-tutorial-videos/ or you can watch them in HD format below. The PDF slides for the three parts and the lab notes are available at http://elinux.org/images/c/cc/Linux-quick-start.tar.gz The first video (53 minutes) deals with the following key points: Genesis of a Linux project The four elements: Tool chain; boot loader; kernel; user space Element 1: Tool chain Element 2: Boot loader The second video (1h19m) focuses on: Third element: Kernel Fourth element: User space The last video (1h07m) is more practical as it shows how to use embedded Linux on an NXP LPC3250 Stick (ARM9): Description of the hardware Installing […]

Removing Old Kernels in Ubuntu with Synaptic

If you have used Ubuntu for a while and performed upgrades, you may have quite a few kernels in GNU GRUB as shown below: Those kernels are usually not necessary, they take space on your hard disk and make you scroll down in GRUB to access your other OS (if any). I’ll show how to only keep the last 2 kernels (for safety) in GRUB with Synaptic. First, start synaptic as a superuser: sudo synaptic Select “System Administration“, in type “linux-image” in the Quick search field and show the installed kernel (green tick box). Then select the kernels you want to remove (keep the last 2 versions), right-click and select “Mark for Removal”. Synaptic Package Manager window should look like the screenshot below: After that, simply click on Apply and within a short time (one minute in my case), the selected kernel are removed. Removing 4 kernels, freed 429 MB […]