March 14, 2012   Posted by: Dr. Ace Jeangle

How to compile Android ICS with touchscreen support

This post was created with valuable help of Zhi Yong Woo and Benjamin Tissoires

OK, lets make our own Android ICS tablet based on PandaBoard and our 10″ LCD bundle. We will use Linaro 12.01 build.

Prerequisites

We will need Ubuntu 11.04 x64 as a host machine. I tried different others hosts including 10.04LTS and 11.10, but only 11.04 x64 gave me working result. You can install your machine in VirtualBox – that’s exactly what I did. Just turn on Intel virtualization (VT-x) option in BIOS an enable it in VirtualBox. Also, you will need around 40 Gbytes of free disk space.

Install required packages
sudo apt-get install git-core gnupg flex bison gperf build-essential \
        zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
        x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
        libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
        libxml2-utils xsltproc libncurses5-dev libreadline6-dev \
        gcc-arm-linux-gnueabi uboot-mkimage
Install Java JDK

Oracle forced to remove Java JDK from standard Ubuntu repository recently. Therefore, we will use small trick to install JDK.

wget https://raw.github.com/flexiondotorg/oab-java6/master/oab-java6.sh -O oab-java6.sh
chmod +x oab-java6.sh
sudo ./oab-java6.sh
sudo apt-get install sun-java6-jdk
Install Linaro image tools
sudo add-apt-repository ppa:linaro-maintainers/tools 
sudo apt-get update 
sudo apt-get install linaro-image-tools
Install Repo tool
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
export PATH=$HOME/bin:$PATH
chmod a+x ~/bin/repo
Download Android source code (Linaro 12.01)
export MANIFEST_REPO=git://android.git.linaro.org/platform/manifest.git 
export MANIFEST_BRANCH=linaro_android_4.0.3 
export MANIFEST_FILENAME=landing-panda.xml
mkdir ~/work
mkdir ~/work/android 
cd ~/work/android 
repo init -u ${MANIFEST_REPO} -b ${MANIFEST_BRANCH} -m ${MANIFEST_FILENAME} 
repo sync

This will download > 2 Gb of sources and will take around one hour (highly depends on your Internet speed).

Download toolchain
cd ~/work 
wget --no-check-certificate http://releases.linaro.org/12.01/components/android/toolchain/4.6/android-toolchain-eabi-linaro-4.6-2012.01-2-2012-01-13_19-04-18-linux-x86.tar.bz2
tar -jxvf android-toolchain-eabi-linaro-4.6-2012.01-2-2012-01-13_19-04-18-linux-x86.tar.bz2
Build source code
cd ~/work/android 
export TARGET_PRODUCT=pandaboard 
export TARGET_SIMULATOR=false 
export TARGET_TOOLS_PREFIX=~/work/android-toolchain-eabi/bin/arm-linux-androideabi-
make TARGET_PRODUCT=${TARGET_PRODUCT} TARGET_TOOLS_PREFIX=${TARGET_TOOLS_PREFIX} HOST_CC=gcc-4.5 HOST_CXX=g++-4.5 HOST_CPP=cpp-4.5 boottarball systemtarball userdatatarball

If you have multi-core processor, then you should try to use “make -jX …” to speed-up compilation. I used “make -j8 …” on my i7 processor. Compilation time highly depends on your computer and can vary from 20 minutes to several hours. So, have another cup of coffee and keep fingers crossed 🙂

Build source code
cd ~/work/android 
export TARGET_PRODUCT=pandaboard 
export TARGET_SIMULATOR=false 
export TARGET_TOOLS_PREFIX=~/work/android-toolchain-eabi/bin/arm-linux-androideabi-
make TARGET_PRODUCT=${TARGET_PRODUCT} TARGET_TOOLS_PREFIX=${TARGET_TOOLS_PREFIX} HOST_CC=gcc-4.5 HOST_CXX=g++-4.5 HOST_CPP=cpp-4.5 boottarball systemtarball userdatatarball

If you have multi-core processor, then you should try to use “make -jX …” to speed-up compilation. I used “make -j8 …” on my i7 processor. Compilation time highly depends on your computer and can vary from 20 minutes to several hours.

Find out the name of your SD card device

Insert SD card and enter the following command:

df -h

You will see the list of storage devices, you should find out which one is your SD card. Mine has name “sdb”, and I will use it in the next command.

Install Android image to SD card
cd ~/work/android/out/target/product/pandaboard 
sudo linaro-android-media-create --mmc /dev/sdb --dev panda --system system.tar.bz2 --boot boot.tar.bz2 --userdata userdata.tar.bz2 
sync

We use here “sdb” as a name of SD card. Now remove SD card and insert it again – you will see several partitions opened in separate windows.

Apply Android binary patch

Insert SD card and enter the following command:

cd ~/work
wget http://releases.linaro.org/12.01/android/images/landing-panda/install-binaries.sh 
chmod a+x install-binaries.sh
./install-binaries.sh /dev/sdb2
sync

Here we again use “sdb” as a name of SD card (2 is added to point to system partition).

Set correct LCD resolution

Go to “/media/boot” folder (this is boot partition of your SD card), open file “boot.txt” and add the following arguments to “setenv bootargs …” string:

omapfb.mode=dvi:1024x600MR-24@60 consoleblank=0

Now save file. And enter the following command to generate boot script:

sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'boot script' -d boot.txt boot.scr 
sync

Now we have working Android with correct LCD output, but our touchscreen doesn’t work. Well, that’s right time to recompile kernel to add touchscreen support. Lets’ proceed!

Configure kernel
cd ~work/android/kernel 
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- panda_defconfig 
make ARCH=arm menuconfig 

Now select this driver in configuration menu:

Device Drivers --> HID Devices --> Special HID drivers --> HID Multitouch panels 

Save configuration and exit.

Build kernel and copy to boot partition on SD card
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage
cp ~work/android/kernel/arch/arm/boot/uImage /media/boot
sync

