赞
踩
目前主要是基于全志平台Tina Linux系统操作的,模组也都是市场比较常见的,主要是瑞昱科技的8723ds等等,正基Ampak系列的AP6236/6212/6256等等,以及XR829等模组。
驱动一般都很少有问题,而且是和wifi共用的,所以这里就不在分析了,有问题留言讨论。
不同的模块型号对应不同的BT固件,一般正基的模块是hcd后缀的,比如AP6236对应的BT固件是BCM43430B0.hcd。XR系列的要注意BT的固件分为20M晶振和40M晶振的,你使用哪个晶振,匹配正确的bt固件即可。固件加载错了,肯定就起不来。RTL8723的BT好像没什么需要特别注意的。
复位:echo 0 > /sys/class/rfkill/rfkill0/state 使能:echo 1 > /sys/class/rfkill/rfkill0/state
RTL平台:
rtk_hciattach -n -s 115200 ttyS1 rtk_h5 & 或者有的模块可能支持H4的接口,那就使用命令:rtk_hciattach -n -s 115200 ttyS1 rtk_h4 &。
Ampak平台:
需要提前编译brcm_patchram_plus工具:
brcm_patchram_plus -d --enable_hci --no2bytes --tosleep=200000 --baudrate 115200 --patchram /lib/firmware/BCM43430B0.hcd /dev/ttyS1 &
XR平台:
对于XR829,使用标准的hciattach工具,对应的HCI初始化命令为:
hciattach -n ttyS1 xradio &
成功后可看到如下类似log,平台不一样log会有差异:
Realtek Bluetooth :Init Process finished after init, before tcflush setting baudrate baudrate set done line discipline set done. set Uart flags done Realtek Bluetooth post process Device setup complete
输入rfkill list查看设备是否被block:
root@TinaLinux:/# rfkill list 0: sunxi-bt: bluetooth Soft blocked: no Hard blocked: no 1: phy0: wlan Soft blocked: no Hard blocked: no 3: hci0: bluetooth Soft blocked: yes Hard blocked: no
如上,如果看到hci0设备被软件block,请运行如下命令unblock: root@TinaLinux:/# rfkill unblock 3 其中,参数“3”根据rfkill list结果中hci0对应的序号决定。上述命令运行后可确认是否被unblock:
0: sunxi-bt: bluetooth Soft blocked: no Hard blocked: no 1: phy0: wlan Soft blocked: no Hard blocked: no 3: hci0: bluetooth Soft blocked: no Hard blocked: no
root@TinaLinux:/# hciconfig hci0 up
可通过如下命令确认HCI0设备相关信息:
root@TinaLinux:/# hciconfig hci0: Type: BR/EDR Bus: UART BD Address: 00:E0:4C:23:99:87 ACL MTU: 1021:7 SCO MTU: 255:12 UP RUNNING RX bytes:478 acl:0 sco:0 events:17 errors:0 TX bytes:331 acl:0 sco:0 commands:17 errors:0
查看蓝牙设备名:
root@TinaLinux:/# hciconfig hci0 name hci0: Type: BR/EDR Bus: UART BD Address: 00:E0:4C:23:99:87 ACL MTU: 1021:7 SCO MTU: 255:12 Name: 'RTK_BT_4.1'
这样运行之后,BT能正常打开的话,基本功能应该是没啥问题的了,后面就是微调了。有问题可以留言讨论,大家一起学习。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。