6AJ.1.0 Release Notes

From OMAPpedia

Revision as of 17:14, 19 November 2013 by Vishalm (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


[edit] Introduction

These Release Notes provide instructions for:


Both sets of instructions make use of binary components to enable hardware acceleration for Graphics.

This software release has been developed and verified in the following software and hardware environment.

OS Kernel: Linux® 3.8
Android: Android JellyBean 4.2.2
Toolchain: Andriod linux-x86 toolchain arm-eabi-4.6
Reference hardware platforms: TI DRA7xxx EVM (J6 EVM) - REV C boards and later
Build Host OS: Ubuntu
Daily Build J6 EVM Version: JACINTO6_JB_MR1_DB build 13

[edit] Release Features

This is an engineering release supporting following features and were sanity tested:

[edit] Release Limitations

In this release:

[edit] Using the Prebuilt Release Image

The prebuilt release image can be obtained from here.
After you download the binaries, follow the flashing instruction from "Formatting and installing SD card image" section.

[edit] Rebuilding Android from Sources

[edit] Build PC setup

You would need a 64bit machine for building Android file system. You must have sudo permissions on the PC for installing packages

The following commands will install the correct packages to your PC:

Ubuntu 10.04

sudo apt-get install git-core flex bison gperf libesd0-dev zip libwxgtk2.6-dev zlib1g-dev build-essential tofrodos x-dev 
sudo apt-get install lib32readline5-dev libstdc++6 lib32z1 lib32z1-dev ia32-libs g++-multilib libx11-dev libncurses5-dev 
sudo apt-get install uboot-mkimage libxml2-utils

Ubuntu 12.04

sudo apt-get install git-core flex bison gperf libesd0-dev zip libwxgtk2.8-dev zlib1g-dev build-essential tofrodos 
sudo apt-get install lib32readline6-dev libstdc++6 lib32z1 lib32z1-dev ia32-libs g++-multilib libx11-dev libncurses5-dev 
sudo apt-get install uboot-mkimage libxml2-utils

For more up to date information on initializing build environment for Android, refer to official Android page here


If you are behind proxy/firewall, workaround it using the instructions in [1]

For installing repo make sure you also export https_proxy environment variable.

export https_proxy=<local_site_proxy_server> eg: http://local.proxyserver.com:80
mkdir ~/bin -p
sudo apt-get install curl
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH

If you do not have sudo rights to your machine, contact your System Administrator for assistance.

The Kernel and Driver sources are built using the Android linux-x86 toolchain for ARM GNU/Linux version. This tool chain can be obtained when you pull the Android code based on the released manifest that will be given.

[edit] Downloading Release Software

[edit] Android Filesystem Sources

You can get the Android source for this release by doing:

cd <your work directory>
mkdir -p 6AJ.1.0
cd 6AJ.1.0
mkdir -p mydroid; cd mydroid
repo init -u git://git.omapzoom.org/platform/omapmanifest.git -b 6AJ.x -m RLS_6AJ.1.0.xml
repo sync

[edit] TI Hardware Accelerated Graphics and Multimedia Binaries

Accelerated graphics binaries are part of Android file system build now

[edit] U-Boot Sources

git clone git://git.omapzoom.org/repo/u-boot.git
cd u-boot
git checkout 6cabe702cbc1bd8fb0c886b75b96c81d3e2321dd

[edit] Kernel & Driver Sources

To clone kernel source from scratch do:

mkdir kernel
git clone git://git.omapzoom.org/kernel/omap.git kernel/android-3.8
cd kernel/android-3.8
git checkout 18692f6aca12e4bca72f092f5da6130cfd44d3da

[edit] Build Instructions

[edit] Setting up build environment

From your work directory (6AJ.1.0 folder):

export MYDROID=${YOUR_PATH}/mydroid
export PATH=$PATH:${MYDROID}/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/
export CROSS_COMPILE=${MYDROID}/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-

[edit] Building U-boot sources

Instructions for building x-loader and bootloader

cd ${YOUR_PATH}/u-boot
export CROSS_COMPILE=${MYDROID}/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
export ARCH=arm
make distclean
make dra7xx_evm

Instructions for generating boot.scr (boot script)

echo "fatload mmc 0:1 0x80300000 uImage" >> boot.cmd
echo "fatload mmc 0:1 0x80f80000 dra7-evm.dtb" >> boot.cmd
echo "bootm 0x80300000 - 0x80f80000" >> boot.cmd
mkimage -A arm -O linux -T script -C none -e 0 -n "boot-script" -d boot.cmd boot.scr

[edit] Building Kernel

Follow the steps below to build kernel image.

cd ${YOUR_PATH}/kernel/android-3.8
export CROSS_COMPILE=${MYDROID}/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-
make ARCH=arm mrproper
make ARCH=arm android_omap_defconfig
make ARCH=arm uImage dtbs

[edit] Building Android Filesystem (AFS)

. build/envsetup.sh
lunch 21  #(specific lunch target: full_jacinto6evm-userdebug)
make -j2 clean
make -j2

[edit] Preparing Android SD Card Image

Instructions for preparing SD card images

[edit] Prepare boot partition files

cd $MYDROID/out/target/product/jacinto6evm
mkdir boot
cp ${YOUR_PATH}/kernel/android-3.8/arch/arm/boot/uImage boot/
cp ${YOUR_PATH}/kernel/android-3.8/arch/arm/boot/dts/dra7-evm.dtb boot/
cp ${YOUR_PATH}/u-boot/u-boot.img boot/
cp ${YOUR_PATH}/u-boot/MLO boot/
cp ${YOUR_PATH}/u-boot/boot.scr boot/

[edit] Prepare file system

cd $MYDROID/out/target/product/jacinto6evm
mkdir fs
cp -Rfp root/* fs/
cp -Rfp system fs/
cp -Rfp data fs/

[edit] Formatting and installing SD card image

[edit] Formatting SD card

You will need to format your SD for the Linux file system. Connect your micro SD memory card reader with memory card inserted to a USB port on your Linux Ubuntu PC.

There is a shell script that performs all of the formatting required. Download it with:

$ wget http://cgit.openembedded.org/cgit.cgi/openembedded/plain/contrib/angstrom/omap3-mkcard.sh

Add execution permission:

$ chmod +x omap3-mkcard.sh

And you are ready to use it by just typing:

$sudo ./omap3-mkcard.sh <your_device (e.g. /dev/sdb)>

Once it has finished, remove and reinsert the micro SD card. If you are logged in graphically, "/media/boot" and "/media/Angstrom" will be automatically mounted. Otherwise you will need to mount them manually.

[edit] Installing the required files to micro SD

Assuming your micro SD card is mounted on "/media/boot" and "/media/Angstrom", use the following commands to populate the card:

cd $MYDROID/out/target/product/jacinto6evm
sudo cp -rf boot/* /media/boot/
sudo cp -rf fs/* /media/Angstrom/

After copying the files to micro SD card, unmount the partitions and your SD card is ready for use.

Note: Make sure you have following DIP switch setting on the EVM (SW5 USERCONFIG) board for SD card boot

 1   2   3  4   5  6   7   8   9   10

[edit] Appendix A: Audio: Routing through McASP

HDMI hotplug detection is not yet enabled, so it's the default audio device. HDMI audio can be enabled/disabled via sysfs entry:

echo 0 > /sys/devices/sound_hdmi.8/enable   #Audio will be routed to primary device (McASP)
echo 1 > /sys/devices/sound_hdmi.8/enable   #Audio will be routed to HDMI device

[edit] Appendix B: Post Release Fixes

Apply the following kernel patches to fix Audio quality issues with HDMI

cd ${YOUR_PATH}/kernel/android-3.8
git fetch http://review.omapzoom.org/kernel/omap refs/changes/07/33007/1 && git cherry-pick FETCH_HEAD
git fetch http://review.omapzoom.org/kernel/omap refs/changes/08/33008/1 && git cherry-pick FETCH_HEAD
Personal tools