[Android 6.0][MTK 6737]MTKコンパイル環境構築
12703 ワード
Hardware: MTK6737 Android: 6.0(API 23) Kernel: Linux 3.4.67 コンパイル環境のインストールとコンパイル インストールコンパイル環境依存パッケージ bootloaderとkernelコンパイル Androidコンパイル パッケージ
ハードウェアパラメータ MTK6737 Check SDK Version
コンパイルで発生した問題 clang問題 STATIC_LIBRARIES SHARED_LIBRARIESタイプの問題
焼録
コンパイル環境のインストールとコンパイル
コンパイル環境依存パッケージのインストール
2>ubuntu < 12.04
3>ubuntu = 14.04
インストールに問題はありません
ubuntu = 16.04
エラーは以下のように位置決めできません:libwxgtk 2.8-dev mingw32 lib32bz2-1.0 lib32readline-gplv2-dev
Ubuntu 16.04中libwxgtk 2.8-devはlibwxgtk 3にアップグレードする.0-dev; lib 32 bz 2-1.0はlibbz 2-1.0:i 386にアップグレードされました.lib 32 readline-gplv 2-devはlib 32 readline 6-devにアップグレードされました.したがって、
mingw 32は
あとは以下のようにすればよい
bootloaderとkernelコンパイル
フルコンパイル:
私たちのモジュールlunchはbd 6737 mであることがわかりました.35g_b_m 0というプロジェクト
モジュールコンパイル:まずget_を介してbuild_varはプロジェクト名を取得します:
モジュールコンパイル時にpreloader:1に転送できます.個別コンパイル buildスクリプトコンパイル:
lk:
Kernel: 1. 個別コンパイル
kernel-3.18/out/arch/arm 64/boot/Imgeが生成されます.gz-dtb buildスクリプトコンパイル
clean:
Androidコンパイル
梱包する
ハードウェアパラメータ
https://versus.com/en/mediatek-mt6735-vs-mediatek-mt6737
MTK6737
4 x 1.3GHz 28nm LTE supported GPU: MailT720
Check SDK Version
コンパイル中に発生した問題
clang問題
解決方法:コード
STATIC_LIBRARIES SHARED_LIBRARIESタイプの問題
例えば次のような
コンパイル環境依存パッケージのインストールに必要なパッケージを参照してください.
レコード枚
Linuxでの書き込みツールはSP_Flash_Tool_v5.1644_Linux.zipの使用方法:http://spflashtools.com/linux/sp-flash-tool-v5-1644-linux
コンパイル環境のインストールとコンパイル
コンパイル環境依存パッケージのインストール
2>ubuntu < 12.04
sudo apt-get install git-core gnupg flex bison ccache gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev gcc-4.4 g++-4.4 g++-4.4-multilib g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc wine
3>ubuntu = 14.04
sudo apt-get install git-core gnupg flex bison ccache gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev g++-multilib g++-4.8-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc libc6-dev-i386 lib32z1 lib32ncurses5 lib32bz2-1.0 lib32readline-gplv2-dev wine
インストールに問題はありません
ubuntu = 16.04
sudo apt-get install git-core gnupg flex bison ccache gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z1-dev libgl1-mesa-dev g++-multilib g++-4.8-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc libc6-dev-i386 lib32z1 lib32ncurses5 lib32bz2-1.0 lib32readline-gplv2-dev wine
エラーは以下のように位置決めできません:libwxgtk 2.8-dev mingw32 lib32bz2-1.0 lib32readline-gplv2-dev
Ubuntu 16.04中libwxgtk 2.8-devはlibwxgtk 3にアップグレードする.0-dev; lib 32 bz 2-1.0はlibbz 2-1.0:i 386にアップグレードされました.lib 32 readline-gplv 2-devはlib 32 readline 6-devにアップグレードされました.したがって、
sudo apt install libwxgtk3.0-dev lib32readline6-dev libbz2-1.0:i386
mingw 32は
sudo vi /etc/apt/sources.list
にソースを追加する必要があります.deb http://us.archive.ubuntu.com/ubuntu trusty main universe
あとは以下のようにすればよい
sudo apt update
sudo apt install mingw32
bootloaderとkernelコンパイル
フルコンパイル:
cd runyee/scripts/
./auto.sh IoT_bd6737m_35g_b_m0_ry_smt_hd720_pcb_v1 v00 eng
私たちのモジュールlunchはbd 6737 mであることがわかりました.35g_b_m 0というプロジェクト
モジュールコンパイル:まずget_を介してbuild_varはプロジェクト名を取得します:
get_build_var TARGET_DEVICE
op_project_name
get_build_var TARGET_BUILD_VARIANT
eng
モジュールコンパイル時にpreloader:1に転送できます.個別コンパイル
make -j4 pl 2>&1 | tee pl_build.log
bootable/bootloader/preloader/bin
が生成されますcd bootable/bootloader/preloader
TARGET_PRODUCT=$op_project_name ./build.sh 2>&1 | tee preloader_build.log
lk:
make -j4 lk 2>&1 | tee lk_build.log
bootable/bootloader/lk/build-xx
が生成されますKernel: 1. 個別コンパイル
cd kernel-3.18
mkdir out
make -j4 O=out 2>&1 | tee kernel_build.log
kernel-3.18/out/arch/arm 64/boot/Imgeが生成されます.gz-dtb
make -j8 n k && make -j8 r bootimage
clean:
# Clean ALL
make clean
# Clean PL
make clean-pl
# Clean lk
make clean-lk
# Clean kernel
make clean-kernel
Androidコンパイル
# 1.
source build/envsetup.sh
# 2.
lunch full_bd6737m_35g_b_m0-eng
# 3. MTK
source mbldev.sh
# 4.
make -j4 2 > &1 | tee mtk_build.log
梱包する
# pack boot image
make -j4 bootimage
# pack system image
make -j4 systemimage
# pack system image system image
# ( , build snod )
make -j4 snod
# pack ota image
make -j4 otapackage
ハードウェアパラメータ
https://versus.com/en/mediatek-mt6735-vs-mediatek-mt6737
MTK6737
4 x 1.3GHz 28nm LTE supported GPU: MailT720
Check SDK Version
vi build/core/version_defaults.mk
PLATFORM_VERSION := 6.0
PLATFORM_SDK_VERSION := 23 #Android6.0
vi kernel/Makefile
VERSION = 3
PATCHLEVEL = 18
SUBLEVEL = 19
コンパイル中に発生した問題
clang問題
clang: error: linker command failed with exit code 1 (use -v to see invocation)
build/core/host_shared_library_internal.mk:51: recipe for target 'out/host/linux-x86/obj/lib/libart.so' f
ailed
make: *** [out/host/linux-x86/obj/lib/libart.so] Error 1
解決方法:コード
art/build/Android.common_build.mk
# By default, host builds use clang for better warnings.
-- ART_HOST_CLANG := true
++ ART_HOST_CLANG := false
STATIC_LIBRARIES SHARED_LIBRARIESタイプの問題
例えば次のような
make: *** No rule to make target 'out/target/product/bd6737m_35g_b_m0/obj/STATIC_LIBRARIES/libcam.halmemory_intermediates/export_includes', needed by 'out/target/product/bd6737m_35g_b_m0/obj/SHARED_LIBRARIES/libcam_platform_intermediates/import_includes'。 。
make: *** ....
target thumb C++: libcam.device3.base <= vendor/mediatek/proprietary/hardware/mtkcam/legacy/v3/device/Cam3DeviceFactory.cpp
make: *** No rule to make target 'out/target/product/bd6737m_35g_b_m0/obj/STATIC_LIBRARIES/libcam.halmemory_intermediates/export_includes', needed by 'out/target/product/bd6737m_35g_b_m0/obj/SHARED_LIBRARIES/libcam_platform_intermediates/import_includes'。 。
make: *** ....
target StaticLib: libcam.device3.base (out/target/product/bd6737m_35g_b_m0/obj/STATIC_LIBRARIES/libcam.device3.base_intermediates/libcam.device3.base.a)
コンパイル環境依存パッケージのインストールに必要なパッケージを参照してください.
レコード枚
Linuxでの書き込みツールはSP_Flash_Tool_v5.1644_Linux.zipの使用方法:http://spflashtools.com/linux/sp-flash-tool-v5-1644-linux