msm8909编译环境搭建

高通部分代码编译需要license,可向公司申请
下载qcom的amss即modem部分代码
下载android代码

modem部分包括sbl1 rpm tz mpss nonhlos.bin

android必须要有amss的代码,amss的代码不能放在android里面

cp ./LINUX/android/vendor/qcom/proprietary ~/Qcomm/msm8909-sdk/msm8909_svn/vendor/qcom/  -fr

编译android

source build/envsetup.sh

lunch msm8909-userdebug

make -j

编译sbl1

cd boot_images/build/ms
./build.sh TARGET_FAMILY=8909 –prod
./build.sh TARGET_FAMILY=8909 –prod -c //清除

修改

Index: boot_images/build/ms/setenv.sh
===================================================================
--- boot_images/build/ms/setenv.sh      (revision 73)
+++ boot_images/build/ms/setenv.sh      (revision 74)
@@ -70,19 +70,24 @@
    }
 # Set up compiler path 
    #ARM_COMPILER_PATH=/pkg/qct/software/arm/RVDS/5.01bld94/sw/debugger/configdb/Boards/ARM/Cortex-A8_RTSM/linux-pentium
-   export ARM_COMPILER_PATH=/pkg/qct/software/arm/RVDS/5.01bld94/bin64
-   export PYTHON_PATH=/pkg/qct/software/python/2.6.6/bin
-   export MAKE_PATH=/pkg/gnu/make/3.81/bin
-   export ARMTOOLS=ARMCT5.01
-   export ARMROOT=/pkg/qct/software/arm/RVDS/5.01bld94
+   export ARM_COMPILER_PATH=/opt/Qualcomm/ARM5.01bld94
+   export PYTHON_PATH=/opt/Qualcomm/PYTHON/Python-2.6.6
+   export MAKE_PATH=/usr/bin
+   export ARMTOOLS=RCVT41
+   export ARMROOT=/opt/Qualcomm/ARM5.01bld94
    export ARMLIB=$ARMROOT/lib
    export ARMINCLUDE=$ARMROOT/include
    export ARMINC=$ARMINCLUDE
    #export ARMCONF=$ARMROOT/sw/Debugger/configdb/Boards/ARM/Cortex-A8_RTSM/linux-pentium
   # export ARMDLL=$ARMROOT/sw/debugger/configdb/Boards/ARM/Cortex-A8_RTSM/linux-pentium
-   export ARMBIN=$ARMROOT/bin64
+   export ARMBIN=$ARMROOT/bin
    export PATH=$MAKE_PATH:$PYTHON_PATH:$ARM_COMPILER_PATH:$PATH
    export ARMHOME=$ARMROOT
-   export_armlmd_license
+   export ARMLMD_LICENSE_FILE=${ARMROOT}/license.dat
+   #export_armlmd_license
+   export "ARMCC5_ASMOPT=--licretry --diag_suppress=9931,9933"
+   export "ARMCC5_CCOPT=--licretry --diag_suppress=9931,9933"
+   export "ARMCC5_FROMELFOPT=--licretry --diag_suppress=9931,9933"
+   export "ARMCC5_LINKOPT=--licretry --diag_suppress=9931,9933"

 fi

sbl1生成在 boot_images/build/ms/bin/8909/emmc/sbl1.mbn

编译rpm

cd rpm_proc/build
./build_8909.sh

修改


Index: rpm_proc/build/build_8909.sh
===================================================================
--- rpm_proc/build/build_8909.sh        (revision 73)
+++ rpm_proc/build/build_8909.sh        (revision 74)
@@ -15,6 +15,9 @@
 export CHIPSET=msm8909
 export CHIPSET_PMIC=pm8909
 export SECPOLICY=USES_SEC_POLICY_DEFAULT_SIGN
+
+source /opt/Qualcomm/setenv_qcom.sh 
+
 cd './rpm_proc/build/'

 python ./build_common.py $@

/opt/Qualcomm/setenv_qcom.sh

#!/bin/bash
export ARMROOT=/opt/Qualcomm/ARM5.01bld94
export ARMTOOLS=RVCT41
export ARMHOME=$ARMROOT
export ARMBIN=${ARMROOT}/bin
export ARMPATH=${ARMROOT}/bin
export ARMINC=${ARMROOT}/include
export ARMINCLUDE=${ARMROOT}/include
export ARMLIB=${ARMROOT}/lib
export ARMLMD_LICENSE_FILE=${ARMROOT}/license.dat

