1 关键字

OpenHarmony3.2 Beta3;蓝牙;使能;vendor;芯片适配;

2 问题描述

2.1 运行环境

  • 系统版本: OpenHarmony3.2-Beta3 (以该版本为基线)

  • 应用软件:蓝牙适配so库、展锐的蓝牙开源库、系统自带bluetooth应用

2.2 问题现象:

使能设备蓝牙功能失败。

2.3 测试步骤:

  1. OpenHarmony3.2-Beta3为基线编译蓝牙适配so库以及展锐蓝牙开源库加载到系统。

  2. 使能蓝牙功能。

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,这样问题发生时就能够快速定位问题原因。

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