Now we have working touchscreen, but it works really weird – only left top corner is working as projected to whole screen. This is because Android gets HDMI default resolution (1920×1080) and assigns it to touchscreen. Our touchscreen is connected through USB and is considered as “external” device, so Android thinks it is related to HDMI input. Therefore we have to configure touchscreen to be considered as “internal” device (just set parameter . Then Android will assign DVI resolution to it.

Configure touchscreen resolution
  1. Connect Pandaboard to PC with mini-USB cable and run ADB utility (it is available in Android SDK)
  2. Get file from this link Vendor_2087_Product_0a01.idc and put it to your current folder
  3. Enter the following commands to remount Android file system in R/W mode and to copy configuration file:
    adb remount
    adb push Vendor_2087_Product_0a01.idc /system/usr/idc/Vendor_2087_Product_0a01.idc
    adb sync
  4. Restart Pandaboard
  5. You should have fully working touchscreen now.

Here are links to built images, kernel and boot.scr file:
boot.tar.bz2
system.tar.bz2
userdata.tar.bz2
boot.scr
Kernel
Full SD card image (use DD or Win32DiskImage to write to card)

89 comments posted in: How-To
89 comments
  1. dagentooboy
    Mar 17, 2012

    If you actually want 12.01 and not 12.03 you will need to use this instead
    export MANIFEST_BRANCH=linaro-android-12.01-release

    I am trying your guide right now…. I couldn’t get it to work on 12.03. I am still working on it and will report back when I have an answer.

    • Dr. Ace Jeangle
      Mar 17, 2012

      I guess “linaro_android_4.0.3” is another branch of Linaro 12.01. Am I right?

      • dagentooboy
        Mar 18, 2012

        If you checkout linaro_android_4.0.3 I think you are getting 12.03

        • Dr. Ace Jeangle
          Mar 19, 2012

          How can I check this? Just need any reference before I will make changes in blog post.

  2. Francesco
    Mar 19, 2012

    Is this working on pandaboard or pandaboard es?

    • Dr. Ace Jeangle
      Mar 19, 2012

      I checked on Pandaboard.

  3. Thomas
    Mar 21, 2012

    Hello,

    I tried to follow your steps to install Android ICS but at the first step for package installation I got the message that some packages could not installed or found.

    What can I do? Thanks

    • Dr. Ace Jeangle
      Mar 21, 2012

      I just checked again – all packages installed OK.
      Please, check that:
      1. You have Ubuntu 11.04 x64 (IMPORTANT: x64 version!!!)
      2. You don’t upgrade to 11.10 after installation as per system request.
      Packages can differ for different versions of your desktop OS, so please follow all steps exactly.

      • Thomas
        Mar 21, 2012

        Thanks for your answer. I will follow all steps again, I will let you know if it is working.

  4. Nico
    Mar 23, 2012

    Hello,
    Has somebody tested this on Pandaboard ES ? I have Pandaboard ES and LVDS bundle and can’t get it to work.. Display is OK via HDMI but nothing on touchscreen. I tried changing bootargs but no effect…
    Do you know if i could find a prebuilt image to download made by following these steps ? My company proxy doesn’t allow me to get the sources and i dont have access to a 64bit machine for now…
    Otherwise, I tried building with ubuntu 11.04 x86 on another network access but it failed with a “branch out of range” error, do you think its related to the 32bit version ?
    Thanks,
    Nico

    • Dr. Ace Jeangle
      Mar 23, 2012

      Hello Nico,

      This kind of error is usually related to compiler. And yes, it can be because of 32-bit version.
      You will definitely need x64 system to build (you can use VirtualBox – it works OK).

      • Nico
        Mar 23, 2012

        Ok thank you for confirming what i suspected…
        I’m already using VirtualBox but unfortunately i can’t enable VTx virtualization because of bios password set by company… i’ll have to try to get access…
        That’s why i was asking if someone put this build for download.
        Any suggestion for getting the LCD output working ?
        I already tried the instructions on “Set correct LCD Resolution” above.
        I’m on panda-ics-gcc46-tilt-tracking-blob 12.02, did i try the wrong image ?

        • Dr. Ace Jeangle
          Mar 23, 2012

          I can share my built images. Can you use Dropbox behind your corporate firewall?

          • Nico
            Mar 24, 2012

            Yes I can at least access Dropbox at home, that would be great if you can share it

          • dagentooboy
            Mar 25, 2012

            I could really use the images too. Can you post the dropbox link?

          • Dr. Ace Jeangle
            Mar 25, 2012

            Added to original post links to ready images, kernel and boot.scr.

  5. Jack
    Mar 25, 2012

    Just I am in the same boat as Nico. Using pandaboard es, however, I am getting the LCD screen to mirror my hdmi display, but no brightness and no touchscreen working (mouse is working). These images will be very popular can you just post the images on the website?

    • Dr. Ace Jeangle
      Mar 25, 2012

      Images are published (see bottom of original post).

      • Nico
        Mar 25, 2012

        Thank you very much Dr. Ace Jeangle ! That will help me a lot, i’ll try it tomorrow and will report about it.

        • Nico
          Mar 26, 2012

          This build is working fine on pandaboard es thanks. However i have now a little hardware issue : depending on images displayed, i’ve got horizontal lines with “misaligned” pixels on screen… If i touch the LVDS board at parallel connectors it has an effect on those lines, did you already face such problem ? I think i’m gonna check and recheck solder on connectors. Btw display is OK through HDMI via DVI-D port.

          • Dr. Ace Jeangle
            Mar 26, 2012

            Yes, the problem can be with connection. Please check carefully LVDS cable and connectors on both sides.

          • dagentooboy
            Mar 26, 2012

            I am having the same problem with the artifacts. It happens on bootup right across the Android logo and in the app drawer. I didn’t see the same thing using the Debian image.

          • Dr. Ace Jeangle
            Mar 26, 2012

            Regarding artifacts – can someone make a photo of this and also upload somewhere TARs of your Android image?

          • Nico
            Mar 26, 2012

            I uploaded a photo, you can see 3 stripes on screen, i made it on worst case to better see the artefact (it seems it depends on colors or layout displayed). I confirm that isn’t a connection issue, because the artefacts are moving with the image when i scroll the screen up/down.
            Here is the link :
            http://img594.imageshack.us/img594/8454/20120326171951.jpg

            I’ll see tomorrow for uploading the android image.

          • Dr. Ace Jeangle
            Mar 29, 2012

            That’s really strange, because only half of lines are distorted.
            I will try to explore this problem further and let you know about results.

          • Nico
            Mar 27, 2012

            Is it OK for you if I upload a .img file of my sd card ? I’m not sure it will be usefull, since I used the build available here for download…

          • Dr. Ace Jeangle
            Mar 29, 2012

            No reason to upload SD card image. But can you please test it with Debian in full-screen window manager?

          • Nico
            Apr 03, 2012

            Hi, concerning the artefacts, I have tried Debian and the problem appeared too, but like in Android, not on every image displayed. For example, under the console display, there is no problem, but once i started e.g. iceweasel, the artefacts appeared on some lines.
            I’m pretty sure it’s a hardware issue, because if I push on the PCB area between R1 and C6 (LVDS board) with my finger, the artefact disappears, as some PLL would suddenly lock itself by doing that.
            Maybe some faulty via or so? Decoupling capacitors ?
            Did you find something on your side dagentooboy ?

          • Dr. Ace Jeangle
            Apr 03, 2012

            Hello Nico and dagentooboy,

            Yes, I can confirm now that we were able to reproduce this problem. I asked our production to test last batch carefully with Android image and this screen with horizontal table. They found that 3 boards out of 100 in this batch have this problem. They will send these faulty board to my office and I will try to figure out the reason of this problem. Then we will issue workaround for this or will replace boards in case of serious problem that can’t be solved on customer’ side. Thanks for pointing to this problem! Give me couple days to resolve it.

          • Nico
            Apr 05, 2012

            That’s a good point if you’ve been able to reproduce the problem. Let us know if you find a workaround, thank you for the investigation Dr. Ace Jeangle.

          • Christian
            Apr 07, 2012

            I have the same problem regarding to the artifacts on the display…

  6. Jack
    Mar 26, 2012

    Thanks for posting the images. I already have Android ICS compiled and on my pandaboard ES, so I really want to get that working. The 10″ LCD is displaying android I can navigate with the mouse. However, I am stuck with the resolution/size being incorrect, and the touchscreen not working at all (the brighness doesn’t work either, but I will tackle that later). The directions given here are for Linaro Android. Does anyone have any idea how to get at the display settings (ie. where do I modify “omapfb.mode=dvi:1024x600MR-24@60 consoleblank=0”?).

    • Boris
      Apr 25, 2012

      If you are compiling custom kernel from the AOSP source you can just edit Linux config file after you run the make panda_defconfig. You will have to append the omap fb config argument to the CONFIG_CMDLINE param. It would look something like this:

      CONFIG_CMDLINE=”console=ttyO2,115200n8 mem=1G androidboot.console=ttyO2 omapfb.mode=dvi:1024x600MR-24@60 consoleblank=0″

  7. Nilesh Mane
    Mar 26, 2012

    i ahve follow the steps to build the android for pandaboard but during build i got error->

    //=============================================
    export TARGET_PRODUCT=pandaboard

    export TARGET_SIMULATOR=false

    export TARGET_TOOLS_PREFIX=/media/HDD2/work/android-toolchain-eabi/bin/arm-linux-androideabi-

    make TARGET_PRODUCT=${TARGET_PRODUCT} TARGET_TOOLS_PREFIX=${TARGET_TOOLS_PREFIX} HOST_CC=gcc-4.5 HOST_CXX=g++-4.5 HOST_CPP=cpp-4.5 boottarball systemtarball userdatatarball

    ///////////////output//////////////////////////
    host C: fs_get_stats <= build/tools/fs_get_stats/fs_get_stats.c
    /bin/bash: gcc-4.5: command not found
    make: *** [out/host/linux-x86/obj/EXECUTABLES/fs_get_stats_intermediates/fs_get_stats.o] Error 127
    user@ubuntu:/media/HDD2/work/android$ arm-linux-gnueabi-ld –version
    arm-linux-gnueabi-ld: command not found
    user@ubuntu:/media/HDD2/work/android$

    /==================================

    i am new to android i was unable to get the problem.

    (i have been sucessfully test the LCD+touch screen with pandaboard with debian linux)

    • Dr. Ace Jeangle
      Mar 26, 2012

      You don’t have gcc-4.5 installed. It means, that you missed some of above steps.
      Please, proceed exactly as per described steps, or download ready images (see links at the end of post).

      • nilesh mane
        Mar 26, 2012

        how can i install prebuild images to sd card

        • Dr. Ace Jeangle
          Mar 26, 2012

          Please, read carefully original post – it has all required info.

  8. nilesh mane
    Mar 26, 2012

    i have installed prebuild images to sd card set the resolution and applied android bianry patch.
    but at first time the android flsh screen apears then message is launcher failed message appears on screen .

    then i have restart the board then only android splash screen is there on display no desktop is there.

    • Nico
      Mar 26, 2012

      I had the same issue, it was the binary patch that wasn’t installed. I erased sd card and restarted the whole process again. Hope it helps.

      • Nilesh Mane
        Mar 28, 2012

        i have erase the card again,

        then again foolow the steps,
        1)copy the prebuild files to /media/HDD2/work/android/out/target/product/pandaboard
        2)run
        sudo linaro-android-media-create –mmc /dev/sdb –dev panda –system system.tar.bz2 –boot boot.tar.bz2 –userdata userdata.tar.bz2
        3)sync
        4)cd /media/HDD2/work/
        5)wget http://releases.linaro.org/12.01/android/images/landing-panda/install-binaries.sh
        6)chmod a+x install-binaries.sh
        7)./install-binaries.sh /dev/sdb2
        8)sync
        9)cd /media/boot/
        10) change resolution (added line to bootargs :omapfb.mode=dvi:1024x600MR-24@60 consoleblank=0)
        11)sudo mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n ‘boot script’ -d boot.txt boot.scr
        12)sync

        still the error is same “unfortunatly: launcher stoped”

        i dont understand what is happening.

        • Nilesh Mane
          Mar 28, 2012

          My PC is 32bit i5 , vmware(virtual ubuntu).
          is this create problem for prebuilt images too.

          • Nico
            Mar 28, 2012

            No i’ve done it on 32-bit too. Did you eject and insert the SD card again between your step 3 and 4 ?
            Also try to replace boot.scr/Kernel with those provided here

  9. Phung
    Mar 26, 2012

    Dear Dr.Ace Jeangle !
    I just want to say thank you. I’ve followed every steps in this tutorial so my pandaboard and LCD with touchscreen are working fine now. For everyone who stll have problems, do exactly every single step (but grab the linaro-android-12.01-release as dagentooboy’s mentioned in the first comment) in this post if you want to build your image or just grab the pre-built image uploaded by Dr.Ace (they both work fine).
    Best Regards to all.

    • Jack
      Mar 27, 2012

      Thanks, I understand you guys have it working for the Linaro version, I got that working too, it works thank you; However, I built Android from AOSP.com (leaving linaro out of the loop). I found where to add the omapfb line in the AOSP ICS build, modified that file and still the graphics are showong wrong size, wrong resolution and touch pad is non functional (I did figure out the brightness, problem, bad photosensor).

  10. JasonC
    Mar 28, 2012

    I could make a build with 4.0.1 but I couldn’t make a build with 4.0.3.
    And when I tried to boot using 4.0.1.

    I’m seeing following errors.
    1) Unable to read “preEnv.txt” from mmc 0:1
    2) Unable to read “uEnv.txt” from mmc 0:1.

    Is there anybody who experienced this issue?
    Please help me to get some ideas on it.
    Thanks,

    • Dr. Ace Jeangle
      Mar 29, 2012

      These instructions are for 4.0.1 only.
      Don’t worry about uEnv.txt and preEnv.txt files – they are just an options for bootargs.

      • JasonC
        Mar 29, 2012

        Thank you for your reply.
        But the board cannot boot properly and keeps rebooting and displaying the same messages.

        Thanks,

        • Dr. Ace Jeangle
          Mar 29, 2012

          Then I would suggest to use pre-built images that I append to the end of this post.These are proved to work by many others people already.

          • JasonC
            Mar 29, 2012

            Yes, the prebuilt image works. But I want to build from the source. 🙁
            And I want to understand what is wrong.

  11. Dr. Ace Jeangle
    Mar 29, 2012

    Usually, this can happen if it had error during downloading of packages.
    See for details here: https://github.com/flexiondotorg/oab-java6

  12. Francesco
    Mar 30, 2012

    Any news for the 7” LCD?

    • Dr. Ace Jeangle
      Mar 30, 2012

      7″ LCD with resistive touchscreen are in stock now, we will add it to shop module in couple days. As to capacitive touchscreen – we still awaiting for samples from supplier.

      • Francesco
        Apr 25, 2012

        When will be available?

  13. Nilesh
    Mar 31, 2012

    everything is working fine , i have now a wonderfull LDC + touch screen with my pandaboard.
    can you please tell me,how can i add drivers for this touchscreen in ubuntu?

    • Dr. Ace Jeangle
      Apr 04, 2012

      Usually, it should be already in kernel for last versions of Ubuntu. Check output of “dmesg” – does it have any reference to Cando Multi Touch?

  14. dagentooboy
    Mar 31, 2012

    FYI… for anyone having the Branch out of range errors during build. The wget link listed here has an old version of the toolchain. If you download the latest toolchain from Linaro (at least for me) it should build.

  15. dogyeng
    Apr 01, 2012

    Hi.
    I have followed the steps to build the android for beagleboard_xm but during build at source code I got error->
    build/core/product_config.mk:205: *** No matches for product “beagleboard”. Stop.

    my notebook os : ubuntu 11.04 * 64bit(acer aspire5552g)

    • Dr. Ace Jeangle
      Apr 04, 2012

      These instructions are for Pandaboard.

      • Skyler
        Apr 23, 2012

        How would one build this for Beagleboard then?

        • deep
          Apr 28, 2012

          Yes, how would one get do this on the beagle board please!

      • Venky Honey
        Sep 04, 2012

        Please Tell how would i get it for beagleboard.

  16. Flash
    Apr 10, 2012

    Anyone have this working on the pandaboard ES?

    I downloaded the images,
    used linaro-media-create
    applied the binary patch
    copied the boot.scr and kernel files over to the boot partition,
    and pushed the idc file over to the correct location.

    It boots up fine and gets to the android lock screen, and I can use a mouse.
    the touchscreen isn’t working though. I have some artifacts on the screen but it doesn’t seem to be as bad as the posted screenshot.

    any suggestions?

  17. Usman
    Apr 18, 2012

    I am constantly getting the following error whenever I try to execute the make command

    make -j8 TARGET_PRODUCT=${TARGET_PRODUCT} TARGET_TOOLS_PREFIX=${TARGET_TOOLS_PREFIX} HOST_CC=gcc-4.5 HOST_CXX=g++-4.5 HOST_CPP=cpp-4.5 boottarball systemtarball userdatatarball

    make: *** No rule to make target `boottarball’. Stop.

    Even for make boottarball I get the same error.

  18. Boris
    Apr 24, 2012

    If anybody is interested I have display working with PandaBoard ES on Android compiled on Ubuntu 12.04 64-bit. I was using android master repository. Instructions are here http://kafana.org/posts/pandaboard_android_ics/.

    Also, I’m having issues with the artifacts on my LVDS board. I emailed tech support, but so far no reply.

    • Dr. Ace Jeangle
      Apr 24, 2012

      Thanks for detailed instructions on building! It will be really helpful for many guys here.
      As to artifacts – I will work on this problem and try to figure out the source and workaround.

      • Boris
        Apr 24, 2012

        Thank you for your tutorial, it was a huge help.

        As far as the artifacts issue goes, if this is something that will take a long time I’m willing to purchase another LVDS board. How many boards are affected with this production bug, and what is the chance that new board will have the same issue?

  19. dagentooboy
    Apr 30, 2012

    For those of you who have been trying to build linaro tracking or AOSP master for our screens I have some steps for you.

    For Linaro Tracking I used the new build scripts. I found the solution to our DVI issue here https://bugs.launchpad.net/linaro-android/+bug/893000

    edit kernel/arch/arm/mach-omap2/board-omap4panda.c

    static struct omap_dss_device *omap4_panda_dss_devices[] = {
    &omap4_panda_dvi_device,
    &omap4_panda_hdmi_device,
    };

    static struct omap_dss_board_info omap4_panda_dss_data = {
    .num_devices = ARRAY_SIZE(omap4_panda_dss_devices),
    .devices = omap4_panda_dss_devices,
    .default_device = &omap4_panda_dvi_device, };

    The order of the devices and .default_device are the two major changes.

    For AOSP follow the android build guide except edit arch/arm/configs/panda_defconfig and change CONFIG_CMDLINE to add the bootargs listed above…. then build the kernel (just use make and copy the zImage to device/ti/panda/kernel)… now build Android and install using the Fastboot commands listed in device/ti/panda/README …. Hope this helps you guys.
    in

  20. Thomas
    May 08, 2012

    Hello,

    I followed all the steps until until “Build source code” after a while I got following message:
    /tmp/ccoo1EKY.s: Assembler messages:
    /tmp/ccoo1EKY.s:2092: Error: branch out of range
    make: *** [out/target/product/pandaboard/obj/SHARED_LIBRARIES/libFFTEm_intermediates/Embedded/common/src/b_BitFeatureEm/LocalScanDetector.o] Error 1
    make: *** Waiting for unfinished jobs….

    What should I do now?

    Thanks

    • Thomas
      May 09, 2012

      Hello

      I started the step again and it seem that it works fine.

      But at the next step “create the SD” I got another problem:

      Are you 100% sure, on selecting [/dev/sdc] (y/n)? y
      tar (child): boot.tar.bz2: Cannot open: No such file or directory
      tar (child): Error is not recoverable: exiting now
      tar: Child returned status 2
      tar: Error is not recoverable: exiting now
      Traceback (most recent call last):
      File “/usr/bin/linaro-android-media-create”, line 132, in
      unpack_android_binary_tarball(args.boot, BOOT_DIR)
      File “/usr/lib/pymodules/python2.7/linaro_image_tools/media_create/unpack_binary_tarball.py”, line 27, in unpack_android_binary_tarball
      proc.wait()
      File “/usr/lib/pymodules/python2.7/linaro_image_tools/cmd_runner.py”, line 100, in wait
      raise SubcommandNonZeroReturnValue(self._my_args, returncode)
      linaro_image_tools.cmd_runner.SubcommandNonZeroReturnValue: Sub process “[‘tar’, ‘–numeric-owner’, ‘-C’, ‘/tmp/tmpCtCJFd/boot’, ‘-jxf’, ‘boot.tar.bz2’]” returned a non-zero value: 2

      Did I made a mistake in one of the steps before?

      Thanks

      • Dr. Ace Jeangle
        May 17, 2012

        Thomas, check that you got three tar.bz2 files after make step is done.

        • Thomas
          May 23, 2012

          Hello,

          thanks for your answer. I could finished the installation and it worked fine.

          Now I have to performe the last step to work with the touch funktion.
          Please can you describe the your last step more in detail. I didn’t work with the adb command before and I’m not realy sure how to use it.

          Thanks

          • Dr. Ace Jeangle
            May 24, 2012

            ADB is standard utility for remote shell from Android SDK. More details are here: http://developer.android.com/guide/developing/tools/adb.html

          • Thomas
            Jun 12, 2012

            Hello Dr. Jeangle,

            I still have a problem with the touchscreen. I followed all the steps. Only the last command did not work. I looked to the SD card and the file was copied correctly I think. But after restart again no feedback from the touch.

            Thanks Thomas

  21. olivia
    May 10, 2012

    Hi, i wanted to know if someone has used the serial port of the Pandaboard, is just that i didn’t get any errors while compiling, and it runs fine, but when i try to connect to the serial port with a laptop using minicom, i get an error of protocol, and there has been a similar behaviour when i try to connect with the USB port to use it from eclipse, i think there is something wrong with the kernel, and i tried to use another kernel but it doesn’t start, i don’t know what could i do…

  22. recruit2010
    May 11, 2012

    Hi,
    I’ve followed all steps above but i just get error make: *** No rule to make target `boottarball’. Stop. while call make command. I think this because all my source files are in home but not in ~/work/android. But i don’t know why they always in there when i finish downloading. I was in ~/work/android/ when i call
    repo init -u ${MANIFEST_REPO} -b ${MANIFEST_BRANCH} -m ${MANIFEST_FILENAME}
    repo sync

    Thanks

  23. sk008
    Jul 23, 2012

    Hi,

    We are trying on 12.06 linaro release on pandaboard ES and the display is not coming onto lcd, but DVI is working fine.

    Can you please let us know the solution?

    Thanks.

  24. Dediego
    Aug 02, 2012

    I did these ,but got error:
    *** Default configuration is based on ‘versatile_defconfig’
    #
    # configuration written to .config
    #
    ***
    *** Can’t find default configuration “arch/arm/configs/android_omap4_defconfig”!
    ***
    make[3]: *** [android_omap4_defconfig] error 1
    make[2]: *** [android_omap4_defconfig] error 2
    make[1]: *** [sub-make] error 2
    make[1]:leaving dir `/home/ailk/work/android/kernel’
    make: *** [android_kernel] error 2

  25. Shravan
    Sep 14, 2012

    I have done the above steps to setup touchscreen (using the 10″ 720p panel with touch) on panda but the touch is relative and not absolute (meaning: i have to drag the cursor to a position and tap to select an icon). How can i calibrate and fix this issue???

    • Dr. Ace Jeangle
      Sep 17, 2012

      Please, let me know which LCD do you use? We had 10″ LCDs – one with 1024×600 and another 1280×800 resolution. Also, they use different touchscreen controllers – one is Cando Multitouch, another is N-Trig DuoSense.

      • sk008
        Sep 26, 2012

        I too have the same issue. I’m using 1280X800 LCD and configure N-Trig DuoSense in the kernel. I also have another LCD 1024X600, which works fine.

        • Dr. Ace Jeangle
          Sep 30, 2012

          Which version of Android do you use?

          • sk008
            Oct 05, 2012

            linaro 12.06, its ICS.

  26. marietto
    Sep 17, 2012

    I’m trying to install Android 4.1 Jelly Bean on the pandaboard ES with this bundle. I see the
    Android word displayed on the screen,but only for some time. After that,it disappears and I see only a blinking pointer that never stops. Nothing happens anymore. This is the log :

    .847259] cpuidle: using governor menu
    [ 4.853363] _regulator_get: omap_hsmmc.0 supply vmmc_aux not found,
    using dummy regulator
    [ 4.864685] _regulator_get: omap_hsmmc.4 supply vmmc_aux not found,
    using dummy regulator
    [ 4.913269] usb 1-1.2: new low-speed USB device number 4 using ehci-omap
    [ 4.951446] usbcore: registered new interface driver usbhid
    [ 4.957366] usbhid: USB HID core driver
    [ 4.962066] logger: created 256K log ‘log_main’
    [ 4.967071] logger: created 256K log ‘log_events’
    [ 4.972290] logger: created 256K log ‘log_radio’
    [ 4.977447] logger: created 256K log ‘log_system’
    [ 4.982788] thermal_governor_dev_register:Adding omap_ondie_governor governor
    [ 4.990386] thermal_init_thermal_state:Not all components
    registered for cpu domain sensor (null), gov=efd987a0, cooling=
    (null)
    [ 5.003326] omap-iommu omap-iommu.0: ducati registered
    [ 5.012329] SDP4430 SoC init
    [ 5.045745] asoc: null-codec-dai MultiMedia1 mapping ok
    [ 5.052612] asoc: null-codec-dai MultiMedia2 mapping ok
    [ 5.060455] asoc: null-codec-dai Voice mapping ok
    [ 5.067047] asoc: null-codec-dai Tones mapping ok
    [ 5.073425] asoc: null-codec-dai Vibra mapping ok
    [ 5.079193] asoc: null-codec-dai MODEM mapping ok
    [ 5.084564] usb 1-1.2: New USB device found, idVendor=1997, idProduct=0409
    [ 5.084869] asoc: null-codec-dai MultiMedia1 LP mapping ok
    [ 5.097991] usb 1-1.2: New USB device strings: Mfr=1, Product=2,
    SerialNumber=0
    [ 5.099670] mmc0: host does not support reading read-only switch.
    assuming write-enable.
    [ 5.099731] mmc0: new SDHC card at address e624
    [ 5.119079] usb 1-1.2: Product: Micro Keyboard
    [ 5.119110] mmcblk0: mmc0:e624 SU04G 3.69 GiB
    [ 5.128479] usb 1-1.2: Manufacturer: Riitek
    [ 5.134246] asoc: FM Digital omap-mcbsp-dai.1 mapping ok
    [ 5.141387] asoc: twl6040-legacy mcpdm-dl mapping ok
    [ 5.148010] input: Riitek Micro Keyboard as
    /devices/platform/usbhs-omap.0/ehci-omap.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input1
    [ 5.148590] asoc: dmic-hifi omap-dmic-dai-0 mapping ok
    [ 5.149475] asoc: twl6040-dl1 mcpdm-dl1 mapping ok
    [ 5.149780] asoc: twl6040-ul mcpdm-ul1 mapping ok
    [ 5.150238] asoc: twl6040-dl2 mcpdm-dl2 mapping ok
    [ 5.150482] asoc: twl6040-vib mcpdm-vib mapping ok
    [ 5.150787] asoc: Bluetooth omap-mcbsp-dai.0 mapping ok
    [ 5.151062] asoc: Bluetooth omap-mcbsp-dai.0 mapping ok
    [ 5.151306] mmcblk0: p1 p2 p3 p4
    [ 5.151550] asoc: FM Digital omap-mcbsp-dai.1 mapping ok
    [ 5.151824] asoc: MODEM omap-mcbsp-dai.1 mapping ok
    [ 5.152069] asoc: dmic-hifi omap-dmic-abe-dai-0 mapping ok
    [ 5.152343] asoc: dmic-hifi omap-dmic-abe-dai-1 mapping ok
    [ 5.152587] asoc: dmic-hifi omap-dmic-abe-dai-2 mapping ok
    [ 5.234039] generic-usb 0003:1997:0409.0001: input: USB HID v1.11
    Keyboard [Riitek Micro Keyboard] on usb-ehci-omap.0-1.2/input0
    [ 5.251586] input: PandaES Headset Jack as
    /devices/platform/soc-audio.0/sound/card0/input2
    [ 5.260711] input: Riitek Micro Keyboard as
    /devices/platform/usbhs-omap.0/ehci-omap.0/usb1/1-1/1-1.2/1-1.2:1.1/input/input3
    [ 5.274169] generic-usb 0003:1997:0409.0002: input: USB HID v1.11
    Mouse [Riitek Micro Keyboard] on usb-ehci-omap.0-1.2/input1
    [ 5.289825] Error: Driver ‘hdmi-audio-dai’ is already registered, aborting…
    [ 5.297454] OMAP4 HDMI audio SoC init
    [ 5.302642] asoc: hdmi-audio-codec hdmi-audio-dai mapping ok
    [ 5.309997] ALSA device list:
    [ 5.313140] #0: TI OMAP4 Board
    [ 5.316558] #1: TI OMAP4 HDMI Board
    [ 5.320648] oprofile: hardware counters not available
    [ 5.325988] oprofile: using timer interrupt.
    [ 5.330657] GACT probability NOT on
    [ 5.334350] Mirror/redirect action on
    [ 5.338256] u32 classifier
    [ 5.341094] Actions configured
    [ 5.344757] Netfilter messages via NETLINK v0.30.
    [ 5.349792] nf_conntrack version 0.5.0 (14392 buckets, 57568 max)
    [ 5.356597] ctnetlink v0.93: registering with nfnetlink.
    [ 5.362396] xt_time: kernel timezone is -0000
    [ 5.367401] usb 1-1.3: new full-speed USB device number 5 using ehci-omap
    [ 5.374664] ip_tables: (C) 2000-2006 Netfilter Core Team
    [ 5.380432] arp_tables: (C) 2002 David S. Miller
    [ 5.385345] mmc1: card claims to support voltages below the defined
    range. These will be ignored.
    [ 5.385467] TCP cubic registered
    [ 5.385467] Initializing XFRM netlink socket
    [ 5.402801] NET: Registered protocol family 10
    [ 5.408355] Mobile IPv6
    [ 5.410949] IPv6 over IPv4 tunneling driver
    [ 5.417205] NET: Registered protocol family 17
    [ 5.421966] NET: Registered protocol family 15
    [ 5.426696] NET: Registered protocol family 35
    [ 5.431549] lib80211: common routines for IEEE802.11 drivers
    [ 5.437622] Registering the dns_resolver key type
    [ 5.442626] VFP support v0.3: implementor 41 architecture 3 part 30
    variant 9 rev 4
    [ 5.450744] ThumbEE CPU extension supported.
    [ 5.455322] Registering SWP/SWPB emulation handler
    [ 5.463989] thermal_cooling_dev_register:Found cpu cpu
    [ 5.469451] thermal_cooling_dev_register: doing deferred tdev
    [ 5.475555] thermal_sensor_dev_register:Found cpu cpu
    [ 5.480926] thermal_sensor_dev_register:Adding omap_ondie_sensor sensor
    [ 5.487976] thermal_init_thermal_state: Getting initial temp for cpu domain
    [ 5.495361] thermal_request_temp
    [ 5.498779] omap_safe_zone:hot spot temp 64067
    [ 5.503601] cpufreq_apply_cooling: Unthrottle cool level 0 curr cool 125000
    [ 5.511016] omap_thermal_step_freq_up: temperature reduced, stepping up to 0
    [ 5.518768] thermal_request_temp got 52000
    [ 5.524047] Power Management for TI OMAP4.
    [ 5.524261] mmc1: queuing unknown CIS tuple 0x91 (3 bytes)
    [ 5.525268] mmc1: new SDIO card at address 0001
    [ 5.539916] sr_init: No PMIC hook to init smartreflex
    [ 5.543548] usb 1-1.3: New USB device found, idVendor=2087, idProduct=0a01
    [ 5.543548] usb 1-1.3: New USB device strings: Mfr=1, Product=2,
    SerialNumber=3
    [ 5.543548] usb 1-1.3: Product: Cando 10.1 Multi Touch Panel with Controller
    [ 5.543609] usb 1-1.3: Manufacturer: Cando Corporation
    [ 5.543609] usb 1-1.3: SerialNumber: 20091003.001
    [ 5.578491] smartreflex smartreflex.0: omap_sr_probe: SmartReflex
    driver initialized
    [ 5.586853] smartreflex smartreflex.1: omap_sr_probe: SmartReflex
    driver initialized
    [ 5.595306] smartreflex smartreflex.2: omap_sr_probe: SmartReflex
    driver initialized
    [ 5.603881] SmartReflex Class3 initialized
    [ 5.609161] cma: CMA: reserved 32 MiB at ac000000
    [ 5.616363] clock: disabling unused clocks to save power
    [ 5.625854] fbcvt: Aspect ratio not CVT standard
    [ 5.625854] fbcvt: 1024×600@60: CVT Name – Not a CVT standard –
    0.614 Mega Pixel Image
    [ 5.630981]
    [ 5.646392] omapfb omapfb: failed to apply dispc config
    [ 5.657379] omapfb omapfb: failed to apply dispc config
    [ 5.668334] omapfb omapfb: failed to apply dispc config
    [ 6.190124] Console: switching to colour frame buffer device 128×75
    [ 6.214721] regulator_init_complete: VANA: incomplete constraints, leaving on
    [ 6.223327] regulator_init_complete: CLK32KG: incomplete
    constraints, leaving on
    [ 6.234313] regulator_init_complete: VDAC: incomplete constraints, leaving on
    [ 6.244812] regulator_init_complete: VUSB: incomplete constraints, leaving on
    [ 6.254608] twl_rtc twl_rtc: setting system clock to 2000-01-01
    00:00:01 UTC (946684801)
    [ 6.263641] omap4iss omap4iss: Revision 40000103 found
    [ 6.273803] ov5650 3-0036: Failed reading register 0x302a!
    [ 6.279693] ov5650 3-0036: Failure to detect OV5650 chip
    [ 6.285827] iss_register_subdev_group: Unable to register subdev ov5650
    [ 6.294830] Freeing init memory: 276K
    [ 6.306823] init (1): /proc/1/oom_adj is deprecated, please use
    /proc/1/oom_score_adj instead.
    [ 6.614593] init: cannot open ‘/initlogo.rle’
    [ 6.665100] EXT4-fs (mmcblk0p2): mounted filesystem with ordered
    data mode. Opts: (null)
    [ 6.738555] EXT4-fs (mmcblk0p3): recovery complete
    [ 6.747161] EXT4-fs (mmcblk0p3): mounted filesystem with ordered
    data mode. Opts: (null)
    [ 6.968139] EXT4-fs (mmcblk0p5): recovery complete
    [ 6.977508] EXT4-fs (mmcblk0p5): mounted filesystem with ordered
    data mode. Opts: (null)
    [ 7.017578] android_usb: already disabled
    [ 7.023132] adb_bind_config
    [ 7.152709] Disabling lock debugging due to kernel taint
    [ 7.184387] init: cannot find ‘/system/bin/rild’, disabling ‘ril-daemon’
    [ 7.259887] init: cannot find ‘/system/etc/install-recovery.sh’,
    disabling ‘flash_recovery’
    [ 7.270324] init: cannot find ‘/system/bin/pvrsrvinit’, disabling
    ‘pvrsrvinit’
    [ 7.279113] SDP4430 Media: asoc: SDP4430 Media no valid capture
    route from source to sink
    [ 7.289367] SDP4430 Media: asoc: SDP4430 Media no valid capture
    route from source to sink
    [ 7.298767] SDP4430 Media: asoc: SDP4430 Media no valid playback
    route from source to sink
    [ 7.308197] SDP4430 Media: asoc: SDP4430 Media no valid playback
    route from source to sink
    [ 7.317535] SDP4430 MODEM: asoc: SDP4430 MODEM no valid capture
    route from source to sink
    [ 7.326599] SDP4430 MODEM: asoc: SDP4430 MODEM no valid capture
    route from source to sink
    [ 7.336517] SDP4430 MODEM: asoc: SDP4430 MODEM no valid playback
    route from source to sink
    [ 7.345855] SDP4430 MODEM: asoc: SDP4430 MODEM no valid playback
    route from source to sink
    [ 7.472045] (stk) :sysfs entries created
    [ 7.473266] (stk) : debugfs entries created root@android:/ #
    [ 8.266906] Bluetooth: Core ver 2.16
    [ 8.274536] NET: Registered protocol family 31
    [ 8.279296] Bluetooth: HCI device and connection manager initialized
    [ 8.285949] Bluetooth: HCI socket layer initialized
    [ 8.291320] Bluetooth: L2CAP socket layer initialized
    [ 8.294189] Bluetooth: SCO socket layer initialized
    [ 8.395233] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [ 8.401367] Bluetooth: BNEP filters: protocol multicast
    [ 8.516387] Bluetooth: HCI UART driver ver 2.2
    [ 8.521514] Bluetooth: HCI H4 protocol initialized
    [ 8.526641] Bluetooth: HCI BCSP protocol initialized
    [ 8.533447] Bluetooth: HCILL protocol initialized
    [ 8.640075] Bluetooth: RFCOMM TTY layer initialized
    [ 8.645385] Bluetooth: RFCOMM socket layer initialized
    [ 8.651062] Bluetooth: RFCOMM ver 1.11
    [ 8.735748] Bluetooth: Bluetooth Driver for TI WiLink – Version 1.0
    [ 8.744140] (stc): st_register(4)
    [ 8.744171] (stc): chnl_id list empty :4
    [ 8.744171] (stk) : st_kim_start
    [ 8.854217] (stk) :ldisc_install = 1
    [ 8.911041] (stc): st_tty_open
    [ 8.914733] (stk) :line discipline installed
    [ 8.919982] (stk) :TIInit_7.6.15.bts
    [ 9.227020] (stc): add_channel_to_table: id 4
    [ 9.231964] (stc): st_register(2)
    [ 9.246673] (stc): add_channel_to_table: id 2
    [ 9.251831] (stc): st_register(3)
    [ 9.260742] (stc): add_channel_to_table: id 3
    [ 9.541168] init: using deprecated syntax for specifying property
    ‘ro.product.manufacturer’, use ${name} instead
    [ 9.554016] init: using deprecated syntax for specifying property
    ‘ro.product.model’, use ${name} instead
    [ 9.564697] init: using deprecated syntax for specifying property
    ‘ro.serialno’, use ${name} instead
    [ 9.928771] adb_bind_config
    [ 10.212615] adb_open
    [ 10.894134] init: untracked pid 1326 exited
    [ 11.290863] (stc): remove_channel_from_table: id 3
    [ 11.291503] (stc): remove_channel_from_table: id 2
    [ 11.301147] (stc): remove_channel_from_table: id 4
    [ 11.309295] (stc): all chnl_ids unregistered
    [ 11.318511] (stk) :ldisc_install = 0
    [ 11.322692] (stc): st_tty_close
    [ 13.489837] init: untracked pid 1551 exited
    [ 28.430633] init: untracked pid 1591 exited
    [ 33.128051] init: untracked pid 1615 exited
    [ 33.132934] init: untracked pid 1611 exited
    [ 37.796295] init: untracked pid 1638 exited
    [ 37.800994] init: untracked pid 1634 exited
    [ 43.789855] init: untracked pid 1657 exited
    [ 43.801177] init: untracked pid 1661 exited
    [ 49.066497] init: untracked pid 1680 exited
    [ 49.077941] init: untracked pid 1684 exited
    [ 54.131652] init: untracked pid 1707 exited
    [ 54.136383] init: untracked pid 1703 exited
    [ 59.271179] init: untracked pid 1726 exited
    [ 59.278350] init: untracked pid 1730 exited
    [ 64.528656] init: untracked pid 1749 exited
    [ 64.534545] init: untracked pid 1753 exited
    [ 70.473419] init: untracked pid 1772 exited
    [ 70.478118] init: untracked pid 1776 exited
    [ 75.130554] init: untracked pid 1795 exited
    [ 75.130554] init: untracked pid 1799 exited
    [ 79.721801] init: untracked pid 1822 exited
    [ 79.726562] init: untracked pid 1818 exited
    [ 85.162567] init: untracked pid 1841 exited
    [ 85.168395] init: untracked pid 1845 exited
    [ 89.712554] init: untracked pid 1868 exited
    [ 89.717468] init: untracked pid 1864 exited

  27. Geoff Johnson
    Oct 01, 2012

    Unfortunately the above instructions do not work for me despite following them exactly. I am trying to build in an Ubuntu 11.04 x86_64 virtual machine that has been completely left alone except for the steps given, it has 2GB of RAM, 2GB of swap, 120GB HD with 91% free. JDK is Sun 6, gcc is 4.5, make is 3.81 but when I run the make call I get:

    /tmp/ccp20NBM.s: Assembler messages:
    /tmp/ccp20NBM.s:2092: Error: branch out of range
    make: *** [out/target/product/pandaboard/obj/SHARED_LIBRARIES/libFFTEm_intermediates/Embedded/common/src/b_BitFeatureEm/LocalScanDetector.o] Error 1
    make: *** Waiting for unfinished jobs….

    Some assistance would be greatly appreciated. Thanks.

    • Geoff Johnson
      Oct 03, 2012

      I read somewhere that the version of the toolchain (4.6) that this page refers to is the cause of the issue I was having so I downloaded the latest (4.7) and tried again and I get a new error. This time it’s

      system/media/wilhelm/src/assert.c:24: error: undefined reference to ‘__android_log_assert’
      system/media/wilhelm/src/assert.c:31: error: undefined reference to ‘__android_log_assert’

      collect2: error: ld returned 1 exit status
      make: *** [out/target/product/pandaboard/obj/SHARED_LIBRARIES/libOpenSLES_intermediates/LINKED/libOpenSLES.so] Error 1

  28. simom
    Oct 03, 2012

    I cannot use touchpanel on Linaro 12.08.
    I tried this page’s how to, but not enabled.
    Touchpanel is N-Trig DuoSense 10’1inch LCD.
    If anybody knows how to, tell me please.

  29. […] to explain how to get USB devices to be seen ny Android as an internal devices , blah blah blah. https://www.chalk-elec.com/?p=1426 This is the only thorn in my side right now. If this can be figured out, then these would be the […]

  30. […] JB running on my Pandaboard ES with LG 10″ with touchscreen. Compare it to our old How-to: https://www.chalk-elec.com/?p=1426 and feel the […]

  31. […] How to compile Android ICS with touchscreen support … – OK, lets make our own Android ICS tablet based on PandaBoard and our 10″ LCD bundle. We will use Linaro 12.01 build. Prerequisites. We will need Ubuntu 11.04 x64 …… […]

Leave a Reply to Dr. Ace Jeangle Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Follow us