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

From DAVE Developer's Wiki
Jump to: navigation, search
m (Building Android)
m (Building Android)
Line 29: Line 29:
  
 
= Building Android =
 
= Building Android =
 +
 +
== Building the kernel ==
  
 
Assuming that '''rowboat-android''' is the directory containing the full AOSP source code:
 
Assuming that '''rowboat-android''' is the directory containing the full AOSP source code:
Line 34: Line 36:
 
* '''out/target/product/ti814xevm/''' will contain the created root file system
 
* '''out/target/product/ti814xevm/''' will contain the created root file system
  
To launch Android build (please note that it will take some time, depending on the host system performaces) enter the following commands:
+
To launch Android kernel build, enter the following commands:
  
 
<pre>
 
<pre>
Line 43: Line 45:
 
</pre>
 
</pre>
  
 +
=== Makefile customization ===
  
'''N.B''': The '''Makefile''' must be modified at rows 71-73 so that the kernel configuration file naon_ics_defconfig is used instead of the default one.
+
'''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.
 
<pre>
 
<pre>
 
ifeq ($(TARGET_PRODUCT), naon)
 
ifeq ($(TARGET_PRODUCT), naon)
Line 55: Line 58:
 
</pre>
 
</pre>
  
* '''build''' tutti gli script per il build di android
+
== Building the RFS ==
file modificato '''build/core/root.mk''' aggiungendo riga 13
+
 
 +
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:
 +
 
 +
<pre>
 +
echo "Make new RFS..."
 +
sudo make TARGET_PRODUCT=naon OMAPES=6.x fs_tarball
 +
echo "DONE!"
 +
</pre>
 +
 
 +
'''N.B''': The '''build/core/root.mk''' must be modified at row 13:
 +
 
 
<pre>
 
<pre>
 
ifeq ($(TARGET_PRODUCT), naon)
 
ifeq ($(TARGET_PRODUCT), naon)
Line 64: Line 77:
 
else
 
else
 
</pre>
 
</pre>
riga 60
+
 
 +
row 60
 +
 
 
<pre>
 
<pre>
 
endif
 
endif
 
</pre>
 
</pre>
riga 83
+
 
 +
row 83
 
<pre>
 
<pre>
 
ifeq ($(TARGET_PRODUCT), naon)
 
ifeq ($(TARGET_PRODUCT), naon)
Line 78: Line 94:
 
endif
 
endif
 
</pre>
 
</pre>
riga 114
+
 
 +
row 114
 
<pre>
 
<pre>
 
ifeq ($(TARGET_PRODUCT), naon)
 
ifeq ($(TARGET_PRODUCT), naon)
Line 84: Line 101:
 
else
 
else
 
</pre>
 
</pre>
riga 125
+
 
 +
row 125
 +
 
 
<pre>
 
<pre>
 
endif
 
endif
 
</pre>
 
</pre>
  
* '''avvia_dbg.sh''' esegue il make con le opzioni di DEBUG per il kernel
+
== Cleaning the build ==
* '''mkRFS.sh''' crea il RFS
+
 
** Nota: ho disabilitato la creazione del tar che nn server se si usa NFS. file '''build/tools/mktarball.sh'''
+
To clean the build directory and repeat the process, just remove the '''out''' directory:
* '''clean.sh''' cancella la cartella di build '''out''' in modo che il successivo make compili tutto da capo.
+
 
 +
<pre>
 +
sudo rm -rf out
 +
</pre>
  
 
= Running Android on Naon =
 
= Running Android on Naon =

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

export OUT_DIR_COMMON_BASE=/home/shared/devel/dave/naon-DAA/sw/linux/porsaria/android/rowboat-android/build-dir
export USE_CCACHE=1
export CCACHE_DIR=/home/shared/devel/dave/naon-DAA/sw/linux/porsaria/android/rowboat-android/cache
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]