zoukankan      html  css  js  c++  java
  • TI芯片android环境搭建和编译

    1>. Reading package lists... Done
      Building dependency tree       
      Reading state information... Done
      Package sun-java6-jdk is not available, but is referred to by another package.
      This may mean that the package is missing, has been obsoleted, or
      is only available from another source
      E: Package sun-java6-jdk has no installation candidate

      1、添加这个源:

      sudo gedit /etc/apt/sources.list
      打开源列表,在最后一行添加:
      deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse,

      或者deb http://cn.archive.ubuntu.com/ubuntu/ oneiric multiverse;保存退出。

      或者sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"

      但是我得到的结果依旧是错误,几经寻找,终于找到一种方法最后的解决方法是:

      sudo add-apt-repository ppa:ferramroberto/java

      2、sudo apt-get update
      3、sudo apt-get install sun-java6-jdk

    2>.
      $ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
      $ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
      $ sudo apt-get update
      $ sudo apt-get install git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev minicom tftpd uboot-mkimage expect
      $ sudo update-java-alternatives -s java-6-sun
     
      【Java 6: for Gingerbread and newer】
      sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
      sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
      sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse" //2012-4-10 chang

      sudo apt-get update
      sudo apt-get install sun-java6-jdk
      sudo update-java-alternatives -s java-6-sun
      update-alternatives: error: 无 xulrunner-addons-javaplugin.so 的替换项。
      update-alternatives: error: 无 xulrunner-addons-javaplugin.so 的替换项。
      解决:apt-get install sun-java6-plugin
      然后再update-java-alternatives -s java-6-sun (还是没有解决,不过对后面没有什么影响)

    3>.
      mkdir ~/bin
      PATH=~/bin:$PATH
     
      curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
      chmod a+x ~/bin/repo

      cd  /opt
      mkdir rowboat-android
      cd rowboat-android
      Download the pre-packaged repo from http://software-dl.ti.com/dsps/dsps_public_sw/sdo_tii/TI_Android_DevKit/TI_Android_GingerBread_2_3_DevKit_2_0/index_FDS.html
      tar -xvzf TI_Android_GingerBread_2.3_DevKit_2.0_Sources.tar.bz
      cd TI_Android_GingerBread_2.3_DevKit_2.0_Sources
       ./.repo/repo/repo sync --local-only
      
       This will generate the sources for

      * Android
      * Android Linux Kernel (in kernel directory)
      * u-boot boot loader (in u-boot-omap3 directory)
      * Toolchain (prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin) 编译器路径
     
      export PATH=/opt/rowboat-android/TI_Android_GingerBread_2.3_DevKit_2.0_Sources/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:$PATH
      export ANDROID_ROOT=/opt/rowboat-android/TI_Android_GingerBread_2.3_DevKit_2.0_Sources  ###########<android_root>

    4>.
      cd $ANDROID_ROOT/u-boot-omap3
     
      make CROSS_COMPILE=arm-eabi- ARCH=arm distclean
      make CROSS_COMPILE=arm-eabi- ARCH=arm ti8168_evm_min_sd ###########<default_config_sd>
      make CROSS_COMPILE=arm-eabi- ARCH=arm u-boot.ti
      mv u-boot.min.sd MLO
     
      Where default_config_sd is
         ti8148_evm_min_sd    : For TI814X EVM
         ti8168_evm_min_sd    : For TI816X EVM
     
      This will generate a file u-boot.min.sd which needs to be renamed to MLO
     
      make ARCH=arm CROSS_COMPILE=arm-eabi- distclean
      make ARCH=arm CROSS_COMPILE=arm-eabi- ti8168_evm_config ###########<default_config>
      make ARCH=arm CROSS_COMPILE=arm-eabi-
     
      Where default_config_sd is
         ti8148_evm_config    : For TI814X EVM
         ti8168_evm_config    : For TI816X EVM
     
      This command will build the u-boot Image "u-boot.bin"

    5>.
      cd $ANDROID_ROOT/kernel

      make ARCH=arm CROSS_COMPILE=arm-eabi- distclean
      make ARCH=arm CROSS_COMPILE=arm-eabi- ti8168_evm_android_defconfig ###########<default config>
      make ARCH=arm CROSS_COMPILE=arm-eabi- uImage

      Where default config is
      ti8148_evm_android_defconfig        : For TI814X EVM
      ti8168_evm_android_defconfig        : For TI816X EVM
         
      "mkimage" command not found - U-Boot images will not be built
      apt-get install uboot-mkimage

    6>.
      cd $ANDROID_ROOT

      make TARGET_PRODUCT=ti816xevm  OMAPES=6.x  ##############<product_name>

      (1)/bin/bash: bison: command not found
      解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install bison

      (2)make: *** No rule to make target `Please-install-JDK-5.0,-update-12-or-higher,-which-you-can-download-from-java.sun.com',
      needed by `out/target/common/docs/api-stubs-timestamp'. Stop. 
      解决:安装JDK 5.0
      1):根据官方文档里所说,源代码的编译必须使用JDK5才能编译的了,所以这里我们使用jdk5
      2): 需要先更新源,在终端里执行 sudo vim /etc/apt/sources.list
      3): 在source.list里把以下2行拷贝到文档最后面:
      deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
      deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
      保存退出。
      4): 执行 sudo apt-get update 更新源
      5): 配置编译环境并下载JDK5:sudo apt-get install sun-java5-jdk

      (3)/bin/bash: g++: command not found
      make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/pseudolocalize.o] Error 127
      解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install build-essential

      (4)external/clearsilver/cgi/cgi.c:22:18: error: zlib.h: No such file or directory
      external/clearsilver/cgi/cgi.c: In function ‘cgi_compress’:
      external/clearsilver/cgi/cgi.c:885: error: ‘z_stream’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:885: error: (Each undeclared identifier is reported only once
      external/clearsilver/cgi/cgi.c:885: error: for each function it appears in.)
      external/clearsilver/cgi/cgi.c:885: error: expected ‘;’ before ‘stream’
      external/clearsilver/cgi/cgi.c:888: error: ‘stream’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:888: error: ‘Bytef’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:888: error: expected expression before ‘)’ token
      external/clearsilver/cgi/cgi.c:889: error: ‘uInt’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:889: error: expected ‘;’ before ‘str’
      external/clearsilver/cgi/cgi.c:890: error: expected expression before ‘)’ token
      external/clearsilver/cgi/cgi.c:892: error: ‘uLong’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:892: error: expected ‘)’ before ‘stream’
      external/clearsilver/cgi/cgi.c:895: error: ‘alloc_func’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:895: error: expected ‘;’ before numeric constant
      external/clearsilver/cgi/cgi.c:896: error: ‘free_func’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:896: error: expected ‘;’ before numeric constant
      external/clearsilver/cgi/cgi.c:897: error: ‘voidpf’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:897: error: expected ‘;’ before numeric constant
        external/clearsilver/cgi/cgi.c:900: error: ‘Z_DEFAULT_COMPRESSION’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:900: error: ‘Z_DEFLATED’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:900: error: ‘MAX_WBITS’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:900: error: ‘Z_DEFAULT_STRATEGY’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:901: error: ‘Z_OK’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:904: error: ‘Z_FINISH’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:905: error: ‘Z_STREAM_END’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c: In function ‘cgi_output’:
      external/clearsilver/cgi/cgi.c:1200: error: ‘Z_NULL’ undeclared (first use in this function)
      external/clearsilver/cgi/cgi.c:1201: error: expected ‘)’ before ‘Bytef’
      external/clearsilver/cgi/cgi.c:1218: error: ‘Z_DEFLATED’ undeclared (first use in this function)
      make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_cgi_intermediates/cgi.o] Error 1
      解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install zlib1g-dev

      (5)/bin/bash: flex: command not found
      make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127
      解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install flex

      (6)/usr/bin/ld: cannot find -lncurses
      collect2: ld returned 1 exit status
      make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1
      解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install libncurses-dev

      (7)prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55:22: error: X11/Xlib.h: No such file or directory
      prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:56:23: error: X11/Xatom.h: No such file or directory
      In file included from external/qemu/android/skin/window.c:19:
      prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:73: error: expected specifier-qualifier-list before ‘XEvent’
      prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:86: error: expected specifier-qualifier-list before ‘Display’
      make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/skin/window.o] Error 1
      解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install libx11-dev

      (8)sh: gperf: not found
      calling gperf failed: 32512 at ./makeprop.pl line 96.
      make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h]
      Error 25
      make: *** Deleting file `out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h'
      解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install gperf

      http://hi.baidu.com/maxgoto/blog/item/fa000f7bf01135f80ad187d8.html 

    7>.
        export SYSLINK_ROOT=$ANDROID_ROOT/hardware/ti/ti81xx/syslink_vpss/syslink_02_00_00_67_alpha2
        export FS_ROOT=$ANDROID_ROOT/out/target/product/ti816xevm ###############<product_name>
        export IPCDIR=$ANDROID_ROOT/hardware/ti/ti81xx/syslink_vpss/ipc_1_22_03_23/packages
        export TARGET_PRODUCT=ti816xevm ##########<product_name>环境变量设置所有变量靠近“=”号
        export SYSLINK_VARIANT=TI816X #############<variant_name>

        Note: product_name is ti814xevm for TI814X and ti816xevm for TI816X
            variant_name is TI814X or TI816X
      
      cd $SYSLINK_ROOT/ti/syslink/utils/hlos/knl/Linux

      make ARCH=arm CROSS_COMPILE=arm-eabi- SYSLINK_PLATFORM=TI81XX clean
      make ARCH=arm CROSS_COMPILE=arm-eabi- SYSLINK_PLATFORM=TI81XX

      cd $SYSLINK_ROOT/ti/syslink/utils/hlos/usr/Linux

      make ARCH=arm CROSS_COMPILE=arm-eabi- SYSLINK_PLATFORM=TI81XX clean
      make ARCH=arm CROSS_COMPILE=arm-eabi- SYSLINK_PLATFORM=TI81XX
     
      cd $SYSLINK_ROOT/ti/syslink/samples/hlos/procMgr/usr/Linux  

      make ARCH=arm CROSS_COMPILE=arm-eabi- SYSLINK_PLATFORM=TI81XX SYSLINK_VARIANT=TI816X clean
      make ARCH=arm CROSS_COMPILE=arm-eabi- SYSLINK_PLATFORM=TI81XX SYSLINK_VARIANT=TI816X
     
      cp -r $ANDROID_ROOT/device/ti/$TARGET_PRODUCT/syslink $ANDROID_ROOT/out/target/product/$TARGET_PRODUCT/system/bin
      cp -r $SYSLINK_ROOT/ti/syslink/bin/$SYSLINK_VARIANT/syslink.ko $SYSLINK_ROOT/ti/syslink/bin/$SYSLINK_VARIANT/samples/procmgrapp_release
      $ANDROID_ROOT/hardware/ti/ti81xx/syslink_vpss/hdvpss/$SYSLINK_VARIANT/* $ANDROID_ROOT/out/target/product/$TARGET_PRODUCT/system/bin/syslink/ 

    8>.
      cd $ANDROID_ROOT/kernel

      make ARCH=arm CROSS_COMPILE=arm-eabi- KBUILD_EXTRA_SYMBOLS=$SYSLINK_ROOT/ti/syslink/utils/hlos/knl/Linux/Module.symvers modules
      make ARCH=arm CROSS_COMPILE=arm-eabi- INSTALL_MOD_PATH=$FS_ROOT/system/
      KBUILD_EXTRA_SYMBOLS=$SYSLINK_ROOT/ti/syslink/utils/hlos/knl/Linux/Module.symvers modules_install 

    9>.
      cd $ANDROID_ROOT/hardware/ti/sgx

      make ANDROID_ROOT_DIR=$ANDROID_ROOT OMAPES=6.x
      make ANDROID_ROOT_DIR=$ANDROID_ROOT OMAPES=6.x install 

    10>
      cd $ANDROID_ROOT/out/target/product/ti816xevm ###############<product_name>

      mdkir android_rootfs
      cp -r root/* android_rootfs
      cp -r system android_rootfs
      sudo ../../../../build/tools/mktarball.sh ../../../host/linux-x86/bin/fs_get_stats android_rootfs . rootfs rootfs.tar.bz2
     
      NOTE: product_name can be ti814xevm or ti816xevm

    11>.
      cd /opt/TI_Android_GingerBread_2.3_DevKit_2.0/Prebuilt_Images

      ../Tools/mk-bootscr/mkbootscr
      mkdir DVR_TI816X
      cp $ANDROID_ROOT/kernel/arch/arm/boot/uImage DVR_TI816X
      cp $ANDROID_ROOT/u-boot-omap3/u-boot.bin DVR_TI816X
      cp $ANDROID_ROOT/u-boot-omap3/MLO DVR_TI816X
      cp boot.scr DVR_TI816X
      cp $ANDROID_ROOT/out/target/product/ti816xevm/rootfs.tar.bz2 DVR_TI816X
      cp -rf AM389X_TI816X/Media_Clips DVR_TI816X/
      cp ../Tools/mk-mmc/mkmmc-android.sh DVR_TI816X/
      cd DVR_TI816X
      ./mkmmc-android.sh /dev/sdb MLO u-boot.bin uImage boot.scr rootfs.tar.bz2 Media_Clips
     
      Note:
      ./mkmmc-android <sd card mounted dev folder example:/dev/sdc> MLO u-boot.bin uImage boot.scr rootfs.tar.bz2 Media_Clips

    12>.
      从SD卡启动
      setenv bootargs 'mem=166M@0x80000000 mem=768M@0x90000000 console=ttyO2,115200n8 androidboot.console=ttyO2  root=/dev/mmcblk0p2 rw rootfstype=ext3 rootdelay=1 init=/init ip=off'
      mmc init
      fatload mmc 0 81000000 uImage
      bootm 0x81000000

    13>.
      从NFS加载文件系统
      mkdir /home/m/rfs_816x
      cd /home/m/rfs_816x
      tar -jxvf rootfs.tar.bz2

      vim /etc/exports
      /home/m/rfs_816x *(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
      sudo exportfs -a
      sudo service nfs-kernel-server restart

      setenv bootargs 'mem=166M@0x80000000 mem=768M@0x90000000 console=ttyO2,115200n8 androidboot.console=ttyO2 noinitrd ip=dhcp rw init=/init root=/dev/nfs nfsroot=192.168.168.188:/home/m/rfs_816x rootwait '
      mmc init
      fatload mmc 0 81000000 uImage
      bootm 0x81000000

  • 相关阅读:
    FreeRTOS移植到Cortex-M3-M4
    码位颠倒C程序
    开平方与魔数0x5F3759DF:Quake III 开源代码
    MathJax: Web 页面显示数学公式
    Notepad++ NppExport: 让你在Microsoft word 中粘贴语法高亮代码
    [转]matlab 函数三种定义方式
    机器上的几种Eclipse
    自己开发CC3000模块
    Java中的线程的生命周期大体可分为5种状态
    srand和rand的用法和联系
  • 原文地址:https://www.cnblogs.com/cslunatic/p/3186671.html
Copyright © 2011-2022 走看看