SlideShare a Scribd company logo
1 of 35
Overview
The simple way to BYOT
The harder way
Introduction
Beaglebone Black (Texas Instrument)
Load it with Android
Install Chipsee Capacitive Touch Cape
Difficulty Levels
Different ways to do it, at varying difficulty levels:
1. Level: Easy
2. Level: Hard (Offers more features)
3. Level: Ninja!!! (Do crazy stuff)
The easy way
Make bootable SD (min 2GB)
Mount Chipsee Touch Screen Cape
Boot up
Specs
1. Android Jelly Bean 4.1.2
2. Linux 3.2
3. ADB
4. SGX Graphics Accelerator
Android

Linux Kernel
Bootloader
Components
1. Bootloader
•

U-boot.img

•

MLO

2. Kernel
•

uImage

3. Android Filesystem
•

Rootfs
Making bootable SD
Make sure rootfs the correct archive type
depending on mkmmc-android.sh
Tip: bunzip2 -c < file.tar.bz2 | gzip -c > file.tar.gz

Check SD card’s mount
Run script
$ sudo ./mkmmc-android.sh /dev/sdX
The hard way
Compiling from source
Choose Android version (Rowboat? TI? Chipsee?)
Choose Kernel version (3.2, 3.8 , 3.12)
Choose boot-loader (u-boot, fastboot)

Choose download method
From Gitorious
From Pre-packaged source from TI
From Pre-packaged source from Chipsee
Preparation
1. Install JDK 6
•

Some complications here

2. Install packages (apt-get)

3. Install Repo (if getting from Git)
Toolbox (Optional)
FTDI (Chip) Cable, used for Console Output in
debugging
(USB to TTL) 3.3v or 5v
USB to RS232 to USB Cable
Build Host Requirements
Simple? Not quite…
1. x64 Ubuntu 10.x or above (12.04 recc)
2. 100GB disk space and 4GB RAM
3. Virtual Machine (Optional)
4. Lots of time and patience
Tools (Optional)
FDTI (Chip) Cable for console
output/debugging
USB to TTL (3.3v or 5v)
USB to RS232
Steps
Prep Host
Download sources
Customise (Optional)
Build (make commands)
u-boot
Kernel
Android (Do this last, trust me …)

Copy Chipsee Additions
Make SD Card
Install Packages
$ sudo apt-get install git-core gnupg flex bison gperf build-essential 
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev 
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1mesa-glx:i386 
libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos 
python-markdown libxml2-utils xsltproc zlib1g-dev:i386 
minicom tftpd uboot-mkimage expect

$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linuxgnu/libGL.so
Install JDK 6
Register and login at Oracle
http://www.oracle.com/technetwork/java/javasebusiness/downloads/ja
va-archive-downloads-javase6-419409.html

Download and unpack jdk-6u45-linuxx64.bin from Oracle
$ chmod a+x jdk6u45-linux-x64.bin
$ cd .jdk6u45-linux-x64.bin
Install JDK 6 (cont.)
Install java update tool from Google
$ sudo mkdir /usr/lib/jvm
$ sudo mv jdk.1.6.0.45
$ sudo wget http://webupd8.googlecode.com/files/update-java-0.5b
$ sudo chmod +x update-java-0.5b
$ sudo ./update-java-0.5b
Install JDK (cont.)
If you want to get source from Rowboat, install
Repo
$ mkdir bin
$ PATH=~/bin:$PATH
$ sudo bash -c "curl http://commondatastorage.googleapis.com/git-$
repo-downloads/repo > ~/bin/repo
$ sudo chmod a+x ~/bin/repo
Setup toolchain
Set Path
$ export PATH=<android-src>/prebuilts/gcc/linux-x86/arm/arm-eabi4.6/bin:$PATH
U-Boot
Download Source or use pre-packed
*patch if using Kernel 3.8 or higher
$ wget https://raw.github.com/eewiki/u-bootpatches/master/v2013.04/0001-am335x_evm-uEnv.txt-bootz-nfixes.patch
$ patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
U-boot
Build
$ make CROSS_COMPILE=arm-eabi- distclean
$ make CROSS_COMPILE=arm-eabi- am335x_evm_config
$ make CROSS_COMPILE=arm-eabi- -j<N>
<N> is the number of cores x 2 for faster compilation
Kernel Options
Kernel 3.2 (Maintained by TI)
No Device Tree Support
Git or pre-packaged source

