OpenHarmony富设备移植指南(7.1)HDC与背光适配

小米6采用的usb控制器是高通芯片内置的,并支持usb3.0,但是小米配置成只能用usb2.0的速度
首页 新闻资讯 行业资讯 OpenHarmony富设备移植指南(7.1)HDC与背光适配

b523e4603653b6c867e70377b7f1ce097c5cfa.png

想了解更多关于开源的内容,请访问:

51CTO 开源基础软件社区

https://ost.51cto.com

最近研究出了USB HDC连接和屏幕背光适配,先写个分享一下,另外做一下广告,小米6和树莓派4已经把vendor,board,soc,kernel都开源了,开源仓在我创建的OHOS移植社区:https://gitee.com/ohos-porting-communities,提供给大家做移植参考。

1、USB HDC适配

USB HDC适配首先要确认内核的编译选项中有USB控制器的驱动,以小米6举例。

小米6采用的usb控制器是高通芯片内置的,并支持usb3.0,但是小米配置成只能用usb2.0的速度,这里要批判一下小米万年usb2.0,回到正题,虽然只能用usb2.0,但是芯片是3.0的所以内核选项还是需要选上3.0的驱动。

复制

...CONFIG_USB_DWC3=y                                     #选中usb3驱动# CONFIG_USB_DWC3_HOST is not set# CONFIG_USB_DWC3_GADGET is not setCONFIG_USB_DWC3_DUAL_ROLE=y## Platform Glue Driver Support#CONFIG_USB_DWC3_OF_SIMPLE=yCONFIG_USB_DWC3_QCOM=y                        #选中高通usb驱动...CONFIG_USB_LIBCOMPOSITE=yCONFIG_USB_F_FS=y                                     #HDC连接通过configfs进行实现CONFIG_USB_CONFIGFS=y...CONFIG_USB_CONFIGFS_F_FS=y
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

同时保证【USB Gadget precomposed configurations】为非选。

复制

## USB Gadget precomposed configurations## CONFIG_USB_ZERO is not set# CONFIG_USB_AUDIO is not set# CONFIG_USB_ETH is not set# CONFIG_USB_G_NCM is not set# CONFIG_USB_GADGETFS is not set# CONFIG_USB_FUNCTIONFS is not set# CONFIG_USB_MASS_STORAGE is not set# CONFIG_USB_G_SERIAL is not set# CONFIG_USB_MIDI_GADGET is not set# CONFIG_USB_G_PRINTER is not set# CONFIG_USB_CDC_COMPOSITE is not set# CONFIG_USB_G_ACM_MS is not set# CONFIG_USB_G_MULTI is not set# CONFIG_USB_G_HID is not set# CONFIG_USB_G_DBGP is not set# CONFIG_USB_G_WEBCAM is not set# CONFIG_USB_RAW_GADGET is not set# end of USB Gadget precomposed configurations
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

  • 9.

  • 10.

  • 11.

  • 12.

  • 13.

  • 14.

  • 15.

  • 16.

  • 17.

  • 18.

  • 19.

  • 20.

  • 21.

到此内核部分修改完毕,接下来还需要修改init.sagit.usb.cfg文件,关键在两个地方,一个是序列号,这个必须是一个能获取到值,我之前一直用官方默认的写法,系统一直识别失败,提示序列号不正确,还有一个就是修改usb控制器的名称,这个就需要我们在系列文章第一篇中有提到,需要提前在正常运行的系统里面获取到usb控制器的名称,或者后续配置usb串口启用控制台进行获取也行。

在启用usb串口后,执行以下命令获取usb控制器名称。

复制

ls /sys/class/udc/
  • 1.


#创作者激励#OpenHarmony富设备移植指南(7.1)HDC与背光适配-开源基础软件社区


获取到usb控制器名称后修改init.sagit.usb.cfg中的usb控制器名称和序列号获取方式。

复制

"cmds" : [
                ...
                "write /config/usb_gadget/g1/strings/0x409/serialnumber 0123456789",
                ...
                "setparam sys.usb.controller a800000.usb"
            ]
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

修改完成之后编译并烧录进设备,这样就能适配hdc设备连接器了,打通hdc之后就可以使用DevEco Studio进行真机调试应用开发。

一个简单的演示视频:

小米6移植OpenHarmony进度更新,已打通HDC,APP开发简单演示

2、屏幕背光调节

屏幕背光调节适配首先确认存在背光节点信息

复制

ls /sys/class/backlight/backlight/
  • 1.



#创作者激励#OpenHarmony富设备移植指南(7.1)HDC与背光适配-开源基础软件社区


然后通过命令行修改背光亮度值,查看是否有变化。

复制

cd /sys/class/backlight/backlight/
echo 1 > brightness
  • 1.

  • 2.


#创作者激励#OpenHarmony富设备移植指南(7.1)HDC与背光适配-开源基础软件社区


确认修改亮度可以控制屏幕之后我们需要修改display层适配代码:

修改drm_connector.cpp内的GetBrightness函数。


#创作者激励#OpenHarmony富设备移植指南(7.1)HDC与背光适配-开源基础软件社区


修改drm_connector.cpp内的SetBrightness函数


#创作者激励#OpenHarmony富设备移植指南(7.1)HDC与背光适配-开源基础软件社区


修改完成之后保存,编译烧录,小米6亲测有效。


#创作者激励#OpenHarmony富设备移植指南(7.1)HDC与背光适配-开源基础软件社区



#创作者激励#OpenHarmony富设备移植指南(7.1)HDC与背光适配-开源基础软件社区


想了解更多关于开源的内容,请访问:

51CTO 开源基础软件社区

https://ost.51cto.com

26    2023-04-06 09:10:13    设备移植 鸿蒙