Home » linux » Linux下Bluetooth的使用

Linux下Bluetooth的使用

1. 激活设备

首先要有一个蓝牙适配器,这个不用说,一般都是USB接口类型。

  1. lsusb 查看系统中连接的蓝牙设备
  2. hciconfig 查看设备的详细信息
  3. hciconfig hci0 up 将设备激活

2. 配置bluez

配置文件位于目录/etc/bluetooth

3. bluetooth服务

  1. /etc/rc.d/init.d/bluetooth stop
  2. /etc/rc.d/init.d/bluetooth start

4. 扫描设备

hcitool scan

通过以上命令可以查找周围的Bluetooth设备

5. 绑定设备

有两种方式来绑定目的蓝牙设备
@1 修改/etc/bluetooth/rfcomm.conf
@2 rfcomm bind /dev/rfcomm0 XX:XX:XX:XX:XX:XX

解除绑定方法是
# rfcomm unbind /dev/rfcomm0 BD_ADDR channel

tip: 如果没有虚拟串口设备(rfcomm0),则需要手动创建(rfcomm_create_dev?)

  1. # mknod /dev/rfcomm0 c 216 1
  2. # chmod 666 /dev/rfcomm0

6. 添加通道

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

后面的参数表示系统支持的全部服务

7. 连接设备

hcitoolccXX:XX:XX:XX:XX:XX

8. 发送文件

obex-send *.*

9. bluez tools

  1. bccmd: used to issue BlueCore commands to Cambridge Silicon Radio devices.
  2. bluetoothd: the Bluetooth daemon.
  3. ciptool: used to set up, maintain, and inspect the CIP configuration of the Bluetooth subsystem in the Linux kernel.
  4. hciattach: used to attach a serial UART to the Bluetooth stack as HCI transport interface.
  5. hciconfig: used to configure Bluetooth devices.
  6. hcitool: used to configure Bluetooth connections and send some special command to Bluetooth devices.
  7. hid2hci: used toset up switch supported Bluetooth devices into the HCI modeand back.
  8. l2ping: used to send a L2CAP echo request to the Bluetooth MAC address given in dotted hex notation.
  9. rctest: used totest RFCOMM communications on the Bluetooth stack.
  10. rfcomm: used toset up, maintain, and inspect the RFCOMM configuration of the Bluetooth subsystem in the Linux kernel.
  11. sdptool: used to perform SDP queries on Bluetooth devices.
  12. libbluetooth.so: contains the BlueZ 4 API functions.

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