蓝牙功能使能失败问题分析报告
·
1 关键字
OpenHarmony3.2 Beta3;蓝牙;使能;vendor;芯片适配;
2 问题描述
2.1 运行环境
-
系统版本: OpenHarmony3.2-Beta3 (以该版本为基线)
-
应用软件:蓝牙适配so库、展锐的蓝牙开源库、系统自带bluetooth应用
2.2 问题现象:
使能设备蓝牙功能失败。
2.3 测试步骤:
-
OpenHarmony3.2-Beta3为基线编译蓝牙适配so库以及展锐蓝牙开源库加载到系统。
-
使能蓝牙功能。
3 问题原因
使能蓝牙设备,在host向controller下发BT_OP_HCI_CHANNEL_OPEN命令时,调用底层芯片库BT_VND_OP_USERIAL_OPEN的op函数返回失败。底层芯片库返回失败的原因是/dev/ttyBT0设备为root权限,使用open函数打开该设备,因权限问题导致失败。
4 解决方案
-
修改/dev/ttyBT0设备的用户及群组.
/dev/ttyBT0是用于HCI交互的设备文件,在系统启动文件//device/board/XXXXX/cfg/init.fhsmart100.cfg中,修改设备文件的用户及所属群组为blue_host。因为底层芯片库是运行在blue_host进程中,该进程所在的用户及群组就是blue_host,因此把/dev/ttyBT0设备文件修改为相同的用户及群组就能够成功打开该设备。
5 定位过程
通过hilog信息发现底层芯片库在打开设备文件/dev/ttyBT0时返回失败。
6 知识分享
此问题是蓝牙适配中的底层芯片的问题,在进行定位时需要为底层芯片库适配hilog,这样问题发生时就能够快速定位问题原因。
更多推荐



所有评论(0)