26
# Android on Atom Processor Targeting Intel Silicon India, 2012 Hyderabad Mobilitas © 2012 5 October 2012

Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Android on Atom Processor

Targeting Intel

Silicon India, 2012

Hyderabad

Mobilitas © 2012 5 October 2012

Page 2: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Agenda

• The Intel x86 platform - Intel Atom processor

• Understanding the Android internal architecture and the layers that matter for porting

• The android-x86 project

• Demo of Android running

• Lenovo and VirtualBox

• A case study of Android graphics drivers for Intel platform

• Intel x86 from developer point of view

• Creating a demo application and running it on Lenovo and VirtualBox targets

Mobilitas © 2012 2

Page 3: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Background

• Currently, Chief Technology Officer of Mobilitas Technologies

• Was earlier working at

o Intel

o Was working at the Visual and Parallel Computing group, involved in the development of display graphics kernel drivers for Intel hardware focussing on Android

o Developed Intel display drivers to the Android (3.2, 4.0.3) x86 platform

o Nokia

o Involved in the development of the N800, N810, N900, N9 devices

o Developing middleware and kernel drivers for the MeeGo platform

Mobilitas © 2012 3

Page 4: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

The Mobile Market (Ref: Intel Developer Forum 2010)

Mobilitas © 2012 4

Page 5: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Intel Atom Processor (1/2)

• Is based on the standard Intel x86 architecture

• Low power, Low cost and low performance processors compared to regular core-duo, i3/i5/i7

• One core, two threads (4 in recently launched CloverTrail)

• Two instructions per clock cycle

• Is in the range of 2-2.5 watts power range

• Intel GMA 600 graphics – Integrated 2D/3D graphics, OpenGL ES2.0, 2.1, hardware accelerated HD video encode/decode

• Intel Burst Performance Technology

• Intel Hyper-Threading Technology

• Intel Smart Idle Technology

Mobilitas © 2012 5

Page 6: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Intel Atom processor (2/2)

• Atom processors available earlier too for Netbooks

• Shrinking processor technology (Medfield is 32nm)

• Peripherals support for various kinds of applications

o Flash controller, MPEG decoder, Graphics and display processor, Audio processor, Ethernet, USB, UART, GPIO, SPI, Timer, Security processor with AES, DES, SHA, RSA etc. on board

Ref: Intel website

Mobilitas © 2012 6

Page 7: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Demystifying Android Platform

Mobilitas © 2012 7

Page 8: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Linux at the core of Android

• Linux has a scalable architecture

• Android uses Linux as its core OS and creates an application framework around it

• Hardware support

• Core kernel is mostly independent of hardware

• Well-defined support for modules enables an easy way to support new hardware

• Extensive support (ranging from routers to heavy duty servers)

• Easy configuration to port it to a new hardware

• Has been supported on the Intel x86 platform from almost its inception

Mobilitas © 2012 8

Page 9: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Hardware specific layers and components

• Everything that is native code (C / C++) is

hardware specific

• Linux kernel

• Device drivers

• The Android native layer

o Native libraries

• The Android runtime

o Dalvik machine

o DVM

Non-hardware specific layers

o Application framework

o Applications (written in Java)

Mobilitas © 2012 9

Page 10: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Then What!

Okay, how do I get my Android running on Intel hardware!?

Mobilitas © 2012 10

Page 11: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

The Android-x86 project

• www.android-x86.org

• An Open Source project with the aim of porting the Android OS to Intel x86 based hardware

• Apache Public License 2.0

• Formed initially to provide just patches of Android for x86

• Pre-built images available for netbooks, desktops and virtual machines

• Provides the tool set, instructions and read-made images for specific hardware

• Application behavior can be directly tested on the host platform (which happens to be x86 for 95% of the development machines)

Mobilitas © 2012 11

Page 12: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Android x86 porting - Development tools

• The Android x86 compiler

• Git repository of Android source code

• The kernel config file to support x86

• The board support package xml files (BSP)

• Android.mk for native libraries / applications

• The x86 SDK from Intel website or android-x86.org

|-- bionic

| |-- libc

| | |-- arch-x86

| | |-- kernel

| | | |-- arch-arm

| | | |-- arch-x86

| |-- libstdc++

| |-- libthread_db

|-- bootable

|-- dalvik

|-- external

| |-- bluetooth

| |-- busybox

| |-- kernel-headers

|-- frameworks

| | |-- services

| | | |-- audioflinger

| | | |-- sensorservice

| | | |-- surfaceflinger

| | |-- telephony

| |-- media

|-- hardware

| |-- broadcom

| |-- intel

| |-- libhardware

|-- libcore

|-- ndk

|-- packages

|-- prebuilt

| |-- android-arm

| |-- android-x86

| |-- darwin-x86_64

| |-- ndk

| |-- sdk

|-- sdk

|-- system

