ARM平台上蓝牙协议栈Bluez的移植使用和配置

发布时间:2021-06-11

ARM平台上蓝牙协议栈Bluez的移植使用和配置

作者:刘旭晖 Raymond转载请注明出处
Email:colorant@
BLOG:/colorant/
主页:/

Bluez作为当前最成熟的开源蓝牙协议栈,在Linux的各大发行版中已经得到了广泛的应用。在桌面环境下,使用Bluez应该已经没有太大的问题,本文的主要目的是介绍在嵌入式平台上,搭建和配置Bluez的各个Profile运行所需做的工作,讨论可能遇到的问题,介绍一些工具的使用和工作原理。因为本人的能力和测试时间有限,可能下文中有些理解、分析不一定准确,欢迎联系指正。


1 相关说明
1.1 网站资源
Bluez的官方网址:/ 这里提供最新的源码下载,最近服务器崩溃了一次,有些东西没了。。。。
Bluez的Wiki:/wiki/ 这里提供Bluez相关的Howto等文档资源
相关邮件列表:
https:///lists/listinfo/bluez-users 关于如何使用和配置Bluez,多数是在讨论PC环境下的问题。。。。
https:///lists/listinfo/bluez-devel Bluez开发者活动的地方,有什么Bug之类的怀疑,还有编程接口之类的问题,就发到这里吧。

1.2 工作环境
个人感觉,使用Bluez最大的问题就是文档的欠缺,除了Wiki上的有限资料以外,很难找到其它有用的文档。
由于Bluez的代码实现更新变化得很快,网上的许多文档介绍的都是早期版本的使用,再有的文章多数是基于成熟的Linux发行版,来讨论蓝牙设备的配置和使用,对于嵌入系统开发,自己编译,搭建和配置相关环境的文章很少。此外和具体蓝牙芯片相关的资料也很难找到。

这里我不打算也没有能力写一个完整的指南,只能基于前段时间在自己的板子上所做的工作,总结一下相关的步骤和所遇到的各类问题以及这期间所掌握的各种相关知识。希望能给有类似开发需求的朋友一些有益的帮助,下面是这篇文章所基于的工作环境:

? 硬件平台:基于ARM的嵌入式板子
? 蓝牙芯片:CSR BC4 ROM 版本芯片,不带eeprom
? 软件环境:Linux 2.6.21 ,自制文件系统
? Bluez版本:bluez-libs 3.22 bluez-utils 3.22

2 编译
2.1 内核
相信多数人使用的都是2.6的内核了,在2.6的内核中要支持Bluez,只要你的内核版本不是太旧,无需打Patch,直接配置好就OK了,内核里面的代码相对比较稳定了。当然,Bluez对一些Bluetooth协议栈新特性的支持,还是需要更新kernel代码的。你应该确认你使用的ker
nel版本是否以及包含了对应的支持。

内核的配置,基本上把 networking下 --- Bluetooth subsystem support 里的以下几项全部选上即可:

L2CAP protocol support
SCO links support
RFCOMM

精彩图片

热门精选

大家正在看