This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335X Starter Kit 7" LCD Modification

Other Parts Discussed in Thread: TPS61080, DA8XX

Hi,

I am trying to modify the AM335X Starter Kit to be able to work with a 7" LCD.

I have two screens that I am working with:

***TFC-A9700RTWV35TR-02A (from FiveThreeCorp), this is the primary screen I would like to get working.

4D 7.0" LCD Cape (from 4D systems)

I am aware that the LCD driver IC can be re-configured to allow for higher voltage/current. 

The primary screen has the same VDD voltage as the NHD-4.3-480272MF-ATXI-T-1 (screen that comes with the AM335x starter kit) which is 3.3V.

The main differences are dealing with the back light current and voltage. (22-23V @ 40mA max vs. 22-24V @ 60mA max). The later being the TFC screen.

My question is: with using the Android OS that came with this kit, does the image need to be re-compiled to enable the correct driver to be used with a 7" screen?

Or should the screens be directly interchangeable with the exception of the mods needed for the LCD driver IC?

  • AM335X LCD Driver IC Circuitry:
    This is my configuration for TPS6108DRC, the circuitry allows for multiple configurations using zero ohm resistors as jumpers. The output should be 22-24V and provide as much as 120mA current assuming that R259 is DNI (not populated) and R262 is DNI (not populated) and R63 is DNI (not popluated).

  • Reference:
    www.ti.com/.../tps61080.pdf
  • Using the AM335X + SK3358 Diagnostic Test v3.3:

    The current configuration is sufficient to power the LCD, however when testing the LCD using the diagnostic tool and option number 9 (LCD), the screen updates and shows the gradient, color spectrum and a few other things.  When I choose option 10 (Touch screen) the test fails.  However the screen does register my touches in the corners.  The issue I am seeing is that the screen is segmented, this tells me that the driver information is not correct.  Can you please confirm this?  Below are a few images of the screen during the LCD test (option number 9).

  •   Using the AM335X + SK3358 Diagnostic Test v3.3:

    The current configuration is sufficient to power the LCD, however when testing the LCD using the diagnostic tool and option number 9 (LCD), the screen updates and shows the gradient, color spectrum and a few other things.  When I choose option 10 (Touch screen) the test fails.  However the screen does register my touches in the corners.  The issue I am seeing is that the screen is segmented, this tells me that the driver information is not correct.  Can you please confirm this?  Below are a few images of the screen during the LCD test (option number 9).

  • Using the AM335X + SK3358 Diagnostic Test v3.3:

    The current configuration is sufficient to power the LCD, however when testing the LCD using the diagnostic tool and option number 9 (LCD), the screen updates and shows the gradient, color spectrum and a few other things.  When I choose option 10 (Touch screen) the test fails.  However the screen does register my touches in the corners.  The issue I am seeing is that the screen is segmented, this tells me that the driver information is not correct.  Can you please confirm this?  Below are a few images of the screen during the LCD test (option number 9).

  • Using the AM335X + SK3358 Diagnostic Test v3.3:

    The current configuration is sufficient to power the LCD, however when testing the LCD using the diagnostic tool and option number 9 (LCD), the screen updates and shows the gradient, color spectrum and a few other things. When I choose option 10 (Touch screen) the test fails. However the screen does register my touches in the corners. The issue I am seeing is that the screen is segmented, this tells me that the driver information is not correct. Can you please confirm this? Below are a few images of the screen during the LCD test (option number 9).
  • The above post led me to believe there is an issue in the build of Android for the AM335X w.r.t. larger screen sizes. I am trying to get the full source of the build to find and modify the size of the new 7" screen, following the wiki for the SK here:
    software-dl.ti.com/.../index_FDS.html

    The following information is outdated and no longer works:
    1. sudo add-apt-repository "deb-src archive.canonical.com/ubuntu lucid partner"
    2. sudo update-java-alternatives -s java-6-sun
    3. repo init -u git://gitorious.org/rowboat/manifest.git -m TI-Android-ICS-4.0.3-DevKit-EVM-SK-3.0.1.xml

    #3 produces the following error when ran from the command line:
    line 2: syntax error near unexpected token `newline'
    line 2: `<!DOCTYPE html>'

    Please update the information regarding to obtaining the full source for the 4.0.3 ICS build for Android and the AM335X SK.
    If possible please post current steps to obtaining the src.
  • The above process was attempted on Debian Jessie and Ubuntu 15.04, both unsuccessfully.
  • Attempting to follow the build process outlined by TI (see previous post for URL):

    The following files were modified for my custom screen (datasheet provided in original post):

    1. da8xx-fb.c

    2. board-am335xevm.c

    The following was added in da8xx-fb.c

    This was added under the static struct da8xx_panel known_lcd_panels[]

    /* ThreeFive TFC_A9700RTWV35TR_02 */

    [4] = {

    .name = "TFC_A9700RTWV35R_02",

    .width = 800,

    .height = 480,

    .hfp = 40,

    .hbp = 40,

    .hsw = 48,

    .vfp = 13,

    .vbp = 13,

    .vsw = 3,

    .pxl_clk = 30000000

    .invert_pxl_clk = 0,

    };

    The following was modified in board-am335xemv.c

    static const struct display_panel disp_panel = {

    WVGA,

    24,

    24,

    COLOR_ACTIVE,

    };

    Continuing on after the file modification for the compilation process:

    Step 1: make CROSS_COMPILE=arm-eabi- distclean

    Output: awk '(NF && $1 !~ /^#/) { print $1 ": " $1 "_config; $(MAKE)" }' boards.cfg > .boards.depend

    Step 2: make CROSS_COMPILE=arm-eabi-am335x_evm_config

    Output: awk '(NF && $1 !~ /^#/) { print $1 ": " $1 "_config; $(MAKE)" }' boards.cfg > .boards.depend

    Configuring for am335x_evm board...

    Step 3: make CROSS_COMPILE=arm-eabi-

    Output: /bin/bash: arm-eabi-gcc: command not found
    /bin/bash: arm-eabi-gcc: command not found
    dirname: missing operand
    Try 'dirname --help' for more information.
    Generating include/autoconf.mk
    /bin/bash: line 3: arm-eabi-gcc: command not found
    /bin/bash: arm-eabi-gcc: command not found
    dirname: missing operand
    Try 'dirname --help' for more information.
    Generating include/autoconf.mk.dep
    /bin/bash: line 3: arm-eabi-gcc: command not found
    /bin/bash: arm-eabi-gcc: command not found
    /bin/bash: arm-eabi-gcc: command not found
    dirname: missing operand
    Try 'dirname --help' for more information.
    /bin/bash: arm-eabi-gcc: command not found
    /bin/bash: arm-eabi-ld: command not found
    /bin/bash: arm-eabi-gcc: command not found
    dirname: missing operand
    Try 'dirname --help' for more information.
    /bin/bash: arm-eabi-gcc: command not found
    dirname: missing operand
    Try 'dirname --help' for more information.
    arm-eabi-gcc -DDO_DEPS_ONLY \
    -g -Os -fno-common -ffixed-r8 -msoft-float -D__KERNEL__ -I/home/nathan/rowboat-android/TI-Android-ICS-4.0.3_AM335x_3.0.1/u-boot/include -fno-builtin -ffreestanding -nostdinc -isystem -pipe -DCONFIG_ARM -D__ARM__ -march=armv5 -Wall -Wstrict-prototypes \
    -o lib/asm-offsets.s lib/asm-offsets.c -c -S
    /bin/bash: arm-eabi-gcc: command not found
    Makefile:529: recipe for target 'lib/asm-offsets.s' failed
    make: *** [lib/asm-offsets.s] Error 127



    PROCESS FAILED.
  • There appears to be some issues with the TI server relating to updating of posts, deletion of duplicate posts, etc.
    The original post was done in the Sitara processors forum as it directly relates to the AM335X Starter kit. Below is the original link to the post, it contains the datasheets for the LCD screen I am trying to incorporate into the Android build.

    e2e.ti.com/.../446687
  • Attempting to remedy the issues found with the 4.0.3 Android ICS build by building 4.2.2 JB. The following was followed:

    processors.wiki.ti.com/.../TI-Android-JB-4.2.2-DevKit-4.1.1_DeveloperGuide

    Error while trying to connect to the repository and repo/sync at this step:
    repo init -u git://gitorious.org/rowboat/manifest.git -m TI-Android-JB-4.2.2-DevKit-4.1.1.xml

    Also this was tried unsuccessfully:
    repo init -u git://gitorious.org/rowboat/manifest.git -m rowboat-jb.xml

    Both produced the same error while trying to connect to gitorious.org:
    fatal: unable to connect to gitorious.org:
    girorious.org[0: 109.107.38.78]: errno=Connection timed out
    gitorious.org[1: 2a02:c0:1014::1]: errno=Network in unreachable
  • Hello,

    It seems your computer is not set up to build your own version of Android or the Linux kernel.
    Please follow this link to do so: processors.wiki.ti.com/.../AM335X_EVM-SK_Android_Devkit_Guide

  • The link you posted for host PC setup requirements is only for 32 bit machines. I am using a 64 bit machine.
    In addition, the following line is no longer valid/functioning:
    sudo add-apt-repository "deb-src archive.canonical.com/ubuntu lucid partner"
    Also, some of the listed software is outdated and has been replaced with newer versions.

    If you have any information for host PC setup requirements for 64 bit OS's, I'd be more than happy to try them.
    I am following this post for Android JB 4.2.2.
    processors.wiki.ti.com/.../TI-Android-JB-4.2.2-DevKit-4.1.1_DeveloperGuide
  • Android JB 4.2.2 Build Steps

    1. Install Oracle VM Virtualbox 4.3.30.
    2. Install Ubuntu 15.04 64-bit.
    3. Install Guest Additions.
    4. Fully update/upgrade Ubuntu and all related software before continuing.
    5. Install the following software using sudo apt-get install <software name>
      1. git-core
      2. gnupg (0 upgraded, 0 installed)
      3. flex
      4. bison
      5. gperf
      6. build-essential (0 upgraded, 0 installed)
      7. zip (0 upgraded, 0 installed)
      8. curl
      9. libc6-dev (0 upgraded, 0 installed)
      10. libncurses5-dev:i386
      11. x11proto-core-dev
      12. libx11-dev:i386
      13. libreadline6-dev:i386
      14. libgl1-mesa-glx:i386
      15. libgl1-mesa-dev
      16. g++-multilib
      17. mingw32 (no longer works)
      18. openjdk-6-jdk
      19. tofrodos
      20. python-markdown
      21. libxml2-utils
      22. xsltproc
      23. zlib1g-dev:i386
      24. minicom
      25. tftpd
      26. uboot-mkimage (no longer available, the following replaces it)

                                                                   i.      u-boot-tools:i386 replaced it

                                                                 ii.      u-boot-tools

    1. expect
    2. libgl1-mesa-dri (0 upgraded, 0 installed)
    3. sudo ln –s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
    4. Fully update/upgrade Ubuntu
      1. sudo apt-get update
      2. sudo apt-get upgrade
      3. Reboot
        1. sudo reboot
        2. Install Oracle JDK 6

    www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html

    Select “Accept License Agreement”

    Select Linux x64 (68.75MB), make sure you download the .bin version of the file.

    cd Downloads/

    chmod a+x jdk-6u45-linux-x64.bin

    ./jdk-6u45-linux-x64

    sudo mkdir –p /usr/lib/jvm

    sudo mv jdk1.6.0_45/ /usr/lib/jvm

    sudo update-alternatives –install “/usr/bin/java” “java” “/usr/lib/jvm/jdk1.6.0_45/bin/java” 1

    sudo update-alternatives –install “/usr/bin/javac” “javac” “/usr/bin/jvm/jdk1.6.0_45/bin/javac” 1

    sudo update-alternatives –config java (option 2 was selected, setting jdk1.6.0_45 as current choice)

    sudo update-alternatives –config javac (option 2 was selected, setting jdk1.6.0_45 as current choice)

    unset JAVA_TOOL_OPTIONS

    java –version (returns java version 1.6.0_45)

    1. Getting source and toolchain

    mkdir ~/bin

    export PATH=~/bin:$PATH

     

    Next, download the repo script and ensure it is executable

    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

     

    Clone the source from rowboat repository

    mkdir $HOME/rowboat-android

    cd $HOME/rowboat-android

    repo init –u git://gitorious.org/rowboat-android/manifest.git –m TI-Android-JB-4.2.2-DevKit-4.1.1.xml

    repo sync

     

    ERROR:

    Fatal: unable to connect to gitorious.org:

    gitorious.org[0: 109.107.38.78]: errno=Connection timed out

    gitorious.org[1: 2a02:c0:1014::1]: errno=Network is unreachable

     

    This forces me to use pre-packed sources.

     

    1. Using Pre-Packaged Sources

    Using the below URL, you can find the pre-packaged source (.bin):

    http://processors.wiki.ti.com/index.php/TI-Android-JB-4.2.2-DevKit-4.1.1_DeveloperGuide#Host_.28PC.29_setup_requirements

     

    Download the TI_Android_JB_4.2.2_DevKit_4.1.1.bin (4.4GB).

    cd Downloads/

    chmod a+x TI_Android_JB_4.2.2_DevKit_4.1.1.bin

    sudo mv TI_Android_JB_4.2.2_DevKit_4.1.1.bin ~/rowboat-android

    ./TI_Android_JB_4.2.2_DevKit_4.1.1.bin

    Path: ~/rowboat-android/TI_Android_JB_4.2.2_DevKit_4.1.1/

     

    1. Toolchain setup

    export PATH=$HOME/rowboat-android/TI_Android_JB_4.2.2_DevKit_4.1.1/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATH

     

    1. Correcting Make versioningadv issue

    make –version (returns 4.0)

    Android needs make version 3.81 or 3.82 to build Android.

     

    If you try to build using Make 4.0 you get the following message:

    ***************************************************

    *You are using version 4.0 of make.

    *Android can only be built by version 3.81 and 3.82.

    *see https://source.android.com/source/download.html

    ***************************************************

     

    Removing Make 4.0 package:

    sudo apt-get –purge remove make

    make –version (no such file or directory)

     

    Installing Make 3.81 package:

    http://ftp.gnu.org/make/

    Download make-3.81.tar.gz

     

    The process of falling back from make 4.0 to make 3.81 is not straight forward.  After downloading the source from gnu, change into the directory that it was downloaded into.  Give the file execution permissions first, then extract the file.

     

    cd Downloads/

    chmod a+x make-3.81.tar.gz

    tar –xvzf make-3.81.tar.gz

    cd make-3.81/

     

    From this point run the rest of the steps as root.

     

    sudo ./configure

    sudo ./build.sh

    sudo ./make check

    sudo ./make clean

    sudo reboot

    make –version (should return Make 3.81)

     

    1. Build Procedure

    cd rowboat-android/TI_Android_JB_4.2.2_DevKit_4.1.1/

    make TARGET_PRODUCT=am335xevm_sk OMAPES=4.x –j4 sdcard_build

     

    If you get an error similar to mine, you see this:

    ******************************************************

    *You are attempting to build with the incorrect version of java.

    *Your version is: Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar

    *The correct version is : Java SE 1.6.

    ******************************************************

     

    To un-set the java tool use this:

    unset JAVA_TOOL_OPTIONS

     

    In a separate file is the verbose output from the following step:

    make TARGET_PRODUCT=am335xevm_sk OMAPES=4.x –j4 sdcard_build

     

    The final line says this:

    Image arch/arm/boot/uImage is ready

    Make[1]: Leaving directory ‘/home/nathan/rowboat-android/TI_Android_JB_4.2.2_DevKit_4.1.1/kernel/’

     

    ***ASSUMPTION (from TI)

    This command will build boot loader, kernel and filesystem with SGX for the specified product name.  The SD image directory named <product name> will be created inside out/target/am335xevm_sk.  After this you can jump to section Flashing Android images to SD/MMC.

     

    Within my out/target/am335xevm_sk there are only three items

    1. android_rootfs
    2. clean_steps.mk
    3. previous_build_config.mk
    4. Generate SD/MMC card image folder to boot Android

    cd

    sudo mkdir android_image_folder

     

    Next, create the boot script uEnv.txt and store it within the android_image_folder

    sudo nano uEnv.txt

     

    Enter the following information:

    bootargs=console=ttyO0,115200n8 androidboot.console=ttyO0 mem=256M root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait init=/init ip=off

    bootcmd=mmc rescan ; fatload mmc 0 81000000 uImage ; bootm 81000000

    uenvcmd=boot                                  

     

    Save the file.

    Exit nano.

     

    Next, copy the following files to the android_image_folder

    1. cp kernel/arch/arm/boot/uImage android_image_folder
    2. cp u-boot/u-boot.img android_image_folder
    3. cp u-boot/MLO android_image_folder
    4. cp out/target/product/am335xevm_sk/rootfs.tar.bx2 android_image_folder
    5. cp Media_Clips android_image_folder

     

     

    At this point in the process, I have copied a-c in the above list.  When I try to copy the contents of rootfs from /out/target/product/am335xevm_sk/ there is nothing in this folder.  Going back to the TI document, there is a process for manually building the tarball.  Since the directory is empty (and from the documentation it shouldn’t be), I will manually do this step.

     

    cd /out/target/product/am335xevm_sk/

                    The android_rootfs folder is already created

                    cp –r root/* android_rootfs

                    cp –r system android_rootfs

                    ERROR:

                    cp: cannot stat ‘root/*’: No such file or directory

    Since that process failed as well, I went all the way back to manually building the Android filesystem.

    make TARGET_PRODUCT=am335xevm_sk OMAPES=4.x –j4

    After this step, out/target/product/am335xevm_sk/

    The following now exists:

    1. android_rootfs
    2. clean_steps.mk
    3. data
    4. obj
    5. pervious_build_config.mk
    6. root
    7. system

    Returning to the out/target/product/am335xevm_sk

                    sudo cp –r root/* android_rootfs

                    sudo cp –r system android_rootfs

    Next, create the tar.bz2 file of android_rootfs.tar.bz2

                    tar czf android_rootfs.tar.bz2 android_rootfs

    Next, copy android_rootfs.tar.bz2 to android_image_folder

                    sudo cp android_rootfs.tar.bz2 ~/android_image_folder

    Finally, we need to add the Media_Clips to the android_image_folder

                    Media_clips folder is available in the SD card prebuilt images

                However, I was not able to find any information regarding Media_Clips.

                Media_Clips will be omiited from this build.

    Next, we need to copy the SD/MMC card creation script

    mkmmc-android.sh is available at external/ti_android_utilities/am335x directory in the DevKit sources.

    This directory does not exist.  Not able to locate this script either.  Missing information.

                By doing a google search I was able to locate the contents of the script from Github.

    ***ASSUMPTION: the contents of mkmmc-android.sh are consistent with the version intended with this walkthrough.

    Contents of mkmmc-android.sh:

     

    #!/bin/bash

    set -e

    OUT=/dev/null

    #OUT=/dev/stdout

    #set -x

     

    MAX_ALLOWED_DISK_SIZE=4095737856

    EXPECTED_ARGS=1

    if [ $# == $EXPECTED_ARGS ]

    then

                    echo "Assuming Default Locations for Prebuilt Images"

                    $0 $1 ./MLO ./u-boot.bin ./uImage ./boot.scr ./rootfs.tar.bz2 ./Media_Clips ./START_HERE

                    exit

    fi

     

    if [[ -z $1 || -z $2 || -z $3 || -z $4 ]]

    then

                    echo "mkmmc-android Usage:"

                    echo "     mkmmc-android <device>"

                    echo "       Uses default locations and names of source files/directories"

                    echo "     mkmmc-android <device> <MLO> <u-boot.bin> <uImage> <boot.scr> <rootfs tar.bz2 > <Optional Media_Clips> <Optional START_HERE folder>"

                    echo "     Example: mkmmc-android /dev/sdc MLO u-boot.bin uImage boot.scr rootfs.tar.bz2 Media_Clips START_HERE"

                    exit

    fi

     

    DRIVE=$1

    DEVICE=`basename $DRIVE`

     

    if ! [[ -e $2 ]]

    then

                    echo "Incorrect MLO location!"

                    exit

    fi

     

    if ! [[ -e $3 ]]

    then

                    echo "Incorrect u-boot.bin location!"

                    exit

    fi

     

    if ! [[ -e $4 ]]

    then

                    echo "Incorrect uImage location!"

                    exit

    fi

     

    if ! [[ -e $5 ]]

    then

                    echo "Incorrect boot.scr location!"

                    exit

    fi

     

    if ! [[ -e $6 ]]

    then

                    echo "Incorrect rootfs location!"

                    exit

    fi

     

    if ! [ -e $DRIVE ]

    then

                    echo "Error: $DRIVE not found!"

                    exit

    fi

     

    # Simplistic sanity check to prevent selecting a larger device

    # such as a secondary hard drive, or attached backup drive.

    DISKSIZE=`sudo fdisk -l $DRIVE | grep Disk | grep $DRIVE`

    SIZE=`echo $DISKSIZE | awk '{print $5}'`

    if [ $SIZE -gt $MAX_ALLOWED_DISK_SIZE ]

    then

                    echo ""

                    echo "*** Warning! Device reports > MAX_ALLOWED_DISK_SIZE ($MAX_ALLOWED_DISK_SIZE). ***"

                    echo "  $DISKSIZE"

                    echo "Are you sure you selected the correct device? [y/n]"

                    read ans

                    if ! [[ $ans == 'y' ]]

                    then

                                    exit

                    fi

    fi

     

    for file in $(find /sys/block/$DEVICE/device/ /sys/block/$DEVICE/ -maxdepth 1 2>/dev/null \

     |egrep '(vendor|model|manfid|name|/size|/sys/block/[msh][mdr]./$|/sys/block/mmcblk./$)'|sort);

    do [ -d $file ] && echo -e "\n  -- DEVICE $(basename $file) --" && continue;

    grep -H . $file|sed -e 's|^/sys/block/||;s|/d*e*v*i*c*e*/*\(.*\):| \1 |'|awk '{if($2 == "size") {printf "%-3s %-6s: %d MB\n", $1,$2,(($3 * 512)/1048576)} else {printf "%-3s %-6s: ", $1,$2;for(i=3;i<NF;++i) printf "%s ",$i;print $(NF) };}';

    done

    echo "";

     

    echo "[Unmounting all existing partitions on the device ]"

     

    devices=`ls /sys/block/$DEVICE/$DEVICE* -d | sed "s^/sys/block/$DEVICE/^^"`

    for f in $devices; do

                    MOUNTCHECK=`mount | grep "^/dev/$f" | wc -l`

                    if [[ $MOUNTCHECK = '1' ]]

                    then

                                    MOUNTINFO=`mount | grep "^/dev/$f" | awk '{ print $1 " " $2 " " $3 " " $4 " " $5 }' `

                                    echo "  unmounting $f ($MOUNTINFO)"

                                    sudo umount /dev/$f

                    fi

    done

    #sudo umount $DRIVE

     

    echo ""

    echo "All data on $DRIVE now will be destroyed! Continue? [y/n]"

    read ans

    if ! [ $ans == 'y' ]

    then

                    exit

    fi

     

    echo "[Partitioning $DRIVE...]"

     

    SIZE=`sudo fdisk -l $DRIVE | grep Disk | awk '{print $5}'`

                     

    echo DISK SIZE - $SIZE bytes

     

    CYLINDERS=`echo $SIZE/255/63/512 | bc`

     

    echo CYLINDERS - $CYLINDERS

     

    sudo dd if=/dev/zero of=$DRIVE bs=1024 count=1024 &> $OUT

     

    {

    echo ,9,0x0C,*

    echo ,$(expr $CYLINDERS / 2),,-

    echo ,,0x0C,-

    } | sudo sfdisk -D -H 255 -S 63 -C $CYLINDERS $DRIVE &> $OUT

     

    sudo partprobe $DRIVE

     

    sudo dd if=/dev/zero of="${DRIVE}${PART}1" bs=512 count=1 &> $OUT

    sudo dd if=/dev/zero of="${DRIVE}${PART}2" bs=512 count=1 &> $OUT

    sudo dd if=/dev/zero of="${DRIVE}${PART}3" bs=512 count=1 &> $OUT

     

    echo "[Making filesystems...]"

     

    if [ $DRIVE == '/dev/mmcblk0' ]

    then

                    PART='p'

    else

                    PART=''

    fi

     

    sudo mkfs.vfat -F 32 -n boot "${DRIVE}${PART}1" &> $OUT

    sudo mkfs.ext3 -L rootfs "${DRIVE}${PART}2" &> $OUT

    sudo mkfs.vfat -F 32 -n data "${DRIVE}${PART}3" &> $OUT

     

    echo "[Copying files...]"

     

    sudo mount "${DRIVE}${PART}1" /mnt

    sudo cp $2 /mnt/MLO

    sync

    sudo cp $3 /mnt/u-boot.bin

    sync

    sudo cp $4 /mnt/uImage

    sudo cp $5 /mnt/boot.scr

    if [ "$8" ] && [ -d $8 ]

    then

            echo "[Copying START_HERE directory to boot partition]"

            sudo cp -r $8 /mnt/START_HERE

    fi

     

    sudo umount "${DRIVE}${PART}1"

     

    sudo mount "${DRIVE}${PART}2" /mnt

    sudo tar jxvf $6 -C /mnt &> $OUT

    #sudo chmod 755 /mnt

    sudo umount "${DRIVE}${PART}2"

     

    if [ "$7" ] && [ -d $7 ]

    then

                    echo "[Copying all clips to data partition]"

                    sudo mount "${DRIVE}${PART}3" /mnt

                    if [ "$(ls -A $7/*)" ]; then

                                    sudo cp -r $7/* /mnt/

                    else

                                    echo "no media clips to copy"

                    fi

                    sudo umount "${DRIVE}${PART}3"

    fi

     

    echo "[Done]"

     

     

     

     

     

     

     

     

     

     

    1. Flashing Android image to SD/MMC card

     

    In my case, I had to change the permissions of the mkmmc-android.sh script, this was accomplished like this:

     

    sudo chmod +x mkmmc-android.sh

     

    To get the location of the sd card use the following command:

                sudo fdisk –l

     

    To get the permissions on this device:

                sudo ls –l /dev/sdb1

     

    sudo ./mkmmc-android.sh /dev/sdb1 MLO u-boot.img uImage uEnv.txt android_rootfs.tar.bz2

     

    Output:

    [Unmounting all existing partitions on the device ]

    Ls: cannot access /sys/block/sdb1/sdb1*: no such file or directory

     

    All data on /dev/sdb1 no will be destroyed! Continue? [y/n]

    Y

    [Partitioning /dev/sdb1…]

    DISK SIZE – 1048576 bytes

    CYLINDERS - 0

     

    This step failed.  Several work arounds were attempted such as:

    1. Creating a different mounting point

    sudo mkdir /mnt/SD

    sudo mount –a /dev/sdb1 /mnt/SD

    sudo ./mkmmc-android.sh /mnt/SD MLO u-boot.img uImage uEnv.txt android_rootfs.tar.bz2

    FAILED. Is a directory.

  • I was finally able to copy the contents of the android_image_folder to the SD card by creating a mounting point.
    I first had to format the SD card to FAT format using the Disks tool within Ubuntu.
    Once that was complete I created the mount point like this:
    sudo mount /dev/sdb1 /mnt

    I then copied the contents of android_image_folder over to the SD and verified that they made it there.
    I then inserted my SD card into the AM335x starter kit and nothing happened.

    Please give assistance!
  • CORRECTION: the mount point was created in the following way:
    1. sudo mkdir /mnt
    2. sudo fdisk -l (this gives the location of the sd card)
    3. sudo mount /dev/sdb1 /mnt
  •  Here is a screenshot of the sd card contents from within Ubuntu 15.04

  • Hello,

    The TI wiki link contains everything you need to build and flash an Android image.
    In your case, you must use mkmmc-android.sh to flash the Android image. The first parameter is the SD card mount-point, not its first partition, i.e.:
    $ sudo ./mkmmc-android.sh /dev/sdb [...]
    but *NOT*
    $ sudo ./mkmmc-android.sh /dev/sdb1 [...]

  • I implemented this and still nothing was flashed to the sd.
    sudo ./mkmmc-android.sh /dev/sdb

    Output:
    -- DEVICE sdb --
    sdb model : usb sd reader
    sdb vendor : generic
    sdb size : 3781 MB

    [Unmounting all existing partitions on the device ]
    All data on /dev/sdb now will be destroyed! continue [y/n]
    y
    [Partitioning /dev/sdb...]
    Disk size - 3965190144 bytes
    cylinders - 482

    Once the ./mkmmc-android line is run, I can no longer mount or gain access to the SD.
    Can you please provide an original mkmmc-android script. As I cannot find this file I used a Git hub source.

    Also, for general information several of the steps within the wiki DO NOT WORK. I have posted all the issues in the above document.
    The very fist method of generating all outputs does not generate the android file system in the /out/target/product/<product name> folder like the wiki says it does.

    I built every stage individually and then manually moved all the files over to the image_folder.