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

Online Petition Requesting to Allow Linux Installation on Windows 8 Devices

Back in September, some concerns emerged about UEFI secure boot requirement for Windows 8 and its possible consequences on Linux and other open source operating systems: it may be impossible to install such systems on computers or devices shipped with Windows 8, either by replacing Windows 8 or in a dual boot installation as the bootloader (UEFI) would prevent such installation for security reasons. Microsoft has already replied to those concerns and stated that: At the end of the day, the customer is in control of their PC. … We work with our OEM ecosystem to provide customers with this flexibility. The security that UEFI has to offer with secure boot means that most customers will have their systems protected against boot loader attacks. For the enthusiast who wants to run older operating systems, the option is there to allow you to make that decision. So there should be an […]

Using Raspberry Pi as an Internet Kiosk

Following up on this morning post explaining how to get the kernel and minimal rootfs to run debian in qemu emulating an ARM1176 processor, I’ll show how to make a minimal rootfs to run Chrome browser in this platform. I tested it in QEMU, but this should also run on the Raspberry Pi hardware. First, you’ll have to complete the step I provided in Raspberry Pi Emulator in Ubuntu with Qemu. Start qemu: sudo qemu-system-arm -M versatilepb -cpu arm1176 -m 256 -hda rootfs.ext2 -kernel zImage -append “root=/dev/sda” -serial stdio Once you login to the console as root, create a new user (e.g guest): adduser guest This user will be needed to login with the graphical interface and ssh. In order to get an Internet Kiosk, we’ll need a web browser (Chromium) and a window manger. I chose fluxbox instead of gnome because of the size difference (8651 KB vs 1739 […]

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

Variscite System On Module based on TI OMAP4460

Variscite – an Israeli company specialized in embedded systems manufacturing, development and consulting – announced the VAR-SOM-OM44 system on module (SOM) based on TI OMAP4460 processor (dual core Cortex-A9 cores @ 1.2 ~ 1.5GHz). This SOM features 512MB of DDR2 SDRAM and a microSD socket, I/O including gigabit Ethernet, USB 2.0, 3D camera, and HDMI. Variscite also announced  the VAR-OM44CustomBoard, a development board that can be customized to match specific customers requirement as well as the VAR-DVK-OM44, a complete development kit with touchscreen for evaluation and application development purposes. Here are the VAR-SOM-OM44 SOM specifications: CPU: Texas Instruments OMAP4460 Processor (1.2GHz – 1.5GHz) dual-core ARM Cortex-A9 MPCore GPU: PowerVR™ SGX540 graphics core @384MHz Memory: 512-1024MB 400MHz LPDDR2 Built-In micro-SD Socket Display: LCD interface – Supporting 24bpp resolutions up to WXGA HDMI interface – Supporting 1080p 4-wire touch screen panel interface Audio: Line-in Stereo Headphone out Digital microphone S/PDIF Out Network: 10/100/1000Mbps […]

Finding the package that contains a particular file in Ubuntu

It often happens that a file is missing during compilation and you get this kind of error: In file included from media/audio/linux/audio_manager_linux.cc:15:0: ./media/audio/linux/alsa_input.h:8:28: fatal error: alsa/asoundlib.h: No such file or directory compilation terminated. In file included from media/audio/linux/alsa_input.cc:5:0: ./media/audio/linux/alsa_input.h:8:28: fatal error: alsa/asoundlib.h: No such file or directory compilation terminated. That usually means a development package is missing. Sometime you can just guess the name of the package or you can use aptitude to find the file. There is also another (better) method in Ubuntu: apt-file utility allows you to find the package corresponding to a particular file. First install apt-file sudo apt-get install apt-file Them the first time, you need to download the files with the data for your system apt-file update Finally, you can use apt-file to find the package. For example with alsa/asoundlib.h apt-file search alsa/asoundlib.h libasound2-dev: /usr/include/alsa/asoundlib.h   Jean-Luc Aufranc (CNXSoft)Jean-Luc started CNX Software in 2010 as […]

Generate a Custom ARM Rootfs Easily with Rootstock

You may need to generate your own rootfs for your ARM target board, but do not want to cross-compile all libraries manually. You can achieve this with rootstock, a utility that generates Ubuntu armel rootfs tarballs and/or qemu image, to be uncompressed onto a root device. First install roostock: sudo apt-get install rootstock Then generate a rootfs with the required libraries: sudo rootstock –fqdn beagleboard –login cnxsoft –password temppasswd \ –imagesize 3G –seed xfce4,gdm,pkg-config,python,perl,g++,bison,flex,\ gperf,libnss3-dev,libgtk2.0-dev,libnspr4-0d,libasound2-dev,libnspr4-dev,\ libgconf2-dev,libcairo2-dev,libdbus-1-dev,libstdc++6-4.5-dev,libexpat1-dev,\ libxslt1-dev,libxml2-dev,libbz2-dev  –dist natty Here are the details of the command line parameters: –fqdn: Hostname to be used for the target system –login: Login ID of the admin user created during setup –password: Password of the admin user created during setup –imagesize: Size of the target filesystem to be created (default 1GB) –seed: List of packages to install –dist: Specify Release to build (jaunty, karmic, lucid, maverick or natty) Alternatively you could also use an […]

EmbeddedTS embedded systems design