日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

基于MT6752/32平台 Android L版本驱动移植步骤

發(fā)布時(shí)間:2025/4/16 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于MT6752/32平台 Android L版本驱动移植步骤 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

基于MT6752/32平臺(tái) Android L版本驅(qū)動(dòng)移植步驟

????????????? 根據(jù)MK官網(wǎng)所述,在Android L 版本上Turnkey ABS 架構(gòu)將會(huì)phase out,而Mediatek Turnkey架構(gòu)將會(huì)全面轉(zhuǎn)向Turnkey AOSP架構(gòu)。本博文將會(huì)大致描述下如何將ABS架構(gòu)下KK版本的驅(qū)動(dòng)如何移植到AOSP架構(gòu)的android L版本上。

1.1 Turnkey ABS與AOSP簡(jiǎn)介

????? Turnkey ABS架構(gòu)是MTK設(shè)計(jì)的架構(gòu),深度客制化的編譯系統(tǒng),統(tǒng)一的配置文件和全局配置。mediatek將改動(dòng)部分集中管理。而Turnkey AOSP架構(gòu)采用Google標(biāo)準(zhǔn)架構(gòu)(Android Open Source Project),將preloader、lk、kernel、android獨(dú)立維護(hù)和配置,在標(biāo)準(zhǔn)AOSP架構(gòu)上做了客制化,并且采用分開(kāi)維護(hù)的方式。兩者的差別大致可以用下圖表示:

?

? 由于Turnkey ABS架構(gòu)是MTK深度客制化的系統(tǒng),與google標(biāo)準(zhǔn)AOSP相聚甚遠(yuǎn),不符合標(biāo)準(zhǔn)的AOSP精神;且各個(gè)部分相互引用,耦合性比較高,無(wú)法獨(dú)立編譯和維護(hù),內(nèi)部開(kāi)發(fā)周期較長(zhǎng);同時(shí)kernel部分并非獨(dú)立維護(hù)的,而是分散在codebase的多個(gè)目錄,不易將kernel部分開(kāi)源出去,開(kāi)源領(lǐng)域大部分的應(yīng)用都是針對(duì)標(biāo)準(zhǔn)AOSP開(kāi)發(fā)的,不容易整合。而Turnkey AOSP依然是Turnkey,但保留了MTK得各個(gè)Feature,各個(gè)模塊獨(dú)立維護(hù)和編譯。相對(duì)ABS架構(gòu)而言,AOSP架構(gòu)的主要變化如下:Android采用標(biāo)準(zhǔn)AOSP編譯方式,kernel編譯方式保持與原生一致;preloader、lk獨(dú)立編譯,文件路徑各模塊完全分開(kāi),mtk改動(dòng)的分別嵌入到各個(gè)部分;大部分driver架構(gòu)都沒(méi)變,以前的driver依舊可用,kernel部分逐漸進(jìn)行標(biāo)準(zhǔn)化,采用標(biāo)準(zhǔn)api等等...

? MTK官網(wǎng)上有關(guān)于新架構(gòu)的相關(guān)介紹資料以及基于mt6572/6582的driver all in one。而在Android L版本上有相當(dāng)一部分文件的放置路徑有很大變化。但是,從移植的過(guò)程中來(lái)看,各個(gè)模塊需要配置的文件基本沒(méi)變,只是嵌入到新的目錄中去了,這個(gè)只需要我們用grep和find命令找出其所在的位置即可,另外,新的架構(gòu)的一些配置需要使用menuconfig來(lái)操作以及進(jìn)行一些compile的控制,也就是makefile的編寫(xiě)。在一些配置不是很了解的情況下,最好的辦法就是參考系統(tǒng)自帶的同類(lèi)driver的配置方法。


2 Turnkey? AOSP上driver的配置

?? 2.1 Flash配置?

????? 2.1.1 相關(guān)配置文件路徑

??? ? ?? Xls表格里面找到相應(yīng)的Flash型號(hào):

????????????? Xls路徑:alps/bootable/bootloader/preloader/tools/emigen/{platform}/MemoryDeviceList_{platform}.xls

????? ? custom_MemoryDevice.h文件修改為所使用的flash型號(hào):????????

?????????? ? 路徑:alps/bootable/bootloader/preloader/custom/${project} /inc/custom_MemoryDevice.h

???? 2.1.2 Dct配置

