Difference between revisions of "Android 4.0.3 ICS on DM814x (Naon)"

From DAVE Developer's Wiki
Jump to: navigation, search
m (Running Android on Naon)
m (Building the kernel)
Line 39: Line 39:
  
 
<pre>
 
<pre>
export OUT_DIR_COMMON_BASE=/home/shared/devel/dave/naon-DAA/sw/linux/porsaria/android/rowboat-android/build-dir
+
 
 +
umask 0002
 +
export PATH=<path_to_toolchain>:$PATH
 +
export ARCH=arm
 +
export CROSS_COMPILE=arm-none-linux-gnueabi-
 +
export OUT_DIR_COMMON_BASE=<path_to_build_directory>
 
export USE_CCACHE=1
 
export USE_CCACHE=1
export CCACHE_DIR=/home/shared/devel/dave/naon-DAA/sw/linux/porsaria/android/rowboat-android/cache
+
export CCACHE_DIR=<path_to_build_cache_directory>
 
make TARGET_PRODUCT=naon OMAPES=6.x
 
make TARGET_PRODUCT=naon OMAPES=6.x
 
</pre>
 
</pre>

Revision as of 17:29, 28 March 2013

Info Box
Android-logo.jpg Applies to Android
Naon am387x-dm814x.png Applies to Naon
Maya 03.png Applies to Maya
Dido-main.png Applies to Dido

Introduction[edit | edit source]

Texas Instruments provides the Android developement kits for the Sitara platform, but an official release for the DM814x/AM387x processor is not yet available. However, it is possible to build Android 4.0.3 Ice Cream Sandwich (ICS) for the DM814x/AM387x processor and make it run on the Naon/Maya/Dido SoMs.

Useful links[edit | edit source]

Configuring the build system[edit | edit source]

Please follow the instructions to initialize the build environment and in particular download the repo tool and the AOSP source code.

Please note that the required manifest file is rowboat-ics-ti81xx.xml. Please enter the following commands to update the source code:

repo init -u git://gitorious.org/rowboat/manifest.git -m rowboat-ics-ti81xx.xml
repo sync

Building Android[edit | edit source]

Building the kernel[edit | edit source]

Assuming that rowboat-android is the directory containing the full AOSP source code:

  • kernel contains the Android kernel tree that must be patched to add Naon support
  • out/target/product/ti814xevm/ will contain the created root file system

To launch Android kernel build, enter the following commands:


umask 0002
export PATH=<path_to_toolchain>:$PATH 
export ARCH=arm
export CROSS_COMPILE=arm-none-linux-gnueabi-
export OUT_DIR_COMMON_BASE=<path_to_build_directory>
export USE_CCACHE=1
export CCACHE_DIR=<path_to_build_cache_directory>
make TARGET_PRODUCT=naon OMAPES=6.x

Makefile customization[edit | edit source]

N.B: The main Makefile must be modified at rows 71-73 so that the kernel configuration file naon_ics_defconfig is used instead of the default one.

ifeq ($(TARGET_PRODUCT), naon)
ifeq ($(KRN_DBG),1)
	$(MAKE) -C kernel ARCH=arm naon_ics_defconfig V=1 CONFIG_DEBUG_DONT_REORDER_CODE=1
else
	$(MAKE) -C kernel ARCH=arm naon_ics_defconfig
endif
endif

Building the RFS[edit | edit source]

To build the Android root file system (please note that it will take some time, depending on the host system performaces), launch the following commands:

echo "Make new RFS..."
sudo make TARGET_PRODUCT=naon OMAPES=6.x fs_tarball
echo "DONE!"

N.B: The build/core/root.mk must be modified at row 13:

ifeq ($(TARGET_PRODUCT), naon)
export SYSLINK_VARIANT_NAME := TI814X
CLEAN_RULE := syslink_clean sgx_clean kernel_clean clean
rowboat: sgx
else

row 60

endif

row 83

ifeq ($(TARGET_PRODUCT), naon)
ifeq ($(KRN_DBG),1)
	$(MAKE) -C kernel ARCH=arm naon_ics_defconfig V=1 CONFIG_DEBUG_DONT_REORDER_CODE=1
else
        $(MAKE) -C kernel ARCH=arm naon_ics_defconfig
endif
endif

row 114

ifeq ($(TARGET_PRODUCT), naon)
sgx: kernel_build ti81xx_kernel_modules
else

row 125

endif

Cleaning the build[edit | edit source]

To clean the build directory and repeat the process, just remove the out directory:

sudo rm -rf out

Running Android on Naon[edit | edit source]

U-boot environment[edit | edit source]