最近研究出了 USB HDC 連接和屏幕背光適配,特此分享給大家。
USB HDC 適配
USB HDC 適配首先要確認(rèn)內(nèi)核的編譯選項(xiàng)中有 USB 控制器的驅(qū)動(dòng)。
以小米 6 舉例,小米 6 采用的 usb 控制器是高通芯片內(nèi)置的,并支持 usb3.0,但是小米配置成只能用 usb2.0 的速度,這里要批判一下小米萬(wàn)年 usb2.0。
回到正題,雖然只能用 usb2.0,但是芯片是 3.0 的所以內(nèi)核選項(xiàng)還是需要選上 3.0 的驅(qū)動(dòng)。
... CONFIG_USB_DWC3=y#選中usb3驅(qū)動(dòng) #CONFIG_USB_DWC3_HOSTisnotset #CONFIG_USB_DWC3_GADGETisnotset CONFIG_USB_DWC3_DUAL_ROLE=y # #PlatformGlueDriverSupport # CONFIG_USB_DWC3_OF_SIMPLE=y CONFIG_USB_DWC3_QCOM=y#選中高通usb驅(qū)動(dòng) ... CONFIG_USB_LIBCOMPOSITE=y CONFIG_USB_F_FS=y#HDC連接通過(guò)configfs進(jìn)行實(shí)現(xiàn) CONFIG_USB_CONFIGFS=y ... CONFIG_USB_CONFIGFS_F_FS=y同時(shí)保證【USB Gadget precomposed configurations】為非選。
# #USBGadgetprecomposedconfigurations # #CONFIG_USB_ZEROisnotset #CONFIG_USB_AUDIOisnotset #CONFIG_USB_ETHisnotset #CONFIG_USB_G_NCMisnotset #CONFIG_USB_GADGETFSisnotset #CONFIG_USB_FUNCTIONFSisnotset #CONFIG_USB_MASS_STORAGEisnotset #CONFIG_USB_G_SERIALisnotset #CONFIG_USB_MIDI_GADGETisnotset #CONFIG_USB_G_PRINTERisnotset #CONFIG_USB_CDC_COMPOSITEisnotset #CONFIG_USB_G_ACM_MSisnotset #CONFIG_USB_G_MULTIisnotset #CONFIG_USB_G_HIDisnotset #CONFIG_USB_G_DBGPisnotset #CONFIG_USB_G_WEBCAMisnotset #CONFIG_USB_RAW_GADGETisnotset #endofUSBGadgetprecomposedconfigurations
到此內(nèi)核部分修改完畢,接下來(lái)還需要修改 init.sagit.usb.cfg 文件,關(guān)鍵在兩個(gè)地方,一個(gè)是序列號(hào),這個(gè)必須是一個(gè)能獲取到值,我之前一直用官方默認(rèn)的寫(xiě)法,系統(tǒng)一直識(shí)別失敗,提示序列號(hào)不正確。
還有一個(gè)就是修改 usb 控制器的名稱,這個(gè)就需要我們?cè)谙盗形恼碌谝黄杏刑岬剑枰崆霸谡_\(yùn)行的系統(tǒng)里面獲取到 usb 控制器的名稱,或者后續(xù)配置 usb 串口啟用控制臺(tái)進(jìn)行獲取也行。
在啟用 usb 串口后,執(zhí)行以下命令獲取 usb 控制器名稱:
ls/sys/class/udc/
獲取到 usb 控制器名稱后修改 init.sagit.usb.cfg 中的 usb 控制器名稱和序列號(hào)獲取方式。
"cmds":[ ... "write/config/usb_gadget/g1/strings/0x409/serialnumber0123456789", ... "setparamsys.usb.controllera800000.usb" ]修改完成之后編譯并燒錄進(jìn)設(shè)備,這樣就能適配 hdc 設(shè)備連接器了,打通 hdc 之后就可以使用 DevEco Studio 進(jìn)行真機(jī)調(diào)試應(yīng)用開(kāi)發(fā)。
屏幕背光調(diào)節(jié)
屏幕背光調(diào)節(jié)適配首先確認(rèn)存在背光節(jié)點(diǎn)信息:
ls/sys/class/backlight/backlight/
然后通過(guò)命令行修改背光亮度值,查看是否有變化:
cd/sys/class/backlight/backlight/ echo1>brightness
確認(rèn)修改亮度可以控制屏幕之后我們需要修改 display 層適配代碼。 修改 drm_connector.cpp 內(nèi)的 GetBrightness 函數(shù):
修改 drm_connector.cpp 內(nèi)的 SetBrightness 函數(shù):
修改完成之后保存,編譯燒錄,小米 6 親測(cè)有效:
最后,我已經(jīng)把 小米 6 和樹(shù)莓派 4 的 vendor,board,soc,kernel 都開(kāi)源了,開(kāi)源倉(cāng)在我創(chuàng)建的 OHOS 移植社區(qū),提供給大家做移植參考。
https://gitee.com/ohos-porting-communities
審核編輯:湯梓紅
-
控制器
+關(guān)注
關(guān)注
112文章
16361瀏覽量
178050 -
usb
+關(guān)注
關(guān)注
60文章
7945瀏覽量
264657 -
小米
+關(guān)注
關(guān)注
70文章
14355瀏覽量
144187 -
hdc
+關(guān)注
關(guān)注
1文章
44瀏覽量
3590 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2352瀏覽量
42858
原文標(biāo)題:小米6鴻蒙移植進(jìn)度更新:已打通HDC
文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論