一、buildroot config配置文件里面增加下面内容,编译后获得 hciattach hciconfig hcidump hcitool bluetoothctl ,编译可能会遇到error,修改一下就可以了。
BR2_SYSTEM_ENABLE_NLS=y
BR2_PACKAGE_BLUEZ_TOOLS=y
BR2_PACKAGE_BLUEZ5_UTILS=y
BR2_PACKAGE_BLUEZ5_UTILS_CLIENT=y
BR2_PACKAGE_BLUEZ5_UTILS_TOOLS=y
BR2_PACKAGE_BLUEZ5_UTILS_DEPRECATED=y
BR2_PACKAGE_BLUEZ5_UTILS_EXPERIMENTAL=y
BR2_PACKAGE_BLUEZ_ALSA=y
我这里编译会遇到找不到wordexp.h,解决方法是把buildroot-2023.02.6/output/build/bluez5_utils-5.65/android/compat/wordexp.h 复制到编译器tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/arm-rockchip830-linux-uclibcgnueabihf/sysroot/usr/include/wordexp.h
二、蓝牙模块的驱动一般都是ko的形式,加载ko后,使用hciconfig -a命令查看蓝牙设备是否识别到。
三、使用hciconfig devices命令查看设备信息
四、使用hciconfig hci0 up 打开蓝牙。
五、hcitool scan 和 hcitool lescan分别搜索经典蓝牙设备和ble蓝牙设备,搜索到设备基本说明模块可以正常工作了。
六、我们来看一下realtek sdio 蓝牙模块打开蓝牙需要执行的命令,参考bt_realtek_start文件。你会看到会执行bluetoothd ,bluetoothd 是 Linux 系统中的蓝牙守护进程,是 BlueZ 蓝牙协议栈的一部分。它负责管理系统中的蓝牙设备和服务,提供了一组 API 和工具来控制和管理蓝牙功能。
七、蓝牙操作的其他命令
hciconfig hci0 up:打开蓝牙0的开关
hciconfig -a:查看所有的蓝牙设备信息
打开/关闭/重置hci设备:hciconfig hci0 up/down/reset
认证打开/关闭:hciconfig hci0 auth/noauth,直接体现在进行蓝牙连接时,是否输入连接PIN密码,用于PIN配对
查看/改变蓝牙主从状态:hciconfig hci0 lm 、hciconfig hci0 lm slave
查看/设置蓝牙名称:hciconfig hci0 name 、hciconfig hci0 name Donge
开启/关闭广播:hciconfig hci0 leadv/ noleadv
查看支持的链路层状态:hciconfig hci0 lestates
八、参考文章:
WIFI6 2.4G模组 AIC8800DC移植和替换RTL8723 AP6212过程记录-CSDN博客
AIC8800D Wi-Fi6/BT5.0 SoC USB移植手册-一牛网论坛
【RV1106/RV1103】RV1103增加RTL8723BS-CSDN博客
【RV1103/RV1106】使用Buildroot构建文件系统支持Bluetooth--交叉编译Bluez5_rv1106 android-CSDN博客
文章评论