Linux 指南/Linux 和蓝牙
以下只是在 Linux 环境中连接蓝牙设备(在本例中为诺基亚手机)的简单示例。
出于本文的目的,我们假设在计算机上安装了 Linux Mandrake 10.0(内核 2.6.13,X86)。
首先,我们需要 Bluez 协议,通常在您的发行版中以 RPM 包的形式提供,然后我们需要启动蓝牙服务。
[[email protected] user]# service bluetooth start
现在需要设置 PIN 码(如果您需要)以及本地设备名称链接,为此,我们编辑(例如,使用 JOE)文件/etc/bluetooth/hcid.conf:
[[email protected] user]# joe /etc/bluetooth/hcid.conf
修改以下摘录
PIN 摘录
# PIN helper pin_helper /etc/bluetooth/mypin.sh;
其中 mypin.sh 是一个临时创建的文件。
名称摘录
# Local device name # %d - device id # %h - host name name "userdomain (%d)";
注意:文件mypin.sh包含
#!/bin/bash echo "PIN:XXX"
其中 XXXX 代表您的 PIN 码。
现在是时候搜索设备了
[[email protected] user]# hcitool scan
这应该返回类似于
12:34:56:78:90:12 user1
换句话说,bdaddr(BT 地址)和设备名称,请记下 bdaddr,现在是时候发现远程设备上的可用服务以及它们所在的通道了
[[email protected] utente]# sdptool records 12:34:56:78:90:12
根据我们分析的设备类型,请求会返回一个很长的配置文件列表,在本例中,我们对拨号配置文件感兴趣,所以让我们看看它是否在通道 1 上可用
Service Name: Dial-Up Networking Service RecHandle: 0x10007 Service Class ID List: "Dialup Networking" (0x1103) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 1 Language Base Attr List: code_ISO639: 0x454e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "Dialup Networking" (0x1103) Version: 0x0100
然后
[[email protected] user]# rfcomm bind 0 12:34:56:78:90:12 1
换句话说,我绑定了一个虚拟串行端口,rfcomm0 (/dev/bluetooth/rfcomm/0),通过 rfcomm 工具与远程设备调制解调器连接,尚未连接,但已准备好进行软件请求,让我们看看
[[email protected] user]# rfcomm show 0
这将导致
rfcomm0: 12:34:56:78:90:12 channel 1 clean
BT 调制解调器已准备好在/dev/bluetooth/rfcomm/0
无需提及,在此期间,您已在远程设备上接受了连接。
或者,从 Linux 端连接,准备一个代理以正确响应 PIN 请求,然后连接
[[email protected] user]# bluetooth-agent 1234 12:34:56:78:90:12 [[email protected] user]# rfcomm connect 0 12:34:56:78:90:12
然后,在另一个终端中,您可以例如在 /dev/rfcomm0 上打开一个终端
[[email protected] user]# minicom /dev/rfcomm0
要将此即用型设备用作调制解调器,我建议使用 wvdial 程序作为拨号程序,为此,我们需要编辑其配置文件/etc/wvdial.conf,像这样
[Dialer Defaults] Modem = /dev/bluetooth/rfcomm/0 Baud = 460800 Dial Attempts = 1 Init1 = ATZ Init3 = AT+CGDCONT=1,"IP","web.omnitel.it" Phone = *99# Carrier Check = no Stupid Mode = yes Username = "" Password = ""
注意:此示例来自诺基亚手机上 Vodafone 意大利的正常配置,对于不同的国家/运营商/品牌配置,请使用关键字 +CGDCONT 和运营商名称在 Google 上搜索,大多数情况下您只需要修改字符串
Init3 = AT+CGDCONT=1,"IP","web.omnitel.it"
根据您的运营商规格,以及
Phone = *99#
根据您手机的品牌。
拨号并连接...
[[email protected] utente]# wvdial
祝您好运!!!
- hciconfig
- hcitool scan
- hcitool info BT_ADDRESS
BT_ADDRESS 可能类似于 00:89:34:62:67:52
- l2ping BT_ADDRESS
- sdptool browse BT_ADDRESS
- sdptool search DUN
- hciattach -l