Post on 10-May-2015
description
1
Embedded Android Workshop
On BeagleBoard
2
About me
● Author of:
● Introduced Linux Trace Toolkit in 1999● Originated Adeos and relayfs (kernel/relay.c)
3
Agenda
● Goal● BOM● MO● Summary of modifications● Summary of issues encountered● Exercises● Gotchas
4
Goals
● Hands-on feel of Embedded Android work-cycle● Experience work w/ functional, real-world
Embedded Android Device and dev env.
5
● Your laptop● BeagleBoard w/ ULCD
● USB-to-Serial● USB SD programmer
● Class 10 SD card
BOM
6
MO
● 1St time this workshop is given● Organic● Peer help● Different speeds● Instructor assistance● No rush● Online scratchpad● Have a blast!
7
$ diffstat ulcdescboston2011110925 build/core/combo/arch/arm/armv7aneon.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/machomap2/boardomap3beagle.c | 158 +++++ kernel/drivers/media/video/omap/omap_vout.c | 9 kernel/drivers/video/omap2/displays/panelgeneric.c | 277 ++++++++++ kernel/include/video/omappanelgenericdpi.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
8
Summary of issues encountered
● SD Cards● Kernel versions● LCD driver● Chronos protocol● Touch-Screen
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
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
11
Thank you ...
karim.yaghmour@opersys.com