linux测试蓝牙命令 linux 蓝牙配置文件

嵌入式linux 蓝牙怎么开发

一.Linux对于蓝牙的支持

创新互联公司专注于文峰企业网站建设,成都响应式网站建设,商城网站开发。文峰网站建设公司,为文峰等地区提供建站服务。全流程定制开发,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务

 在Linux 2.6内核已经实现如下协议。

串口形式蓝牙设备驱动(HCI UART driver)

USB蓝牙棒驱动(HCI USB driver)

内核也实现了L2CAP,RFCOMM串口接口,以及SCO链路支持.

另外内核也直接支持BNEP(Bluetooth Network Encapsulation Protocol ),即把蓝牙网络当成一个无线局域网操作。

 Linux也带了蓝牙输入设备的相关支持。

需要打开 HIDP 和HID2HCI两个选项都要打开.

DUND 把蓝牙网络当成一个拨号网络来处理。

2.蓝牙协议栈

在实现了L2CAP后,也需要一个蓝牙协议栈处理。它起什么作用呢? 我的理解是内核封装到RFCOMM的层次,即只负责的蓝牙的包的封装与收发。至于包收上来,在蓝牙的四个阶段,如何应用的状态影响,以及如何响应正确的包,这一些事情由蓝牙协议栈来完成的。

在Linux实现蓝牙功能有多个互相竞争的蓝牙协议栈,但是影响最大是bluez.几乎已经成为Linux下的标准协议栈的代名词。

还有一个协议栈是Affix  不过用的人比较少

在应用程序级,它主要由两部分组成,一个是bluez的应用程序库,主要负责与内核的bluez通信,和bluez-util工具。即完成蓝牙四阶段处理的一些命令行工具。

3.蓝牙的概念。

配对由一方发起即可,如果本设备需要被其它设备搜索,需要有被发现功能。

二.Linux关于蓝牙命令

-------------------------------------------------

在Linux使用蓝牙最方便是使用bluez-util自带向个命令来测试。

我们这里采用市面最容易找到的蓝牙棒来做物理层设备与手机进行通讯测试。把蓝牙棒插LINUX下的USB口后,在dmesg我们会看到提示

表示USB蓝牙棒已经被识别了。如果

操作系统自带HCI工具主要来自bluez-util.

/usr/sbin/hciattach : attach serial devices via UART HCI to BlueZ stack

/usr/sbin/hcid     :Bluetooth Host Controller Interface Daemon

/usr/sbin/hciemu    :HCI emulator

/usr/sbin/hciconfig :  configure Bluetooth devices

/usr/sbin/hcidump  : Parse HCI data

/usr/bin/hcitool   : configure Bluetooth connections

/usr/bin/sdptool    : control and interrogate SDP servers

hciconfig类似于 hciconfig.类似的操作可以参见官网(这里不方便留链接,自己去搜索下就可以了)

检测USB设备,lsusb

2.查看hci设备,hciconfig

激活设备

hciconfig hci0 up

3.修改蓝牙配置文件

蓝牙采用/etc/bluetooth/

hcid.conf  rfcomm.conf

其中hcid.conf有关配对信息。其中security user;表示每次配对询问用户对方PIN,而auto则直接采用passkey中的PIN码。

4.重启蓝牙服务

如果修改了蓝牙配置后,需要重启蓝牙服务

service bluetooth stop

service bluetooth start

5.扫描设备

6.增加自动配对设置

修改 /etc/bluetooth/rfcomm.conf

增加扫描蓝牙地址

7.创建设备结点(只合适于第一次)

rfcomm create dev #它将创建于/dev/rfcomm0 设备结点

它等同于如下命令系列

mknod /dev/rfcomm0 c 216 1

chmod 666 /dev/rfcomm0

rfcomm bind /dev/rfcomm0 00:21:19:A4:E0:F1-1

8.增加SDP消息信息

为了减少麻烦,把所有支持的蓝牙服务都加上.

sdptool add --channel=1 DID SP DUN LAN FAX OPUSH FTP HS HF SAP NAP GN PANU HID CIP CTP A2SRC A2SNK SYNCML NOKID PCSUITE SR1

9.增加蓝牙串口绑定

rfcomm bind /dev/rfcomm0 00:21:19:A4:E0:F1 1

#rfcomm bind /dev/rfcomm0 蓝牙设备地址  通道,这个命令可选

10.解除蓝牙绑定

格式:rfcomm unbind /dev/rfcomm0 蓝牙设备地址   通道

11.联接蓝牙设备

hcitool cc 00:21:19:A4:E0:F1

三.关于蓝牙配置文件

-------------------------------------------

蓝牙的配置文件主要是 /etc/bluetooth目录下的hcid.conf和rfcomm.conf.

这里的security 是表示配对的认证模式,user表示由用户输入密码。这个需要在后面用

pin_helper 指明用哪一个程序输入密码,这程序可以是图形界面程序,或者是字符界面程序。

常见的pin_helper有

/usr/bin/bluez-pin : bluez自带的pin输入界面

kbluepin

passkey 配置项指明请求联接的设备的pin码。当采用auto模式时,将采用这个密码来联接.

ubuntu查看蓝牙设备

1、插入硬件,打开终端,查看是否检测到设备。

2、查看是否识别为蓝牙模块。

3、查看蓝牙模块的地址;如果不显示蓝牙模块及其地址,则需要通过rfkilllist命令查看hci0是否blocked,使用rfkillunblock0(rfkilllist显示的hci0的序号)即可启用蓝牙模块(hci0)。

4、激活蓝牙模块。

5、此次测试设置蓝牙模块为服务端且不需要配对码。

6、hciconfig和hcitool(BlueZ提供的工具,BlueZ是多数Linux发行版的默认蓝牙协议栈)可以实现搜索、连接等功能,此处主要希望通过编程控制蓝牙模块,故对此暂时不做深究。

linux下有没有用命令直接配对蓝牙设备的命令的

运行hciconfig查看蓝牙信息,

运行hcitool dev可以看到我们的蓝牙设备的硬件地址

运行hcitoo --help 可以查看更多相关命令

然后我们激活它:sudo hciconfig hci0 up

然后我们开始扫描了:hcitool scan

运行rfcomm --help 可以查看用法

接着我们连接它:sudo cat /dev/rfcomm0

怎样在Linux中使用蓝牙

方法如下:

1、终端使用命令lsusb

2、运行hciconfig可以看到:

从上图可以看出,的蓝牙设备是hci0

3、运行hcitool dev可以看到蓝牙设备的硬件地址

运行hcitoo --help 可以查看更多相关命令

然后激活设

sudo hciconfig hci0 up

要注意的是,激活前蓝牙必须是打开的,否则会出现如下错误:

4、然后扫描:

hcitool scan

5、然后开始连接了,连接阶段使用的主要命令是rfcomm:

运行rfcomm --help 可以查看用法

首先需要绑定目的蓝牙设备:

sudo rfcomm bind /dev/rfcomm0 E0:A6:70:8C:A3:02

注意:上面的这个地址是目的蓝牙设备的硬件地址。

接着连接:

sudo cat /dev/rfcomm0

这是目的蓝牙主机就会弹出一个对话框要求输入pin码,随便输入一个,然后主机就会弹出一个对话框,只要输入的和刚才一致就可以通过验证。之后我们发现我的手机已经显示了成功配对的标记了。


当前名称:linux测试蓝牙命令 linux 蓝牙配置文件
分享URL:http://azwzsj.com/article/dohcgpi.html