Kernel 3.8 and above (Linux mainlining project)
No SGX Support

3.12 recently added
*Kernel 3.8 and 3.12
Checkout the source (3.8 and 3.12)
$ git clone git://github.com/RobertCNelson/linux-dev.git
$ cd linux-dev
$ git checkout origin/am33x-v3.8 -b tmp
$ ./build_kernel.sh
Kernel 3.2
Found in source from TI (or Chipsee’s)
$ cd linux
$ make CROSS_COMPILE=arm-eabi- distclean
$ make CROSS_COMPILE=arm-eabi- am335x_evm_android_defconfig
$ make CROSS_COMPILE=arm-eabi- uImage -j<N>
<N> is the number of cores x 2 for faster compilation
Build Android Filesystem
Build Android
$ cd ~/<android-src>
make TARGET_PRODUCT=am335xevm_sk OMAPES=4.x

Wait…
Wait…
Wait…
ZZzzz …
Create Boot Script
Create a file uEnv.txt with contents
bootargs=console=ttyO0,115200n8
androidboot.console=ttyO0 mem=256M root=/dev/mmcblk0p2
rw rootfstype=ext4 rootwait init=/init ip=off bootcmd=mmc
rescan ; fatload mmc 0 81000000 uImage ; bootm 81000000
uenvcmd=boot
Make bootable SD
Copy files to tmp location and make Tarball
$ cd ~/<android-src>
$ make TARGET_PRODUCT=am335xevm_sk fs_tarball
$ cp <uEnv-location>/uEnv.txt image/boot
$ cp kernel/arch/arm/boot/uImage image/boot
$ cp u-boot/u-boot.img image/boot
$ cp u-boot/MLO image/boot
$ cp out/target/product/a,335xevm_sk/rootfs.tar.bz2 image

Follow the instructions described previously to
make bootable SD
*WiFi
1. WiFi (RTL8188CUS Chipset)
1. More downloads and builds 

2. SoftAP/WiFi hotspot and WiFi Direct

3. Default Linux Wl2xx chipset drivers
It’s a wrap!
For cheap prototypes…
Custom build for enterprise/industrial
applications

Frustrated with Emulators and VMs?
Peeking under the pants hood of Android
More Information
TI Website
Rowboat Project
Robert C Nelson
My (almost defunct) Website
www.colormecode.com
Where to buy
RS Components (Singapore)
http://singapore.rs-online.com/web/
Beaglebone Black
USB-TTL (Optional)
USB to RS232 (Optional but recommended)

Chipsee Capacitive
http://www.chipsee.com/
Ships to Singapore for about SG$40
Where to download
Android
https://gitorious.org/rowboat
http://www.ti.com/lsds/ti/tools-software/android.page
Chipsee CD

Kernel 3.8 and 3.12
https://github.com/RobertCNelson/linux-dev
Chipsee CD

U-Boot
git://git.denx.de/u-boot.git
Chipsee CD

More Related Content

What's hot

Programming OpenRISC on Altera De0_nano
Programming OpenRISC on Altera De0_nanoProgramming OpenRISC on Altera De0_nano
Programming OpenRISC on Altera De0_nano
Yi-Chiao
 

What's hot (20)

QEMU in Cross building
QEMU in Cross buildingQEMU in Cross building
QEMU in Cross building
 
Grub
GrubGrub
Grub
 
Programming OpenRISC on Altera De0_nano
Programming OpenRISC on Altera De0_nanoProgramming OpenRISC on Altera De0_nano
Programming OpenRISC on Altera De0_nano
 
Introduction to Linux Kernel Development
Introduction to Linux Kernel DevelopmentIntroduction to Linux Kernel Development
Introduction to Linux Kernel Development
 
A Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiA Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry Pi
 
Recipe of a linux Live CD (archived)
Recipe of a linux Live CD (archived)Recipe of a linux Live CD (archived)
Recipe of a linux Live CD (archived)
 