`-- vendor Mobilitas © 2012 12

Page 13: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

What it takes to port Android to x86

• Main components of a hardware platform (SoC)

o GPU - provides hardware acceleration for graphics display

Could be an in-build display card or an external card (like nVidia)

o Wireless devices - wifi / 3G / LTE / bluetooth

o Touch devices

o Audio

o USB

• Intel display driver has good support for VGA, DVI, DP and HDMI support

• Wireless, USB, touch, audio drivers have had good support in Linux

Mobilitas © 2012 13

Page 14: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

What it takes to port Android to x86

Android

framework

(Java)

x86 Compiler

Native

binaries

x86 device

drivers Linux kernel

Board Support

Package

generates

Native

application

link

link

Flash Test

Mobilitas © 2012 14

Page 15: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Android on x86 - Demo

• Android on Lenovo S10-3t Netbook

• Source code from android-x86 project

• Ported code available for S10-3t

• Demo of Android running in ”VirtualBox” virtual machine

Mobilitas © 2012 15

Page 16: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Intel x86 display driver - a case study (1/3)

• http://intellinuxgraphics.org/

• Linux drivers available for Intel x86 display driver since more than a decade

• Driver named i915

• All Linux based distributions (Ubuntu / SuSE / ...) use the i915 graphics driver via X-server (or recently via Wayland)

• Android can work on a desktop using the i915 driver with the standard Linux kernel

Mobilitas © 2012 16

Page 17: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Intel x86 display driver - a case study (2/3)

i915.ko

libdrm.so libdrm_intel.so

intel-video-xf86

X-Server

X client library

i915.ko

libdrm.so libdrm_intel.so

gralloc

Surface Flinger

Android Window

Manager

Mobilitas © 2012 17

Page 18: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Intel x86 display driver - a case study (3/3)

• i915 driver

• does the hardware programming and provides support for displays (LVDS, VGA, eDP, HDMI, …)

• provides ioctl’s to the user space to access limited hardware functionality

• libdrm.so and libdrm_intel.so

• Uses the ioctl’s and provides an API level access

• The Android graphics gralloc layer

• is a generalized abstraction layer for hardware access

• API dictated by Google

• exposes a fixed API towards Android framework

• Surface Flinger

• Is the rendering manager responsible for Android rendering

• Uses OpenGL for 3D graphics Mobilitas © 2012 18

Page 19: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

What about Application developers!

• If you app uses native layers, then they have to be recompiled for x86

• Any app that uses the Android Java SDK should not have any problem

• Developers life made easier

o Support for virtual machine based Android

o Any application that works on native x86 can (!) be easily ported to Android

• Enables innovation by hooking in any of the hardware that already works with Intel machines, which can then easily be ported to Android

• Make use of the hardware acceleration wherever possible (in Eclipse, this can be enabled for GPU, for example)

Mobilitas © 2012 19

Page 20: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Developing app for Intel Atom - a walkthrough

• Download Intel Atom x86 image for Android ICS from the Intel website

• Create a target in the Android emulator for x86

• If you want to build one yourself, download the Android sources for x86 from android-x86.org

• Develop the application in your favorite editor (Eclipse being the widly used one)

• If the application is pure Java based, then nothing special to be done

• If it is a native application, then it should be accompanied by an Android.mk file (similar to a Makefile)

• Build the application using the command:

$> ndk-build APP_ABI=x86

• Run the application and choose the x86 target in the emulator

• Transfer the application to the target and test Mobilitas © 2012 20

Page 21: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Building an x86 based application - demo

• Demo on VirtualBox virtual machine

• Demo on Lenovo S10-3t

Mobilitas © 2012 21

Page 22: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Atom processor in the market

• Tunnel Creek

• Intel’s First Generation Intel® AtomTM Processor-based System-on-Chip for Embedded

• Applications

Industrial Automation

IP Media Phone

Electronic Cash Register

In-Vehicle Infotainment

• Xolo

• Intel Medfield SoC based first phone, marketed by Lava India Ltd.

• Also released phones in Europe with Orange telecom provider and in China with Lenovo

• Based on a single core Atom processor

Mobilitas © 2012 22

Page 23: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Processor Chipset Intel Atom Processor Z2460

CPU 1.6 GHz Intel® Atom™ with Hyper Threading

Graphics core Clock speed 400 MHz

Operating System Android 2.3 (Gingerbread) - (upgradable to Android 4.0)

Sensors Accelerometer, Gyroscope, Magnetometer, Ambient light sensor, Proximity sensor

Audio Dual Speakers Yes, 0.3 W each

Digital Microphones 2

Video Video recording &

playback

Full HD 1080p@30fps

Video codecs

supported

MPEG4, 3GPP, WMC, H.264, VP8

Video Player Android Video Player, doubleTwist

Connectivity USB (2.0 High speed), Blutooth (v2.1), NFC Antenna (13.56MHz), WLAN support, Modem

(Intel XMM6260)

Xolo phone – some interesting specs.

Mobilitas © 2012 23

Page 24: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Questions

?

Mobilitas © 2012 24

Page 25: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Thank You

Sateesh Kavuri

Chief Technology Officer, Mobilitas Technologies

Bangalore

www.mobilitas.co

Mobilitas © 2012 25

Page 26: Android on Atom Processor Targeting Intel · Background •Currently, Chief Technology Officer of Mobilitas Technologies •Was earlier working at o Intel o Was working at the Visual

#

Disclaimer

• The information provided herein is available publicly and does not contain any internal information of any company (Google, Intel)

• Intel, AtomTM, i3, i5 and i7 are trademarks of Intel Inc.

• Android is a trademark of Google Inc.

• VirtualBox is a registered trademark of Oracle Inc.

Mobilitas © 2012 26