??????? Dct tools路徑:alps/bootable/bootloader/preloader/tools/dct/Drvgen.exe

?????? Codegen.dws路徑: alps/bootable/bootloader/preloader/custom/${project}/dct/dct/codegen.dws

???? 2.1.3? Uart Log 輸出控制

??????? 路徑:alps/bootable/bootloader/preloader/custom/${project}/cust_bldr.mk

?? ? 2.1.4 編譯命令

?????? cd bootable/bootloader/preloader

?????? TARGET_PRODUCT = $project ./build.sh 2>&1 | tee pl_build.log? ?? 注:project可以通過(guò):get_build_var TARGET_DEVICE獲得。

?????? 生成的bin文件位于bootable/bootloader/preloader/bin目錄下,并不會(huì)生成在out目錄下。

?????? 也可以使用下面的命令:

??????? make -j12 pl 2>&1 | tee pl_build.log

??????? 其生成的bin文件會(huì)在out目錄下。

???? 3 LCM配置

??????? 3.1 LK部分相關(guān)文件目錄

??????????? 3.1.1 驅(qū)動(dòng)文件路徑:alps/bootable/bootloader/lk/dev/lcm/${lcm_driver_name}/xx.c

???????????? 3.1.2 修改同目錄內(nèi)的makefile加入:

???????????????? obj-y += lcm_driver_name.o

????????????? 3.1.3 修改mt65xx_lcm_list.c文件,添加所用的lcm信息:

???????????????????? 路徑:Alps/bootable/bootloader/lk/dev/lcm/mt65xx_lcm_list.c

?????????????? Ex.? 1:extern LCM_DRIVER xx_lcm_drv;

??? ? ? ? ? ? ? ? ? ?? 2:#ifdefined(xx)

?????? ??? ???? ? ? ? ? ? ? ?? &xx_lcm_drv,

???????????????????????????? #endif

????????????? 3.1.4 配置lk中的lcm driver

???????????????????? 路徑:Alps/bootable/bootloader/lk/project/${project}.mk

????????????????????????? Ex.?

??????????????????????????????? CONFIG_CUSTOM_LK_LCM="xx"

?????????????? 3.1.5 lk 中dws配置

?????????????????? 1:codegen.dwspath:alps/bootable/bootloader/lk/target/${proj}/dct/dct/codegen.dws?

??????????????????? 2:? tools path:alps/bootable/bootloader/lk/scripts/dct/grvgen.exe

??????????????? 3.1.6修改開(kāi)機(jī)logo

?????????????????? 1:開(kāi)機(jī)logo資源文件:

? ? ? ? ? ? ? ? ? ? ? ? ?? 路徑:alps/bootable/bootloader/lk/dev/logo/${項(xiàng)目對(duì)應(yīng)的分辨率圖片}

??????????????????? 2:Alps/bootable/bootloader/lk/project/${project}.mk修改logo:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? BOOT_LOGO := xx

??????????????? 3.1.7 背光配置

???????????????????? 客制化文件路徑:alps/bootable/bootloader/lk/target/${project}/cust_leds.c

???????????????? 3.1.8 lk階段編譯命令

?????????????????????? make –j12 lk 2>&1 | tee lk_build.log

???????????????????? lk.bin和logo.bin生成路徑:out/target/product/${project}

????????????? 3.2 kernel中l(wèi)cm配置

???????????????? 3.2.1加入驅(qū)動(dòng)文件:alps/kernel-xx/drivers/misc/mediatek/lcm/${lcm_driver_name}

???????????????? 3.2.2 修改同目錄下makefile文件:

? ? ? ? ? ? ? ? ? ? ?? ?????? obj-y += lcm_driver_name .o?

????????????????? 3.2.3 修改mt65xx_lcm_list.c

??????????????????? 路徑:alps/kernel-xx/drivers/misc/mediatek/lcm/mt65xx_lcm_list.c??

???????????????????????? Ex:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1: extern LCM_DRIVER xx_lcm_drv;????????

????????????????????????????? 2: #if defined(xx)??????

????????????????????????????????????????? &xx_lcm_drv,

???????????????????????????????????? #endif

??????????????????? 3.2.4 背光配置

?????????????????????? path:alps/kernel-xx/drivers/misc/mediatek/mach/${platform}/${project}/leds/mt65xx/cust_leds.c

???????????????????? 3.2.5 Dct 配置