Scaling IO-bound microservices
Scaling IO-bound microservicesScaling IO-bound microservices
Scaling IO-bound microservices
 
Getting started with LinuxBoot Firmware on AArch64 Server
Getting started with LinuxBoot Firmware on AArch64 Server Getting started with LinuxBoot Firmware on AArch64 Server
Getting started with LinuxBoot Firmware on AArch64 Server
 
My First AMD EPYC 7251 memo
My First AMD EPYC 7251 memoMy First AMD EPYC 7251 memo
My First AMD EPYC 7251 memo
 
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting ProcessLearning AOSP - Android Booting Process
Learning AOSP - Android Booting Process
 
Emu log
Emu logEmu log
Emu log
 
Jagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratchJagan Teki - U-boot from scratch
Jagan Teki - U-boot from scratch
 
Ha opensuse
Ha opensuseHa opensuse
Ha opensuse
 
Qemu
QemuQemu
Qemu
 
There is more to C
There is more to CThere is more to C
There is more to C
 
Linux fundamental - Chap 12 Hardware Management
Linux fundamental - Chap 12 Hardware ManagementLinux fundamental - Chap 12 Hardware Management
Linux fundamental - Chap 12 Hardware Management
 
NetBSD workshop
NetBSD workshopNetBSD workshop
NetBSD workshop
 
Linux Containers From Scratch: Makfile MicroVPS
Linux Containers From Scratch: Makfile MicroVPSLinux Containers From Scratch: Makfile MicroVPS
Linux Containers From Scratch: Makfile MicroVPS
 
firmware hacking, slash the pineapple for fun (codebali 2015)
firmware hacking, slash the pineapple for fun (codebali 2015)firmware hacking, slash the pineapple for fun (codebali 2015)
firmware hacking, slash the pineapple for fun (codebali 2015)
 
OSS AWS 핸즈온 강의
OSS AWS 핸즈온 강의OSS AWS 핸즈온 강의
OSS AWS 핸즈온 강의
 

Similar to Build Your Own Android Tablet

ELC-E Linux Awareness
ELC-E Linux AwarenessELC-E Linux Awareness
ELC-E Linux Awareness
Peter Griffin
 
Android Boot Time Optimization
Android Boot Time OptimizationAndroid Boot Time Optimization
Android Boot Time Optimization
Kan-Ru Chen
 
LAS16-403 - GDB Linux Kernel Awareness
LAS16-403 - GDB Linux Kernel Awareness LAS16-403 - GDB Linux Kernel Awareness
LAS16-403 - GDB Linux Kernel Awareness
Peter Griffin
 

Similar to Build Your Own Android Tablet (20)

A million ways to provision embedded linux devices
A million ways to provision embedded linux devicesA million ways to provision embedded linux devices
A million ways to provision embedded linux devices
 
005 skyeye
005 skyeye005 skyeye
005 skyeye
 
Build and Run Android N Source Ccode on NXP SABRESD platform
Build and Run Android N Source Ccode on NXP SABRESD platformBuild and Run Android N Source Ccode on NXP SABRESD platform
Build and Run Android N Source Ccode on NXP SABRESD platform
 
Let Me Pick Your Brain - Remote Forensics in Hardened Environments
Let Me Pick Your Brain - Remote Forensics in Hardened EnvironmentsLet Me Pick Your Brain - Remote Forensics in Hardened Environments
Let Me Pick Your Brain - Remote Forensics in Hardened Environments
 
DEF CON 23 - Phil Polstra - one device to pwn them all
DEF CON 23 - Phil Polstra - one device to pwn them allDEF CON 23 - Phil Polstra - one device to pwn them all
DEF CON 23 - Phil Polstra - one device to pwn them all
 
ELC-E Linux Awareness
ELC-E Linux AwarenessELC-E Linux Awareness
ELC-E Linux Awareness
 
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021Let's trace Linux Lernel with KGDB @ COSCUP 2021
Let's trace Linux Lernel with KGDB @ COSCUP 2021
 
Android Boot Time Optimization
Android Boot Time OptimizationAndroid Boot Time Optimization
Android Boot Time Optimization
 
