移植瑞昱rtl8723bu/au/8761A/8821A的蓝牙驱动到嵌入式linux开发板

一、蓝牙驱动的移植

1、解压rtl8723au_bt-master蓝牙驱动包。

2、复制驱动到指定位置
将驱动包下的blutooth_usb_driver/ rtk_bt.c, rtk_bt.h,
rtk_coex.c, rtk_coex.h 四个文件复制到内核
/data/I.MX6ULL/linux/kernel_NXP/linux-imx-rel_imx_4.1.15_2.1.0_ga/drivers/bluetooth 目录下

3、修改Makefile编译脚本
在drivers/bluetooth目录下的Makefile文件的最后一行添加三个编译目标。

obj-$(CONFIG_BT_RTKBTUSB) += rtk_btusb.o
rtk_btusb-y := rtk_coex.o rtk_bt.o

4、修改Kconfig配置文件
在drivers/bluetooth目录下的Kconfig文件的倒数第二行endmenu之前添加RTK支持。

config BT_RTKBTUSB
     tristate "RTK HCI USB driver"
     depends on USB
     help
     RTK Bluetooth HCI USB driver.

5、复制相应的固件到开发板

如果使用的是rtl8723bu型号的芯片,则将8723B目录下rtl8723b_fw,rtl8723bu_config拷贝到开发板的/lib/firmware/目录下,同理,如果使用的是rtl8723au型号的芯片,则拷贝8723A目录下驱动文件。
6、配置 Linux 内核
6-1蓝牙协议支持,进入到Networking support > Bluetooth subsystem support,配置成下图。
移植瑞昱rtl8723bu/au/8761A/8821A的蓝牙驱动到嵌入式linux开发板_第1张图片
进入到Networking support > Bluetooth subsystem support > Bluetooth device drivers,将RTK HCI USB driver勾选上。
移植瑞昱rtl8723bu/au/8761A/8821A的蓝牙驱动到嵌入式linux开发板_第2张图片

6-2射频RF支持,进入到Networking support > RF switch subsystem support,将RF switch input support勾选上。
移植瑞昱rtl8723bu/au/8761A/8821A的蓝牙驱动到嵌入式linux开发板_第3张图片
6-3支持用户层驱动,进入到Device Drivers > Input device support > Miscellaneous devices evice drivers,将User level driver support勾选上。
移植瑞昱rtl8723bu/au/8761A/8821A的蓝牙驱动到嵌入式linux开发板_第4张图片
6-4支持将固件编译进内核,进入到Device Drivers > Generic Driver Options,将下图中的两项勾选上。
移植瑞昱rtl8723bu/au/8761A/8821A的蓝牙驱动到嵌入式linux开发板_第5张图片
保存退出,执行make操作,将编译出的zImage烧写到开发板。

二、蓝牙驱动的测试

先将交叉编译好的bluez蓝牙协议栈移植到开发板,ubuntu系统的可以直接使用命令安装

apt-get install bluez

1、打开蓝牙hciconfig hci0 up
2、扫描蓝牙hcitool scan
3、开启可检测hciconfig hci0 up piscan
4、关闭本地的pin验证hciconfig hci0 noauth

你可能感兴趣的:(内核,嵌入式,linux,arm)