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

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

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

​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 set
CONFIG_USB_DWC3_DUAL_ROLE=y

#
# Platform Glue Driver Support
#
CONFIG_USB_DWC3_OF_SIMPLE=y
CONFIG_USB_DWC3_QCOM=y #选中高通usb驱动
...
CONFIG_USB_LIBCOMPOSITE=y
CONFIG_USB_F_FS=y #HDC连接通过configfs进行实现
CONFIG_USB_CONFIGFS=y
...
CONFIG_USB_CONFIGFS_F_FS=y

同时保证【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

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

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

ls /sys/class/udc/

#创作者激励#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"
]

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

一个简单的演示视频:

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

2、屏幕背光调节

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

ls /sys/class/backlight/backlight/


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

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

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

#创作者激励#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​

责任编辑:jianghua 来源: 51CTO 开源基础软件社区
相关推荐

2023-02-07 15:52:50

2023-02-08 15:46:50

设备移植第三方内核适配

2023-02-06 16:21:48

2023-03-06 16:11:00

设备移植开源GPU驱动

2023-03-10 09:47:45

OpenGL渲染设备移植

2023-02-14 17:06:31

设备移植打包刷机

2023-02-28 15:40:16

鸿蒙CPU渲染

2023-03-23 16:02:07

树莓派4GPU调试

2023-02-07 15:43:13

三方库适配鸿蒙

2023-05-05 16:05:26

设备内核移植鸿蒙

2023-05-16 14:49:25

鸿蒙内核移植

2022-03-17 15:55:19

播放数字音频解码鸿蒙

2022-04-15 14:31:02

鸿蒙操作系统

2022-12-19 11:41:02

灵动岛苹果

2022-02-15 14:45:14

OpenHarmo系统鸿蒙

2021-09-08 15:23:51

鸿蒙HarmonyOS应用

2023-03-21 18:10:34

USB接口鸿蒙

2022-11-04 14:58:59

应用开发鸿蒙

2022-10-24 14:54:29

LWIP协议鸿蒙

2022-06-21 11:30:22

littleVGL鸿蒙
点赞
收藏

51CTO技术栈公众号