???????????????????????????? Toolspath: alps/kernel-xx/tools/dct/drvgen.exe

????????????????????????????? Codegen.dwspath:alps/kernel-xx/drivers/misc/mediatek/mach/${platform}/${project}/dct/dct/codegen.dws

?????????????????????? 3.2.6 編譯步驟(通過(guò)menuconfig配置):

???????????????????????????? cd? kernel-xx

? ? ? ? ? ? ? ? ? ? ? ? ? ?? mkdir out

? ? ? ? ? ? ? ? ? ? ? ? ? ?? make O=out${project}_debug_defconfig

???????????????????????????? make O=out menuconfig

???????????????????????? 接下來(lái)的配置需要到menuconfig中完成:

? ? ? ? ? ? ? ? ? ? ? ? ? ?? 1路徑:Device Driver ->Misc Devices->Mediatek Properitary Configgurations ->CUSTOM_KERNEL_LCM?? 此變量配置為我們所需要的lcm driver的名字

????????????????????????????? 2 修改目錄下面的LCM_HEIGHT和LCM_WIDTH為屏的實(shí)際分辨率。
???????????????????????? 復(fù)制kernel-xx/out/.config文件到alps/kernel-xx/arch/arm64/configs/${project}_debug_defconfig
??????????????????? 編譯命令:

?????????????????????? 在根目錄下運(yùn)行:make –j12 kernel bootimage

??? 4 Touch Panel配置

????????? 4.1.1驅(qū)動(dòng)及頭文件路徑:

??????????????? Driver Path:alps/kernel-xx/drivers/input/touchscreen/mediatek/gt9xx/*.c 此目錄下makefile需指定頭文件的位置

??????????????? 頭文件路徑:alps/kernel-xx/drivers/misc/mediatek/mach/${platform}/${project}/touchpanel/gt9xx/*

????????? 4.1.2 kernel dws配置同上。

?????????? 4.1.3makefile和kconfig配置

??????????????? Path:alps/kernel-xx/drivers/input/touchscreen/mediatek/Makefile

????????????????? Ex.

? ? ? ? ? ? ? ? ? ?? ifeq ($(CONFIG_MTK_GT9XX),y)

??????????????????????????? obj-y????? +=? GT9XX/

????????????????????? endif

???????????????? path:alps/kernel-xx/drivers/input/touchscreen/kconfig/

??????????????????? ex.

? ? ? ? ? ? ? ? ? ? ?? config MTK_GT9XX

???? ? ? ? ? ? ? ? ? ? ?? ? bool "GT9XX for Mediatekpackage"

?????????????????????? default n

?????????? 4.1.4 menuconfig配置

??????????????? 1:? cd? kernel-xx

? ? ? ? ? ? ? ? ? ?? mkdir out

? ? ? ? ? ? ? ? ? ?? make O=out${project}_debug_defconfig

???????????????????? make O=out menuconfig

??????????????

?????????????? 2:menuconfig配置path:Device Driver->Inputdevice support->Touchscreens勾選相應(yīng)的touch driver。

????????? 4.1.5 編譯

????????????? 編譯kernel以及bootimage

??????????? ? ? ? 在根目錄下運(yùn)行: make –j12 kernel bootimage

??????? 5? Camera配置

???????????????? 5.1.1? kernel driver添加

?????????????????? Path:alps/kernel-xx/drivers/misc/mediatek/imgsensor/src/mt6752/<camera_driver_name>,同時(shí)需要更改同目錄下makefile文件

??????????????? 5.1.2 kernel中添加設(shè)備

????????????????????? Path:alps/kernel-xx/drivers/misc/mediatek/imgsensor/src/${plat}/kd_sensorlist.h

???????????????? 5.1.3 Hal中添加設(shè)備

??????????????????? Path:alps/vendor/mediatek/proprietary/custom/${plat}/hal/imgsensor/<camera_hal_name>

???????????????? 5.1.4 修改sensorlist.cpp

???????????????????? Path:alps/vendor/mediatek/proprietary/custom/${plat}/hal/imgsensor_src/sensorlist.cpp

????????????????? 5.1.5 添加設(shè)備id

????????????????????? path:alps/kernel-xx/drivers/misc/mediatek/imgsensor/inc/kd_imgsensor.h

?????????????????? 5.1.6 配置上電文件

???????????????????????? path:alps/kernel-x/drivers/misc/mediatek/mach/${plat}/${proj}/camera/camera/kd_camera_hw.c

????????????????? 5.1.7 menuconfig配置:

????????????????????????? Path:Device Driver->Misc devices->Mediatek PropeiataryConfiguration中配置為所使用的camera,并將相應(yīng)的.config文件拷貝為${proj}_debug_defconfig.

?????????????????? 5.1.8? ProjectConfig.mk配置:

????????????????????????? Path:alps/device/${comp}/${proj}/ProjectConfig.mk

????????????????????????????????? CUSTOM_HAL_IMGSENSOR = s5k3h7yx_mipi_raw ov5648_mipi_raw

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? CUSTOM_HAL_MAIN_IMGSENSOR= s5k3h7yx_mipi_raw

???? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? CUSTOM_KERNEL_IMGSENSOR = s5k3h7yx_mipi_rawov5648_mipi_raw

????????????????????????????????? CUSTOM_KERNEL_MAIN_IMGSENSOR= s5k3h7yx_mipi_raw

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? CUSTOM_HAL_SUB_IMGSENSOR =ov5648_mipi_raw

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?? CUSTOM_KERNEL_SUB_IMGSENSOR = ov5648_mipi_raw

?????????????????? 5.1.9 編譯

????????????????????????? make -j12 2>&1 | tee build.log

????????? 6 AF 配置

????????????? 6.1.1 添加AF Driver文件

????????????????? Path:alps/kernel-xx/drivers/misc/mediatek/lens/${platform}/<af_driver_name>/<af_driver_name>.c,同時(shí)修改同目錄下makefile文件。

?????????????? 6.1.2 頭文件

????????????????? path:alps/vendor/mediatek/proprietary/custom/${plat}/kernel/lens/inc/<af_driver>.h

???????????? 6.1.3 AF Hal層文件

?????????????????? Path:alps/vendor/mediatek/proprietary/custom/${plat}/hal/lens/<lens_floder>/<len_para>.cpp

????????????????? Id定義 Path:alps/vendor/mediatek/proprietary/custom/${plat}/hal/inc/camera_custom_lens.h

????????? ?? 6.1.4 修改 lenslist.cpp???????

???????????????? Path:alps/vendor/mediatek/proprietary/custom/${plat}/hal/lens/src/lenslist.cpp

???????????? 6.1.5 修改設(shè)備權(quán)限

????????????????? Path:alps/device/${vendor}/${project}/init.project.rc???

????????????????????? Ex:

?????????????????????????? chmod 0660/dev/BU6429AF

?????????????????????????? chown systemcamera /dev/BU6429AF

???????????? 6.1.6 menuconfig中配置上所選af

??????? 7 Flashlight? 配置 ??

? ? ? ? ? ? ?? 7.1.1? Driver Path:alps/kernel-xx/drivers/misc/mediatek/flashlight/src/${plat}/constant_flashlight/leds_strobe.c

?????????????? 7.1.2? ProjetConfig.mk修改

?????????????????????? Path:alps/mediatek/config/${proj}/ProjectConfig.mk

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? CUSTOM_KERNEL_FLASHLIGHT=constant_flashlight

???????????????????????????????????? CUSTOM_HAL_FLASHLIGHT=dummy_flashlight


?????? 8 Sendor配置,以距離(光感)感應(yīng)為例:

??????????? 8.1.1 Driver相關(guān)

?????????????? 頭文件 path:alps/kernel-xx/drivers/misc/mediatek/mach/${plat}/${proj}/alsps/xxx/*,需修改makefile控制編譯。

??????????????? driver path:alps/kernel-xx/drivers/misc/mediatek/alsps/xxx/*,需修改makefile

?????????? 8.1.2添加控制開(kāi)關(guān)到menuconfig

????????????? ?Kconfig修改path:alps/kernrl-xx/drivers/misc/mediatek/kconfig.drivers

??????????????? 添加所用sensor:

?????????????????? Ex:

? ? ? ? ? ? ? ? ? ? configMTK_AP3216X

???? ? ? ? ? ? ? ? ? ? ? ? ? bool"AP3216X for MediaTek package"

??? ? ? ? ? ? ? ? ? defaultn

??????????????? 修改makefile文件,添加編譯控制條件,Path:alps/kernel-xx/drivers/misc/mediatek/alsps/makefile

????????????????? Ex.

??? ? ? ? ? ? ? ? ? ? ifeq($(CONFIG_MTK_AP3216X),y)

???????????????????????? obj-y????? +=? ap3216x/

????????????????????? endif ?????

???????????? 接下來(lái)需用menuconfig勾選自己的sensor.

??????????? 8.1.3 配置dws中相關(guān)的中斷腳,觸發(fā)方式等。

????????? 9 Sound 配置

????????????? 9.1.1外部功放配置位置:

????????????????? Path:alps/vendor/mediatek/proprietary/custom/${proj}/hal/audioflinger/audio/audio_custom_exp.h

????????????????????? Ex.

? ? ? ? ? ? ? ? ? ? ? ? ? #define USING_EXTAMP_HP

??????????????? 9.1.2 使能speaker

? ? ? ? ? ? ? ? ? ? ? ? Path:alps/kernel-xx/sound/soc/mediatek/mt_soc_audio_v2/mt_soc_codec_63xx.c

???????????? ? 9.1.3 menuconfig配置:

? ? ? ? ? ? ? ? ? ? ?? Path:Device driver->sound card support->advancedlinux sound architecture->alsa for soc audio support/

總結(jié)

以上是生活随笔為你收集整理的基于MT6752/32平台 Android L版本驱动移植步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩人妻一区二区三区蜜桃视频 | 妺妺窝人体色WWW精品 | 婷婷激情网站 | 奇米网7777| 国产精品熟女久久久久久 | 国产普通话bbwbbwbbw | 日本午夜网 | 女性毛片 | 黄色av网址在线观看 | 丰满少妇xbxb毛片日本 | 寂寞人妻瑜伽被教练日 | 三上悠亚激情av一区二区三区 | 性一交一乱一伧国产女士spa | 亚洲精品无人区 | 久久久久人妻一道无码AV | 中文字幕资源在线 | 小泽玛利亚一区二区三区 | 久久久久亚洲AV成人无码国产 | 欧美日韩一级二级三级 | 亚洲激情网| a级片免费观看 | 欧美一区二区三区婷婷月色 | 男人的av | 男人av的天堂 | 春色影视 | 三级小说视频 | 91在线网站 | 亚洲综合网av | 久久久久成人精品无码 | 干爹你真棒插曲mv在线观看 | 青草视频在线播放 | 各处沟厕大尺度偷拍女厕嘘嘘 | 性猛交富婆╳xxx乱大交麻豆 | 国产伦精品一区二区免费 | 久久免费精品视频 | 好吊一区二区三区视频 | 九色91视频| 香蕉伊人 | 99精品人妻少妇一区二区 | 日本少妇bbwbbw精品 | 亚洲伊人成人网 | 成年女人免费视频 | 亚洲欧美高清 | 国产男女视频在线观看 | 天天综合网在线观看 | 无码国产精品高潮久久99 | 日韩精品视频在线播放 | 99久久婷婷国产综合精品电影 | 亚洲欧美精选 | 少妇被狂c下部羞羞漫画 | 女同一区二区三区 | 男人天堂手机在线 | 国产福利片在线观看 | 99久久久久久 | 欧美性大战xxxxx久久久 | 性色av一区 | 国产精品三区四区 | 国产黄色片免费 | v片在线看 | 日本在线高清视频 | 日本三级免费网站 | 欧美日韩免费一区二区三区 | 亚洲图片 自拍偷拍 | 免费国产高清 | 欧美拍拍| 天天操天天操天天操天天 | 欧美激情免费看 | 久久频| 日韩中文字幕免费在线观看 | 日本三级2019| 精品国偷自产国产一区 | 国产日产精品一区二区 | 亚洲国产午夜 | 日本熟女一区二区 | 精品无码一区二区三区 | 欧美国产片 | 青青草视频在线看 | 中国毛片基地 | 精品视频在线免费看 | 国产18禁黄网站免费观看 | 男人天堂你懂的 | 亚洲精品国产电影 | 岛国一区 | 91精品国产综合久久久蜜臀粉嫩 | 成年人晚上看的视频 | 成人动漫在线播放 | 怡红院成人影院 | 国产一区不卡 | 激情综合激情五月 | 春色av| 亚洲av网址在线 | 96精品 | 午夜香蕉| 天天色综| 亚洲免费在线播放 | 国产精品100| 国精品人妻无码一区二区三区喝尿 | 天堂中文字幕免费一区 | 国产又黄又猛又爽 |