BeagleBoard Workshop ESC Boston 2011

11
1 Embedded Android Workshop On BeagleBoard

description

ESC Boston 2011 BeagleBoard Workshop

Transcript of BeagleBoard Workshop ESC Boston 2011

Page 1: BeagleBoard Workshop ESC Boston 2011

1

Embedded Android Workshop

On BeagleBoard

Page 2: BeagleBoard Workshop ESC Boston 2011

2

About me

● Author of:

● Introduced Linux Trace Toolkit in 1999● Originated Adeos and relayfs (kernel/relay.c)

Page 3: BeagleBoard Workshop ESC Boston 2011

3

Agenda

● Goal● BOM● MO● Summary of modifications● Summary of issues encountered● Exercises● Gotchas

Page 4: BeagleBoard Workshop ESC Boston 2011

4

Goals

● Hands-on feel of Embedded Android work-cycle● Experience work w/ functional, real-world

Embedded Android Device and dev env.

Page 5: BeagleBoard Workshop ESC Boston 2011

5

● Your laptop● BeagleBoard w/ ULCD

● USB-to-Serial● USB SD programmer

● Class 10 SD card

BOM

Page 6: BeagleBoard Workshop ESC Boston 2011

6

MO

● 1St time this workshop is given● Organic● Peer help● Different speeds● Instructor assistance● No rush● Online scratchpad● Have a blast!

Page 7: BeagleBoard Workshop ESC Boston 2011

7

$ diffstat ulcd­esc­boston­2011­110925  build/core/combo/arch/arm/armv7­a­neon.mk                               |    1  device/ti/beagleboard/beagleboard.mk                                    |    3  device/ti/beagleboard/init.i2c_setup.sh                                 |    6  device/ti/beagleboard/init.rc                                           |    7  device/ti/beagleboard/ueventd.omap3.rc                                  |    1  frameworks/base/Android.mk                                              |    1  frameworks/base/api/current.xml                                         |  202 +++++++ frameworks/base/core/java/android/app/ContextImpl.java                  |   16  frameworks/base/core/java/android/content/Context.java                  |   10  frameworks/base/core/java/android/hardware/chronos/ChronosManager.java  |   74 ++ frameworks/base/core/java/android/hardware/chronos/IChronosService.aidl |   14  frameworks/base/services/java/com/android/server/ChronosService.java    |   90 +++ frameworks/base/services/java/com/android/server/SystemServer.java      |    7  frameworks/base/services/jni/Android.mk                                 |    1  frameworks/base/services/jni/com_android_server_ChronosService.cpp      |  178 ++++++ frameworks/base/services/jni/onload.cpp                                 |    2  hardware/libhardware/Android.mk                                         |    2  hardware/libhardware/include/hardware/chronos.h                         |   28 + hardware/libhardware/modules/chronos/Android.mk                         |   14  hardware/libhardware/modules/chronos/chronos.c                          |   97 +++ kernel/arch/arm/configs/omap3_beagle_android_defconfig                  |    4  kernel/arch/arm/mach­omap2/board­omap3beagle.c                          |  158 +++++ kernel/drivers/media/video/omap/omap_vout.c                             |    9  kernel/drivers/video/omap2/displays/panel­generic.c                     |  277 ++++++++++ kernel/include/video/omap­panel­generic­dpi.h                           |   37 + kernel/kbuild                                                           |    1  system/core/include/private/android_filesystem_config.h                 |    1  system/core/rootdir/Android.mk                                          |    7  28 files changed, 1237 insertions(+), 11 deletions(­)

Summary of modifications

Page 8: BeagleBoard Workshop ESC Boston 2011

8

Summary of issues encountered

● SD Cards● Kernel versions● LCD driver● Chronos protocol● Touch-Screen

Page 9: BeagleBoard Workshop ESC Boston 2011

9

Exercises

● Build new sources

● Program card

● Boot device w/ programmed card

● Connected device over serial to VM (minicom)

● Browsing around device over serial

● Compile existing code to talk to watch in AOSP

● Merge code into libchronos

● Create APP to talk to Chronos API

● Extras:● Remove phone signal from status bar

● Stop the Zygote from starting at boot time

● Modify build/core/core.mk to see mk includes

Page 10: BeagleBoard Workshop ESC Boston 2011

10

Gotchas / Tricks

● Don't make clean● Don't touch framework● Don't reflash all SD every time

● Copy only what you need

● Use logcat● Use dmesg

Page 11: BeagleBoard Workshop ESC Boston 2011

11

Thank you ...

[email protected]