Lecture 6 Kernel Debugging + Ports Development
Lecture 6 Kernel Debugging + Ports DevelopmentLecture 6 Kernel Debugging + Ports Development
Lecture 6 Kernel Debugging + Ports Development
 
Linux Containers (LXC)
Linux Containers (LXC)Linux Containers (LXC)
Linux Containers (LXC)
 
Ps3 linux
Ps3 linuxPs3 linux
Ps3 linux
 
BKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
BKK16-211 Internet of Tiny Linux (io tl)- Status and ProgressBKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
BKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
 
LAS16-403 - GDB Linux Kernel Awareness
LAS16-403 - GDB Linux Kernel Awareness LAS16-403 - GDB Linux Kernel Awareness
LAS16-403 - GDB Linux Kernel Awareness
 
LAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel AwarenessLAS16-403: GDB Linux Kernel Awareness
LAS16-403: GDB Linux Kernel Awareness
 
Qt native built for raspberry zero
Qt native built for  raspberry zeroQt native built for  raspberry zero
Qt native built for raspberry zero
 
Study on Android Emulator
Study on Android EmulatorStudy on Android Emulator
Study on Android Emulator
 
Launch the First Process in Linux System
Launch the First Process in Linux SystemLaunch the First Process in Linux System
Launch the First Process in Linux System
 
Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux Developers
 
Basic Linux kernel
Basic Linux kernelBasic Linux kernel
Basic Linux kernel
 
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
qemu + gdb: The efficient way to understand/debug Linux kernel code/data stru...
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

