嵌入式技术论坛
登录
直播中
605342
12年用户
111经验值
擅长:EMC/MEI设计,控制/MCU
私信
关注
[经验]
【MYD-Y6ULX试用体验】用户态蓝牙配置
试用
体验
用户
本帖最后由 Tony_Ho 于 2018-3-24 09:21 编辑
stack的划分
在前面的文章中,我们已经配置好了内核态对蓝牙的支持, 包括驱动以及内核态的stack。
Linux蓝牙的stack为BlueZ, 参考前面的文章的图片,可以知道,内核态和用户态使用的是MGMT接口来通讯。
底层主要负责和Controller数据的传输,而数据的传输接口一般为USB,SDIO以及串口。
具体而言,功能如下:
其中个人认为比较复杂的是SMP,内核态中对:
控制
数据
这两类信息通过socket接口传递到了用户态。MGMT作为控制接口,定义了大量的控制命令。同时将Controller的数据使用HCI方式传递给用户态的BlueZ daemon, 即下面图中说到的bluetoothd
bluetoothd使用D-Bus保留控制和数据接口,用于应用程序与stack的交互。
还有一些工具可以用来完成对stack中信息的获取。
更新stack
现在stack的版本已经到了5.49, 这个版本开始支持mesh了。其中最为重要的是5.47版本,这个版本修正和正式使用D-Bus接口来完成绝大部分操作的接口的暴露。
同时Gatt的支持也变得比较完善,而Yocto中的版本一般都在5.43左右,属于比较老的版本。
因此我们需要做的事情是升级Yocto中的BlueZ版本。
更新Yocto bb文件
一般bluez的bitbake recipe文件位于poky的connec
ti
vity中,我们直接修改URL即可,将其指定为5.49,然后根据我以前写的文章编译即可。编译完成后的内容大致如下:
需要注意的是在5.49版本中,gatttool已经不存在了,因此需要修改bb文件中的对应install行。
测试usersapce stack
当一切都准备好了,那么我们就可以开始测试了。
我们使用bluetoothctl来扫描连接一个设备,使用的命令是:
$bluetoothctl
$ scan on
$ connect XXXXXX
连接后就可以使用info来查看设备信息:
更多回帖
rotate(-90deg);
回复
相关帖子
试用
体验
用户
【
MYD-Y6ULX
试用
体验】
配置
支持
蓝牙
3621
【
MYD-Y6ULX
试用
体验】
MYD-Y6ULX
编译环境的搭建及内核编译
5760
【
MYD-Y6ULX
试用
体验】开箱
3563
【
MYD-Y6ULX
试用
体验】串口登录
MYD-Y6ULX
进行开发环境
配置
3693
【
MYD-Y6ULX
试用
体验】Linux开发从零到一
3322
【
MYD-Y6ULX
试用
体验】opencv3.2移植到
MYD-Y6ULX
开发板
2243
【
MYD-Y6ULX
试用
体验】控制GPIO
2523
【
MYD-Y6ULX
试用
体验】开箱评测+SFTP服务
2388
【
MYD-Y6ULX
试用
体验】开箱评测
2996
【
MYD-Y6ULX
试用
体验】开箱测试
5691
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分