Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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 featur...
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 ...
The hard way
Compiling from source
Choose Android version (Rowboat? TI? Chipsee?)
Choose Kernel version (3.2, 3.8 , 3.12)
...
Preparation
1. Install JDK 6
•

Some complications here

2. Install packages (apt-get)

3. Install Repo (if getting from G...
Toolbox (Optional)
FTDI (Chip) Cable, used for Console Output in
debugging
(USB to TTL) 3.3v or 5v
USB to RS232 to USB Cab...
Build Host Requirements
Simple? Not quite…
1. x64 Ubuntu 10.x or above (12.04 recc)
2. 100GB disk space and 4GB RAM
3. Vir...
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 ...
Install Packages
$ sudo apt-get install git-core gnupg flex bison gperf build-essential 
zip curl libc6-dev libncurses5-de...
Install JDK 6
Register and login at Oracle
http://www.oracle.com/technetwork/java/javasebusiness/downloads/ja
va-archive-d...
Install JDK 6 (cont.)
Install java update tool from Google
$ sudo mkdir /usr/lib/jvm
$ sudo mv jdk.1.6.0.45
$ sudo wget ht...
Install JDK (cont.)
If you want to get source from Rowboat, install
Repo
$ mkdir bin
$ PATH=~/bin:$PATH
$ sudo bash -c "cu...
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-bootp...
U-boot
Build
$ make CROSS_COMPILE=arm-eabi- distclean
$ make CROSS_COMPILE=arm-eabi- am335x_evm_config
$ make CROSS_COMPIL...
Kernel Options
Kernel 3.2 (Maintained by TI)
No Device Tree Support
Git or pre-packaged source

Kernel 3.8 and above (Linu...
*Kernel 3.8 and 3.12
Checkout the source (3.8 and 3.12)
$ git clone git://github.com/RobertCNelson/linux-dev.git
$ cd linu...
Kernel 3.2
Found in source from TI (or Chipsee’s)
$ cd linux
$ make CROSS_COMPILE=arm-eabi- distclean
$ make CROSS_COMPILE...
Build Android Filesystem
Build Android
$ cd ~/<android-src>
make TARGET_PRODUCT=am335xevm_sk OMAPES=4.x

Wait…
Wait…
Wait…...
Create Boot Script
Create a file uEnv.txt with contents
bootargs=console=ttyO0,115200n8
androidboot.console=ttyO0 mem=256M...
Make bootable SD
Copy files to tmp location and make Tarball
$ cd ~/<android-src>
$ make TARGET_PRODUCT=am335xevm_sk fs_ta...
*WiFi
1. WiFi (RTL8188CUS Chipset)
1. More downloads and builds 

2. SoftAP/WiFi hotspot and WiFi Direct

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

Frustrated with Emulators and VMs?...
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 RS23...
Where to download
Android
https://gitorious.org/rowboat
http://www.ti.com/lsds/ti/tools-software/android.page
Chipsee CD

...
Build Your Own Android Tablet
Build Your Own Android Tablet
Build Your Own Android Tablet
Upcoming SlideShare
Loading in …5
×

Build Your Own Android Tablet

7,050 views

Published on

Presentation at October SG Android Developer Meetup by Jeff Pang.

Jeff Pang shows us how you can build your own Android Tablet using BeagleBone and a capacitive touch screen.

BeagleBone is an $89 MSRP, credit-card-sized Linux computer that connects to the Internet and runs software such as Android 4.0 and Ubuntu. With plenty of I/O and processing power for real-time analysis provided by an AM335x 720MHz ARM® processor, BeagleBone can be complemented with cape plug-in boards to augment functionality.

Published in: Technology
  • Be the first to comment

Build Your Own Android Tablet

  1. 1. Overview The simple way to BYOT The harder way
  2. 2. Introduction Beaglebone Black (Texas Instrument) Load it with Android Install Chipsee Capacitive Touch Cape
  3. 3. 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)
  4. 4. The easy way Make bootable SD (min 2GB) Mount Chipsee Touch Screen Cape Boot up
  5. 5. Specs 1. Android Jelly Bean 4.1.2 2. Linux 3.2 3. ADB 4. SGX Graphics Accelerator
  6. 6. Android Linux Kernel Bootloader
  7. 7. Components 1. Bootloader • U-boot.img • MLO 2. Kernel • uImage 3. Android Filesystem • Rootfs
  8. 8. 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
  9. 9. 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
  10. 10. Preparation 1. Install JDK 6 • Some complications here 2. Install packages (apt-get) 3. Install Repo (if getting from Git)
  11. 11. Toolbox (Optional) FTDI (Chip) Cable, used for Console Output in debugging (USB to TTL) 3.3v or 5v USB to RS232 to USB Cable
  12. 12. 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
  13. 13. Tools (Optional) FDTI (Chip) Cable for console output/debugging USB to TTL (3.3v or 5v) USB to RS232
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. Setup toolchain Set Path $ export PATH=<android-src>/prebuilts/gcc/linux-x86/arm/arm-eabi4.6/bin:$PATH
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. *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
  24. 24. 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
  25. 25. Build Android Filesystem Build Android $ cd ~/<android-src> make TARGET_PRODUCT=am335xevm_sk OMAPES=4.x Wait… Wait… Wait… ZZzzz …
  26. 26. 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
  27. 27. 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
  28. 28. *WiFi 1. WiFi (RTL8188CUS Chipset) 1. More downloads and builds  2. SoftAP/WiFi hotspot and WiFi Direct 3. Default Linux Wl2xx chipset drivers
  29. 29. 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
  30. 30. More Information TI Website Rowboat Project Robert C Nelson My (almost defunct) Website www.colormecode.com
  31. 31. 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
  32. 32. 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

×