export SCONS_OVERRIDE_NUM_JOBS=8

export PATH=.:${ARMBIN}:$PATH
export "ARMCC5_ASMOPT=--licretry --diag_suppress=9931,9933"
export "ARMCC5_CCOPT=--licretry --diag_suppress=9931,9933"
export "ARMCC5_FROMELFOPT=--licretry --diag_suppress=9931,9933"
export "ARMCC5_LINKOPT=--licretry --diag_suppress=9931,9933"

export LLVMTOOLS=LLVM
#Snapdragon_LLVM_ARM_linux_3.8.4
export LLVMROOT=/opt/Qualcomm/LLVMROOT
export LLVMBIN=$LLVMROOT/bin
export LLVMLIB=$LLVMROOT/lib/clang/3.8.4/lib/linux
export MUSLPATH=$LLVMROOT/tools/lib64
export MUSL32PATH=$LLVMROOT/tools/lib32
export LLVMINC=$MUSLPATH/include
export LLVM32INC=$MUSL32PATH/include
export LLVMTOOLPATH=$LLVMROOT/tools/bin

PYTHON_PATH=/opt/Qualcomm/PYTHON/Python-2.6.6/bin


export GNUROOT=/opt/Qualcomm/GNU/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu

export GNUARM7=/opt/Qualcomm/GNU/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux


export HEXAGON_ROOT=/opt/Qualcomm/HEXAGON_Tools

export PATH=$MAKE_PATH:$PYTHON_PATH:$ARM_COMPILER_PATH:$HEXAGON_ROOT:$HEXAGON_ROOT/6.4.06/gnu/bin:$PATH

上面的HEXAGON_Tools 6.4.06对应的版本居然在高通官网上下不到,其他版本都不行,安装也不成功,这个已安装成功的,还是我向别人要的,然后直接放在对应的路径下

编译tz

cd trustzone_images/build/ms


./build.sh CHIPSET=msm8909 tz sampleapp tzbsp_no_xpu playready widevine isdbtmm aostlm securitytest keymaster commonlib 



./build.sh CHIPSET=msm8909 tz sampleapp tzbsp_no_xpu playready widevine isdbtmm aostlm securitytest keymaster commonlib  -c

修改

Index: trustzone_images/build/ms/setenv.sh
===================================================================
--- trustzone_images/build/ms/setenv.sh (revision 73)
+++ trustzone_images/build/ms/setenv.sh (revision 74)
@@ -43,28 +43,15 @@
      rm -f __temp.out
    }
 # Set up compiler path
-   ARM_COMPILER_PATH=/pkg/qct/software/arm/RVDS/5.01bld94/sw/debugger/configdb/Boards/ARM/Cortex-A8_RTSM/linux-pentium
-   PYTHON_PATH=/pkg/qct/software/python/2.6.6/bin
-   MAKE_PATH=/pkg/gnu/make/3.81/bin
-   export ARMTOOLS=ARMCT5.01
-   export ARMROOT=/pkg/qct/software/arm/RVDS/5.01bld94
-   export ARMLIB=$ARMROOT/lib
-   export ARMINCLUDE=$ARMROOT/include
-   export ARMINC=$ARMINCLUDE
-#   export ARMCONF=$ARMROOT/sw/Debugger/configdb/Boards/ARM/Cortex-A8_RTSM/linux-pentium
-#   export ARMDLL=$ARMROOT/sw/Debugger/configdb/Boards/ARM/Cortex-A8_RTSM/linux-pentium
-   export ARMBIN=$ARMROOT/bin64
+#---------------------------------------------set ARM6 version--------------------------------------------------------------------------

-   # PYTHONBIN specifies version that will be added to PATH
-   if [ -z ${PYTHONBIN} ]; then
-      # Set default version for legacy builds
-      PYTHONBIN=${PYTHON_PATH}
-   fi
+source /opt/Qualcomm/setenv_qcom.sh
+export ARMTOOLS=ARMCT6

-   export PATH=$MAKE_PATH:$PYTHONBIN:$ARM_COMPILER_PATH:$PATH
-   export ARMHOME=$ARMROOT
-   export_armlmd_license

