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

From DAVE Developer's Wiki
Jump to: navigation, search
m (Building the kernel)
m (U-boot environment)
Line 124: Line 124:
  
 
== U-boot environment ==
 
== U-boot environment ==
 +
 +
The following u-boot environment variables must be set to run Android:
 +
 +
<pre>
 +
naon_host=evb_lite_android
 +
andrk=tftp ${loadaddr} android/uImage
 +
andrroot=<path_to_android_rootfs>
 +
andrcons=setenv bootargs ${bootargs} console=ttyO0,115200n8 androidboot.console=ttyO0 rootwait noinitrd init=/init rw earlyprintk
 +
andrmem=setenv bootargs ${bootargs} mem=364M vram=16M notifyk.vpssm3_sva=${notify_mem}
 +
andrenv-nfs=setenv bootargs root=/dev/nfs rw nfsroot=${nfsserverip}:${andrroot} panic=5 loglevel=6 rootdelay=5
 +
andrenv-mmc=setenv bootargs root=/dev/mmcblk0p1 rootfstype=ext3 loglevel=8 rootdelay=2 panic=5
 +
android=run andrk andrenv-nfs andrmem andrcons addip; bootm ${buf}
 +
android-mmc=run andrk andrenv-mmc andrmem andrcons addip; bootm ${buf}
 +
andrnand=run andrenv-mmc andrmem andrcons addip; sf probe 0:0; sf read ${loadaddr} 0x80000 0x400000; bootm ${loadaddr}
 +
</pre>

Revision as of 17:30, 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]

The following u-boot environment variables must be set to run Android:

naon_host=evb_lite_android
andrk=tftp ${loadaddr} android/uImage
andrroot=<path_to_android_rootfs>
andrcons=setenv bootargs ${bootargs} console=ttyO0,115200n8 androidboot.console=ttyO0 rootwait noinitrd init=/init rw earlyprintk
andrmem=setenv bootargs ${bootargs} mem=364M vram=16M notifyk.vpssm3_sva=${notify_mem}
andrenv-nfs=setenv bootargs root=/dev/nfs rw nfsroot=${nfsserverip}:${andrroot} panic=5 loglevel=6 rootdelay=5
andrenv-mmc=setenv bootargs root=/dev/mmcblk0p1 rootfstype=ext3 loglevel=8 rootdelay=2 panic=5
android=run andrk andrenv-nfs andrmem andrcons addip; bootm ${buf}
android-mmc=run andrk andrenv-mmc andrmem andrcons addip; bootm ${buf}
andrnand=run andrenv-mmc andrmem andrcons addip; sf probe 0:0; sf read ${loadaddr} 0x80000 0x400000; bootm ${loadaddr}