怎样在Linux中使用蓝牙

怎样在Linux中使用蓝牙,第1张

 一,蓝牙存储设备

蓝牙适配器: ISSC芯片, USB接口(市面上还有其他的一些品牌,大多没有问题)

蓝牙手机:索爱T628

蓝牙耳机:Jabra BT250(大陆地区型号是FS258,大概照顾中国人对BT的特殊理解和258的吉利数字)

1,加载蓝牙适配器

插入USB口之后,可以使用lsusb命令,看到:

Bus 004 Device 003: ID 1131:1001 Integrated System Solution Corp.

这是,运行hciconfig可以看到:

hci0: Type: USB

BD Address: 00:11:67:02:1A:03 ACL MTU: 678:8 SCO MTU: 48:5

DOWN

RX bytes:142289 acl:884 sco:0 events:823 errors:0

TX bytes:13302 acl:494 sco:0 commands:151 errors:0

运行:

hciconfig hci0 up

可以激活借口(这一步不做,hcitool scan无法运行)

3,配置bluez

默认的配置文件放在/etc/bluetooth目录

hcid.conf和pin不需要修改,安全方式已经被设置成auto,这是为了方便连接,用户可以自己修改,推荐不做修改,以防止有些设备连接不上。

4,重启bluetooth服务。

/etc/rc.d/init.d/bluetooth stop

/etc/rc.d/init.d/bluetooth start

5,扫描设备

运行hcitool scan可以得到:

Scanning ...

00:01:EC:0C:D2:00 Tree's T628

6,修改配置文件:

修改/etc/bluetooth/rfcomm.conf

将里面的:

device 11:22:33:44:55:66

修改成hcitool scan的结果,也就是:

device 00:01:EC:0C:D2:00

保存退出。

7,创建设备:

运行

rfcomm_create_dev。

8,添加通道:

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

后面的参数不一定被支持,但是以防有些服务没有被打开,所以,干脆全部打开了。

rfcomm bind /dev/rfcomm0 电话的地址 通道(在rfcomm.conf中配置)

这里的命令应该写成:

rfcomm bind /dev/rfcomm0 00:01:EC:0C:D2:00 1

9,连接手机:

hcitool cc 电话的地址

也就是

hcitool cc 00:01:EC:0C:D2:00

这时候,可以看到手机上的蓝牙连接呈联通状态。

10,从计算机发送文件:

obex-send abc.jpg

*** 作系统会d出提示框,让你选择要发送的目标。

同时可以看到手机会d出提示框,询问是否接受文件。

11,手机的配置:

需要在手机上进行一下配置:

连接->蓝牙->匹配装置->添加装置。

会自动扫描到PC上的适配器。

如果需要填入识别码就填写123。上面已经设置了。

这时候,可以看到手机已经成功的添加蓝牙装置。

12,从手机发送文件。

在PC机上启动obex-server,会看到系统托盘出现一个小图标。

完成上面的工作后,可以进入手机的:

多媒体->我的影集

选择一张图片。

然后,“发送”->“通过蓝牙”

看到有刚才扫描到的蓝牙适配器。

然后,就可以发送文件了。

13,使用软件管理手机信息。

参考gnokii软件的文档

二、蓝牙耳机。

1,同时按住jabra 250上面的“电话键”和“音量增大键”,大约8秒,看到蓝灯常亮

1,扫描耳机,得到bdaddress

hcitool scan

3,配置工作:

modprobe snd_bt_sco

hciconfig hci0 void 0x0060

btsco bdaddress (这里的bdaddress就是扫描出来的结果)

btsco运行后,会d出对话框,要求输入耳机的pin,jabra 250为0000,可以在说明书上找到。

4,建立联接后,设备被映射成/dev/dsp1。

以beep为例,

插件->输出,选择使用alsa驱动,点开“首选项”,音频设置部分就可以看到btsco:hw0,1之类的信息,选择这个即可。

然后播放一首歌,尝试一下无线的快乐吧。

然后适当的配置你所要使用的播放器之类的就可以了。

蓝牙适配器客户端: 1. 将蓝牙适配器插入电脑USB接口 2. 打开客户端 3. 点击右上角的帮助—>安装驱动 Windows XP: 4. 将蓝牙适配器插入电脑USB接口 5. 出现驱动安装向导,按照如下步骤 *** 作 浏览选择驱动程序所在的目录 Window7: 1. 将蓝牙适配器...

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8968678.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存