mtk編譯
㈠ MTK 如何配置內核編譯選項
使用make menuconfig ,來配置kernel的選項
a、首先通過下面的方式進入menuconfig, 在project 下輸入:
cd kernel
TARGET_PRODUCT=<project> make menuconfig
在彈出的窗口後,enter < / > 進入查找窗口,輸入要查找的kernel feature名稱
查到該feature後,選擇開啟或者關閉該feature, 保存,退出menuconfig
b、 完成上述配置後,將.config復制到mediatek/config/$project/autoconfig/kconfig/目錄下並重命名為project
然後進行編譯kernel
㈡ mtk ubuntu 怎麼編譯modem
方法/步驟
1
將modem源碼包放到要編譯的路徑下,解壓源碼包,可以得到源碼目錄,可以看到有很多的文件和文件夾,對其中的一些重要的文件分析。
得到的源碼目錄結構如下圖所示
2
對make目錄分析,這個目錄是一個比較重要的目錄,因為之後的編譯都會根據這個目錄下的對應工程名來進行編譯
LENTK6753_65C_L1(LWG_DSDS_CMCC).mak
LENTK6753_65C_L1(LTTG_DSDS_CMCC).mak
兩個文件就是手機的打電話和發簡訊功能。
詳細的目錄詳情如下圖所示
3
之後對這兩個功能模塊編譯,產生自己需要的文件,通過./make.sh "工程名" new 命令來編譯對應的工程模塊。
編譯步驟如下所示
4
同樣的方法編譯另一個剩下的功能弄快,詳細的步驟如下所示
5
編譯成功周後,生成的文件將放在下面的目錄下
LENTEK6735M_65C_L_LTTG_LWG_CMCC/build/LENTK6753_65C_L1
這個目錄下就是我們最終要使用的文件了
6
編譯完成之後,兩個工程模塊都成功了,之後的工作就是重命名,將使用下面的命令對生成的文件進行重命名,其中具體的細節根據自己的路徑來做相應的修改,如下所示
7
OK!完畢,這樣就成功編譯了MTK modem模塊了
㈢ 如何編譯 MTK 的模擬器
MTK的emulator是基於MTK平台的codeabse編譯得到用來模擬真機的虛擬Device,以下是具體的操作步驟:
1. Build MTK SDK Packages
-對於mt6572以前的chip,用如下的命令編譯:
./makeMtk banyan_addon
-從mt6572開始的chip,由於mt6572之後CPU開始支持X86架構,其performace會更好,mt6572之後,建議編譯x86的emulator來使用.
./makeMtk banyan_addon_x86
編譯完成後會在out/host/linux-x86/sdk_addon下生成MTK的SDK包,比如mtk_sdk_api_addon-17.1.zip,(其中17是android api level)
2. 解壓mtk_sdk_api_addon_17.1.zip
將解壓後的mtk_sdk_api_addon-17.1整個文件夾放在android原本的sdk的add-ons目錄下。
3. 拷貝emulator相關的執行文件到android sdk tool下:
- 對ICS 4.0之前的版本:
進 入android-sdk-windows\add-ons\banyan_addon_ALPS.GB.FDD.MP.V1_eng\tools 目錄下,將其中的 emulator.exe 或者 emulator(如果使用Linux的SDK的話)復制出來,覆蓋android-sdk-windows\tools下的相應 emulator.exe
- 對ICS 4.0及之後的版本:
將 mtk_sdk_api_addon-15.1\emulator對應文件夾下的emulator,emulator-arm,emulator-x86 這三支文件替換android原本sdk的tools目錄下的emulator,emulator-arm,emulator-x86這三支文件(建議備 份google原始sdk下的emulator,emulator-arm,emulator-x86,以便後面用到Google emulator)。
4. 創建新的AVD
在Target裡面選擇帶有MediaTek標志的,然後啟動這一AVD就可以了
PS:創建AVD時需要同步將SDK的版本升級到相對的android版本,比如JB2對應的android API level 17,則對應SDK的版本也要升級到level 17,否則將在創建AVD的時候將load不出帶MediaTek標志的target
㈣ 如何檢查我的MTK編譯環境是否正確
方法如下:
點擊開始--運行--輸入cmd,點擊確定。
在命令行窗口輸入javac,出現下圖所示:
再次輸入java,出現下圖所示:
最後輸入java -version,出現下圖所示:
如果出現上面的前兩個圖片顯示的內容就說明jdk的環境變數配置是正確的,第三個命令是檢查當前電腦中使用的jdk的版本及位數。
㈤ MTK當修改一些代碼時,使用什麼編譯命令可以
1: ./mk n(r) kernel; ./mk bootimage;當修改build-in 到kernel相關代碼時,要使用此命令,具體文件參考如下:
alps/kernel/
alps/mediatek/platform/mt65xx/kernel/
alps/mediatek/source/kernel/
alps/mediatek/coustom/mt65xx/kernel/
alps/mediatek/coustom/common/kernel/
alps/mediatek/coustom/$porject_name$/kernel
...
ps: 由於./mk bootimag是很長的過程, 如果您沒有修改到ramdisk相關的code, 可以參考以下FAQ加快編譯.
只修改kernel的時候, 快速編譯方法: FAQ05444
2: ./mk n(r) k /mole_path 當修改kernel mole相關代碼時,要使用此命令,具體文件參考如下:
alps/mediatek/platform/mt65xx/kernel/drivers/ccci/
alsp/mediatek/platform/mt65xx/gpu/
......
通常看對應文件夾的Makefile就知道是build in到kernel,還是ko,
obj-m += xxx, 表示build成ko mole,
obj-y += xxx, 表示build in到bootimag.
ps: 要特別注意, 如果你new的時候是user版本, 在使用此命令的時候一定要加上
-oTARGET_BUILD_VARIANT=user, 否則會導致將之前new的結果全部刪除,
3: ./mk n pl 當修改preloader相關代碼時,要使用此命令,具體如下:
alps/mediatek/platform/mt65xx/preloader/
alps/mediatek/source/preloader/
alps/mediatek/coustom/mt65xx/preloader/
alps/mediatek/coustom/common/preloader/
alps/mediatek/coustom/$porject_name$/kernle
......
4: ./mk uboot 當修改uboot相關代碼時,要使用此命令,具體如下:
alps/mediatek/platform/mt65xx/uboot/
alps/mediatek/source/uboot/
alps/bootable/bootloader/uboot/
alps/mediatek/coustom/mt65xx/uboot/
alps/mediatek/coustom/common/buoot/
alps/mediatek/coustom/$porject_name$/uboot/
......
5: ./mk systemimage 當修改system相關代碼時使用此命令,具體文件目錄如下:
alps/frameworks/
alps/packages/
alps/vendor/
alps/hardware/
alps/dalvik/
alsp/external
...........
new完一次後, 如果使用這個命令其實很耗時間, 建議參考6的做法,
6: ./mk mm ./mole_path ; 主要build一些moles, 如lib庫, native 可執行程序, jar庫, jar
apk. 相關文件參考如下:
alps/frameworks/base #可以根據修改的某些文件, 進入更細的目錄去build相關庫.
alps/frameworks/native/libs/binder/ #native目錄下有很多相關的lib庫.
alps/frameworks/native/libs/binder/utils/
alps/external #主要是一些native的二進制可執行文件.
ps: build完後可以找到對應的目標文件直接push到手機, 也可以使用./mk snod直接快速打包新的system.img, 然後download. 可參考如下FAQ:
如何加速./mk snod打包: FAQ10299
7: ./mk recoverimage 當修改recover相關代碼時使用此命令,具體如下:
alps/bootable/recovery/
alps/mediatek/customer/$project_name$/recovery/
......
8: ./mk factoryimage: 當修改factory相關代碼時使用此命令,具體如下:
alps/mediatek/coustom/$project_name$/factory/
alps/mediatek/coustom/common/factory/
alps/mediatek/source/factory/
......
9: ./mk secroimage 當修改secro相關代碼時使用此命令,具體如下:
alps/mediatek/source/secro/
alps/mediatek/coustom/$project_name$/secro/
㈥ mtk平台修改init.rc後如何快速編譯啊
修改init.rc文件後,一般只需要做以下快速編譯即可生成新文件。
./mk bootimage
