未完,待续....

一、问题描述

我们项目在开发智能音箱的过程中分别采购了 ROC-RK3308-CC 和 Amlogic 420 开发板,这两块开发板默认情况下执行 hciconfig 均无法枚举出开发板中的蓝牙设备信息。
  • ROC-RK3308-CC 使用正基生产的 AP6236 芯片,该芯片集成了蓝牙和WIFI功能
  • Amlogic 420 使用正基生产的 AP6356S 芯片,该芯片集成了蓝牙和WIFI功能

二、解决流程

  1. 确认蓝牙设备是否被禁用
  2. 确保蓝牙设备已打开
  3. 查询串口名称及波特率
  4. 查找蓝牙固件
  5. 加载蓝牙固件
  6. 验证蓝牙状态

三、工具介绍

  1. rfkill
  2. stty
  3. hciconfig
  4. brcm_patchram_plus

四、解决 ROC-RK3308-CC 开发板

五、解决 Amlogic 420 开发板

  • 确认蓝牙设备是否被禁用

    • busybox 中勾选 'rfkill' 组件并重新编译烧制镜像
    • 确认蓝牙设备是否已处于 'blocked' 状态

      # 查看无线设备数量# ls /sys/class/rfkillrfkill0  rfkill1  rfkill2# 查看无线设备状态/sys/class/rfkill # rfkill list0: bt-dev: Bluetooth    Soft blocked: no    Hard blocked: no1: phy0: Wireless LAN    Soft blocked: no    Hard blocked: no2: brcmfmac-wifi: Wireless LAN    Soft blocked: no    Hard blocked: no
  • 确保蓝牙设备已打开

    • 如果蓝牙设备 Soft blocked: yes 执行下列操作
    • 蓝牙设备上电

      # 执行后再次执行 rfkill list 查看是否 Soft blocked: noecho 1 > /sys/class/rfkill/rfkill0/state
  • 查询串口名称及波特率
  • 查找蓝牙固件
  • 加载蓝牙固件
  • 验证蓝牙状态