Build Your Own Android Tablet


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

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

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 Tip: bunzip2 -c < file.tar.bz2 | gzip -c > file.tar.gz Check SD card’s mount Run script $ sudo ./ /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/ /usr/lib/i386-linuxgnu/
  16. 16. Install JDK 6 Register and login at Oracle 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. $ sudo wget $ 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$ 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 $ 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:// $ cd linux-dev $ git checkout origin/am33x-v3.8 -b tmp $ ./
  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
  31. 31. Where to buy RS Components (Singapore) Beaglebone Black USB-TTL (Optional) USB to RS232 (Optional but recommended) Chipsee Capacitive Ships to Singapore for about SG$40
  32. 32. Where to download Android Chipsee CD Kernel 3.8 and 3.12 Chipsee CD U-Boot git:// Chipsee CD