This page describes how to port Android (integrated with GStreamer) to OMAP3 platforms (BeagleBoard & OMAP3EVM).
Contents[hide] |
Android port
Current release of Android port for OMAP3 has following features/support
- Support for BeagleBoard
- Support for OMAP3EVM platform
- Android Toolchain's replacement with Embinux-Android Toolchain
- GStreamer (0.10) integration
- gst-plugins-bad
- gst-plugins-base
- gst-plugins-good
- gst-plugins-ugly
- gst-ffmpeg
- gst-opemmax
Source Code
Download Android Build
Follow these steps for downloading build from Embinux labs
$mkdir ~/Android_build $cd ~/Android_build
For BeagleBoard
$repo init -u git://labs.embinux.org/embinux-android-build/android-omap3/repo/android/platform/manifest.git -b gstreamer-cupcake-omap-beagle
For omap3evm
$repo init -u git://labs.embinux.org/embinux-android-build/android-omap3/repo/android/platform/manifest.git -b gstreamer-cupcake-omap-evm
$repo sync
Note : For complete information about repo check following links
Build Compilation
$cd ~/Android_build $source build/envsetup.sh $choosecombo 1 1 beagle eng --> For beagleboard $choosecombo 1 1 omap3evm eng --> For omap3evm $make
Kernel Image
Current Embinux kernel for this Android port is derived from linux-omap-2.6.29.
Kernel image is generated at following path.
BeagleBoard
~/Android_build/out/target/product/beagle/kernel
OMAP3EVM
~/Android_build/out/target/product/omap3evm/kernel
Copying Android RFS
$cd ~/Android_build/out/target/product/omap3evm OR $cd ~/Android_build/out/target/product/beagle $mkdir ~/Android_RFS $cp -a root/* ~/Android_RFS $cp -a data/* ~/Android_RFS/data/ $cp -a system/* ~/ Android_RFS/system/ $cd ~/Android_RFS $sudo chown -R root.root * $sudo chmod -R 777 *
GStreamer
GStreamer is a widely supported multimedia framework in Linux world. It is a pipeline based multimedia framework which allows a programmer to create a variety of media-handling components, including simple audio playback, audio and video playback, recording, streaming, and editing.
NOTE : Our GStreamer port for Android is derived from Prajnashi's Android-GStreamer port.
Boot Arguments
BeagleBoard
- console=ttyS2,115200n8 noinitrd root=/dev/mmcblk0p2 video=omapfb.mode=dvi:1280x720MR-24@50 init=/init rootfstype=ext3 rw rootdelay=1 nohz=off androidboot.console=ttyS2
OMAP3EVM
- console=ttyS0,115200n8 noinitrd root=/dev/mmcblk0p2 init=/init rootfstype=ext3 rw rootdelay=1 nohz=off androidboot.console=ttyS0
Install Video.apk
Video.apk provides an easy to use User Interface through which you can play video files.
- Download Video.apk
- Copy to Android_RFS/system/apps/
Playing Video using GStreamer
Presently it supports only 3gp
* Copy video.3gp to first partition of sdcard * Copy gst.conf from ~Android_build/external/gst-plugins-android/player to first partition of sdcard $mount -t vfat /dev/block/mmcblk0p1 /sdcard $setprop EXTERNAL_STORAGE_STATE mounted $am broadcast -a android.intent.action.MEDIA_MOUNTED --ez read-only false -d file:///sdcard * Play Video from User Interface
NOTE
- Android uses opencore if gst.conf is not copied
- Presently audio is not fully functional
Debugging Android
- Execute $logcat from shell
- Check if you can find *.dex files of android apps in /data/dalvik-cache
Enabling Network
- Connect eth0 interface to usb hub via ethernet to usb converter
- Edit init.rc from <Android_RFS>/init.rc
#basic network init setprop net.dns1 <primary-dns-server-ip>
- Boot Beagle board
- Execute following commands from minicom
$netcfg eth0 up $netcfg eth0 dhcp
NOTE:- Enable appropriate driver for your "ethernet to usb converter" in kernel. Driver can be found at :-
│ -> DeviceDrivers │ │ -> Network device support (NETDEVICES[=y]) │ │ -> USB Network Adapters