蓝牙 linux linux手机版app

老铁们,大家好,相信还有很多朋友对于蓝牙 linux和linux手机版app的相关问题不太懂,没关系,今天就由我来为大家分享分享蓝牙 linux以及linux手机版app的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!

在Linux系统中使用蓝牙功能的基本方法

首先确定硬件上有支持蓝牙的设备,然后运行如下命令,就可以开到我们的蓝牙设备了:

复制代码代码如下:lsusb

运行hciconfig可以看到:

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

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

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

然后我们激活它:

复制代码代码如下:sudo hciconfig hci0 up

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

然后我们开始扫描了:

复制代码代码如下:hcitool scan

可以看到,发现了我手机的蓝牙了~~

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

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

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

复制代码代码如下:sudo rfcomm bind/dev/rfcomm0 E0:A6:70:8C:A3:02

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

接着我们连接它:

复制代码代码如下:sudo cat>/dev/rfcomm0

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

在配对完成之后我们需要删除绑定(否则在下次使用时会提示设备正忙),命令如下:

复制代码代码如下:sudo rfcomm release/dev/rfcomm0

在 Linux下使用 rfkill软开关蓝牙及无线功能

很多计算机系统包含无线电传输,其中包括Wi-Fi、蓝牙和3G设备。这些设备消耗电源,在不使用这些设备时是一种能源浪费。

RFKill是Linux内核中的一个子系统,它可提供一个接口,在此接口中可查询、激活并取消激活计算机系统中的无线电传输。当取消激活传输时,可使其处于可被软件重新激活的状态(软锁定)或软件无法重新激活的位置(硬锁定)。

RFKill为内核子系统提供应用程序编程界面(API)。内核驱动程序被设计为支持RFKill使用这个API注册内核,并包含启用和禁用这个设备的方法。另外,RFKill提供用户程序可解读的通知以及用户程序查询传输状态的方法。

RFKill接口位于/dev/rfkill,其中包含系统中所有无线电传输的当前状态。每个设备都在 sysfs中注册当前RFKill状态。另外,在启用了RFKill的设备中每当状态更改时,RFKill会发出 uevents。

rfkill是一个命令行工具,您可使用它查询和更改系统中启用了RFKill的设备。要获得这个工具,请安装 rfkill软件包。

如果开机时在可以搜索到无线网络且输入密码正确但仍然无法接入的情况下,就可能是rfkill这个程序阻拦了接入,它是个用来控制无线网络及蓝牙的使用的软开关。

使用命令 rfkill list获得设备列表,每个都包含与之关联的索引号,从 0开始。

复制代码代码如下:rfkill list

您可以使用这个索引号让 rfkill停使或者使用某个设备,例如:复制代码代码如下:rfkill block 0

停用系统中第一个启用RFKill的设备。

您还可以使用 rfkill阻断某一类设备,或者所有启用了RFKill的设备。例如:

复制代码代码如下:rfkill block wifi

停用系统中的所有Wi-Fi设备。要停用所有启用了RFKill的设备,请运行:复制代码代码如下:rfkill block all

要重新使用设备,请运行 rfkill unblock。要获得 rfkill可停用的完整设备类别列表,请运行 rfkill help。

怎样在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对于蓝牙的支持

在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模式时,将采用这个密码来联接.

阅读剩余
THE END