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.
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
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
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
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 …
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
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