Build Your Own Android Tablet

  • 1.
  • 2. Overview The simple way to BYOT The harder way
  • 3. Introduction Beaglebone Black (Texas Instrument) Load it with Android Install Chipsee Capacitive Touch Cape
  • 4. Difficulty Levels Different ways to do it, at varying difficulty levels: 1. Level: Easy 2. Level: Hard (Offers more features) 3. Level: Ninja!!! (Do crazy stuff)
  • 5. The easy way Make bootable SD (min 2GB) Mount Chipsee Touch Screen Cape Boot up
  • 6. Specs 1. Android Jelly Bean 4.1.2 2. Linux 3.2 3. ADB 4. SGX Graphics Accelerator
  • 9. Making bootable SD Make sure rootfs the correct archive type depending on mkmmc-android.sh Tip: bunzip2 -c < file.tar.bz2 | gzip -c > file.tar.gz Check SD card’s mount Run script $ sudo ./mkmmc-android.sh /dev/sdX
  • 10.
  • 11.
  • 12. The hard way Compiling from source Choose Android version (Rowboat? TI? Chipsee?) Choose Kernel version (3.2, 3.8 , 3.12) Choose boot-loader (u-boot, fastboot) Choose download method From Gitorious From Pre-packaged source from TI From Pre-packaged source from Chipsee
  • 13. Preparation 1. Install JDK 6 • Some complications here 2. Install packages (apt-get) 3. Install Repo (if getting from Git)
  • 14. Toolbox (Optional) FTDI (Chip) Cable, used for Console Output in debugging (USB to TTL) 3.3v or 5v USB to RS232 to USB Cable
  • 15. Build Host Requirements Simple? Not quite… 1. x64 Ubuntu 10.x or above (12.04 recc) 2. 100GB disk space and 4GB RAM 3. Virtual Machine (Optional) 4. Lots of time and patience
  • 16. Tools (Optional) FDTI (Chip) Cable for console output/debugging USB to TTL (3.3v or 5v) USB to RS232
  • 17. Steps Prep Host Download sources Customise (Optional) Build (make commands) u-boot Kernel Android (Do this last, trust me …) Copy Chipsee Additions Make SD Card
  • 18. Install Packages $ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 minicom tftpd uboot-mkimage expect $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linuxgnu/libGL.so
  • 19. Install JDK 6 Register and login at Oracle http://www.oracle.com/technetwork/java/javasebusiness/downloads/ja va-archive-downloads-javase6-419409.html Download and unpack jdk-6u45-linuxx64.bin from Oracle $ chmod a+x jdk6u45-linux-x64.bin $ cd .jdk6u45-linux-x64.bin
  • 20. Install JDK 6 (cont.) Install java update tool from Google $ sudo mkdir /usr/lib/jvm $ sudo mv jdk.1.6.0.45 $ sudo wget http://webupd8.googlecode.com/files/update-java-0.5b $ sudo chmod +x update-java-0.5b $ sudo ./update-java-0.5b
  • 21. Install JDK (cont.) If you want to get source from Rowboat, install Repo $ mkdir bin $ PATH=~/bin:$PATH $ sudo bash -c "curl http://commondatastorage.googleapis.com/git-$ repo-downloads/repo > ~/bin/repo $ sudo chmod a+x ~/bin/repo
  • 22. Setup toolchain Set Path $ export PATH=<android-src>/prebuilts/gcc/linux-x86/arm/arm-eabi4.6/bin:$PATH
  • 23. U-Boot Download Source or use pre-packed *patch if using Kernel 3.8 or higher $ wget https://raw.github.com/eewiki/u-bootpatches/master/v2013.04/0001-am335x_evm-uEnv.txt-bootz-nfixes.patch $ patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
  • 24. U-boot Build $ make CROSS_COMPILE=arm-eabi- distclean $ make CROSS_COMPILE=arm-eabi- am335x_evm_config $ make CROSS_COMPILE=arm-eabi- -j<N> <N> is the number of cores x 2 for faster compilation
  • 25. Kernel Options Kernel 3.2 (Maintained by TI) No Device Tree Support Git or pre-packaged source Kernel 3.8 and above (Linux mainlining project) No SGX Support 3.12 recently added
  • 26. *Kernel 3.8 and 3.12 Checkout the source (3.8 and 3.12) $ git clone git://github.com/RobertCNelson/linux-dev.git $ cd linux-dev $ git checkout origin/am33x-v3.8 -b tmp $ ./build_kernel.sh
  • 27. Kernel 3.2 Found in source from TI (or Chipsee’s) $ cd linux $ make CROSS_COMPILE=arm-eabi- distclean $ make CROSS_COMPILE=arm-eabi- am335x_evm_android_defconfig $ make CROSS_COMPILE=arm-eabi- uImage -j<N> <N> is the number of cores x 2 for faster compilation
  • 28. Build Android Filesystem Build Android $ cd ~/<android-src> make TARGET_PRODUCT=am335xevm_sk OMAPES=4.x Wait… Wait… Wait… ZZzzz …
  • 29. Create Boot Script Create a file uEnv.txt with contents bootargs=console=ttyO0,115200n8 androidboot.console=ttyO0 mem=256M root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait init=/init ip=off bootcmd=mmc rescan ; fatload mmc 0 81000000 uImage ; bootm 81000000 uenvcmd=boot
  • 30. Make bootable SD Copy files to tmp location and make Tarball $ cd ~/<android-src> $ make TARGET_PRODUCT=am335xevm_sk fs_tarball $ cp <uEnv-location>/uEnv.txt image/boot $ cp kernel/arch/arm/boot/uImage image/boot $ cp u-boot/u-boot.img image/boot $ cp u-boot/MLO image/boot $ cp out/target/product/a,335xevm_sk/rootfs.tar.bz2 image Follow the instructions described previously to make bootable SD
  • 31. *WiFi 1. WiFi (RTL8188CUS Chipset) 1. More downloads and builds  2. SoftAP/WiFi hotspot and WiFi Direct 3. Default Linux Wl2xx chipset drivers
  • 32. It’s a wrap! For cheap prototypes… Custom build for enterprise/industrial applications Frustrated with Emulators and VMs? Peeking under the pants hood of Android
  • 33. More Information TI Website Rowboat Project Robert C Nelson My (almost defunct) Website www.colormecode.com
  • 34. Where to buy RS Components (Singapore) http://singapore.rs-online.com/web/ Beaglebone Black USB-TTL (Optional) USB to RS232 (Optional but recommended) Chipsee Capacitive http://www.chipsee.com/ Ships to Singapore for about SG$40
  • 35. Where to download Android https://gitorious.org/rowboat http://www.ti.com/lsds/ti/tools-software/android.page Chipsee CD Kernel 3.8 and 3.12 https://github.com/RobertCNelson/linux-dev Chipsee CD U-Boot git://git.denx.de/u-boot.git Chipsee CD