+
+
+  #-----------------------------------------------------------------------------------------------------------------------------------------
 fi

 #==============================================================================

编译MPSS

cd modem_proc/build/ms
./build.sh 8909.gen.prod -k //文档里有三个选项,三个都试下,不然后面打包nonhlos.bin会失败,因为content.xml对应的文件没有,即根据content.xml查找对应的路径


 <file_path>modem_proc/build/ms/bin/8909.gen.prodfile_path>

修改

Index: modem_proc/build/ms/build.sh
===================================================================
--- modem_proc/build/ms/build.sh        (revision 73)
+++ modem_proc/build/ms/build.sh        (revision 74)
@@ -25,6 +25,54 @@
 source ./setenv.sh
 fi

+source  /opt/Qualcomm/setenv_qcom.sh
+export HEXAGON_RTOS_RELEASE=6.4.04
+export ARMTOOLS=RVCT221
+export HEXAGON_ROOT=/opt/Qualcomm/HEXAGON_Tools 
+# export HEXAGON_ROOT=/root/Qualcomm/HEXAGON_Tools
+#export PATH=$HEXAGON_ROOT:$HEXAGON_ROOT/6.4.06/bin:$PATH
+# export ARMTOOLS=RCVT221
+#!/bin/bash
+# --------   ---     ---------------------------------------------------------
+# 4/26/17    sy      Initial creation
+# ==========================================================================
+
+export BUILDSPEC=KLOCWORK
+
+# Set up common path
+export PYTHON_PATH=/usr/bin
+export MAKE_PATH=/usr/bin
+
+# PYTHONBIN specifies version that will be added to PATH
+if [ -z ${PYTHONBIN}  ]; then
+       # Set default version for legacy builds
+          PYTHONBIN=${PYTHON_PATH}
+fi
+      export ARMTOOLS=RVCT41      
+      export ARMROOT=/opt/Qualcomm/ARM5.01bld94    
+      export ARMLIB=$ARMROOT/lib
+      export ARMINCLUDE=$ARMROOT/include
+      export ARMINC=$ARMINCLUDE
+      export ARMBIN=$ARMROOT/bin
+      export ARMHOME=$ARMROOT
+      export SCONS_OVERRIDE_NUM_JOBS=8
+      # Set up LLVM path
+      export LLVMTOOLS=LLVM
+      export LLVMROOT=/opt/Qualcomm/LLVMROOT
+      export LLVMBIN=$LLVMROOT/bin
+      export LLVMLIB=$LLVMROOT/lib/clang/3.8.4/lib/linux
+      export MUSLPATH=$LLVMROOT/tools/lib64
+      export MUSL32PATH=$LLVMROOT/tools/lib32
+      export LLVMINC=$MUSLPATH/include
+      export LLVM32INC=$MUSL32PATH/include
+      export LLVMTOOLPATH=$LLVMROOT/tools/bin
+      export GNUROOT=/opt/Qualcomm/GNU/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu
+      export GNUARM7=/opt/Qualcomm/GNU/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux
+      export "ARMCC5_ASMOPT=--licretry --diag_suppress=9931,9933"
+      export "ARMCC5_CCOPT=--licretry --diag_suppress=9931,9933"
+      export "ARMCC5_FROMELFOPT=--licretry --diag_suppress=9931,9933"
+      export "ARMCC5_LINKOPT=--licretry --diag_suppress=9931,9933"
+      export PATH=$MAKE_PATH:$PYTHON_PATH:$ARM_COMPILER_PATH:$HEXAGON_ROOT:$HEXAGON_ROOT/6.4.06/gnu/bin:$PATH
 # Call the main build command
 python build_variant.py $*
 build_result=$?

这是需要制作分区表
amss_8909/common/build/partition.xml
这里将sec去掉,不然烧录后起不来,除非做sec功能

make rawprogram0.xml patch0.xml

boot_images/core/storage/tools/ptool/ptool.py -x partition.xml
生成
gpt_backup0.bin
gpt_both0.bin
gpt_main0.bin
zeros_1sector.bin
patch0.xml
rawprogram0.xml
将/common/build$ 下的 *.bin rawprogram0.xml patch0.xml 拷贝到android 对应的out目录out/target/product/msm8909/下,

编译 nonhlos.bin

cd ./common/build/
python update_common_info.py –nonhlos

你可能感兴趣的:(开发工具环境,android)