蓝牙 支 持最优秀的Linux发行版本之一是Suse Linux。下面笔者就来介绍Suse Linux 9.3版本及其以后版本对蓝牙的配置方法。SUSE LINUX Professional 9.3在移动性方面的巨大改进。它提供完整的 Bluetooth 无线支持:
*自动识别启用 Bluetooth 的 设备 ;
*简化 Bluetooth 配置(通过 YaST) ;
*简化与 Bluetooth 移动电话和 Palm Pilot 的数据同步 ;
有了 SUSE LINUX Professional 9.3,用户就能轻松地连接到无线 LAN (WLAN),还能在 WLAN 与其他网络连接之间轻松移动。而且,其增强的暂停于磁盘功能几乎可以在所有膝上型计算机上运行。SUSE LINUX Professional 9.3还在桌面环境下包括了多个蓝牙治理工具。
一. 使用YaST2配置蓝牙
SUSE包含强大经典的 YaST 控制中心,可以经由简易的向导程序进行原本繁琐的配置过程,诸如架设 HTTP 服务 器, 设置网卡,调整蓝牙设备,治理软件,配置监视器和显卡。使用 YaST2 蓝牙模块在系统上配置蓝牙支持。一旦热插拔在系统中检测到蓝牙适配器(例如,在引导时或插入适配器时),将使用该模块中配置的设置自动启动蓝牙。启动 yast2,以次选择“硬件”-“Bluetooth”如下图。
使用yast2 工具配置蓝牙 |
配置的第一步是确定在您的系统中是否要启动蓝牙服务。假如已启用了蓝牙服务,则可以配置两项内容。首先配置设备名。这是您的计算机被发现时其他设备显示的 名称。有两个占位符可用,其中 — %h 代表系统的主机名(这很有用,例如,假如主机名由 DHCP 动态分配),而 %d 插入接口号(只有在计算机中安装了多个蓝牙适配器才有用)。
例如,假如在此字段中输入 Laptop %h 且DHCP 将名称 unit123 指派给计算机,则其他 远程 设备将您的计算机识别为Laptop unit123。单击高级守护程序配置进入用于选择和配置可用服务(在蓝牙中称为配置文件)的对话框。
所有可用服务都显示在列表中,可以通过单击激活或取消激活启用或禁用这些服务。单击编辑打开一个对话框,可以在这个对话框中为所选服务(守护程序)指定其他参数。如下图 。
配置蓝牙守护进程 |
蓝牙守护进程说明:
HCID - 主机控制器界面守护程序治理 计算机中的所有蓝牙设备。
SDPD - 需要使用远程设备中的服务发现协议守护程序来 找出您计算机上可用的蓝牙服务。 其它 守护程序连接到这个守护程序上。
OPD - 例如,需要 OBEX 推守护程序来将文件从某个设备传送到 您的计算机。 假如您在使用 KDE 或 GNOME,则不要 激活 OPD 守护程序。 只有其它桌面需要此守护程序,并且会导致 KDE 和 GNOME 出现问题。
RFCOMM - 这是一个某些设备和服务所需的串行电缆仿真 协议。 它不是一个"真正"的守护程序,而是一个配置现有 蓝牙设备的进程。
PAND - 个域网守护程序用于创建 使用蓝牙的网络。 它创建了一种无线 Ethernet 网络。
DUND - 拨号联网守护程序答应 通过 PPP 访问 LAN。 假如您有蓝牙调制解调器,则需要它。
HID - 人机交互设备简报用于诸如 键盘和鼠标之类的设备。
HID2HCI - 这实际上并非一个"真正"的守护程序,而是一个帮助实用程序,用于将 HID 适配器切换到 HCI 方式,反之亦然。
二. 蓝牙安全配置
回到主对话框中,单击安全性选项进入安全性对话框并指定加密、鉴定和扫描设置。参数安全性治理器与远程设备尝试连接时本地系统的行为相关。不同之处是在对 PIN 码的处理上。这种处理要么答应任何设备不使用 PIN 进行连接,要么确定在需要 PIN 时如何选择正确的 PIN。
可在相应的输入字段中输入 PIN(储存在配置文件中)。假如设备尝试连接,则它首先使用这个 PIN。假如连接失败,则它切换为不使用 PIN 进行连接。为获得最大的安全性,最好选择始终要求用户提供 PIN。此选项答应您对不同的(远程)设备使用不同的 PIN。如下图 。
蓝牙安全配置 |
说明:尽管有 PIN,但两台设备之间的数据传送也不是完全安全的。默认情况下, 蓝牙 连接的鉴定和加密处于取消激活状态。对某些蓝牙设备而言,激活鉴定和加密可能产生通信问题。
然后,退出安全性对话框返回主对话框。在单击完成关闭主对话框后,就可以使用蓝牙系统了。要使用蓝牙设置网络,则激活高级守护程序配置对话框中的 PAND,然后单击编辑设置守护程序的方式。对于一个有效的蓝牙网络连接,一个 pand 必须在监听方式下运行,而对应的同级必须在搜索方式下运行。默认情况下,预设为监听方式。调整本地 pand 的行为。此外,在 YaST 网卡模块中配置 bnepX 接口(其中 X 代表系统中的设备号)。
三. 使用Konqueror浏览器治理 蓝牙 设备
在 Konqueror 中,输入 URL bluetooth:/ 列出本地和远程蓝牙设备。双击某个设备可以获得此设备提供的 服务 的概述。假如将鼠标指针移过其中一个指定的服务,则浏览器的状态栏将显示将哪个配置文件用于此服务。
假如您单击某个服务,则将打开一个对话框,询问您要执行的操作:保存、使用服务(必须启动应用程序来执行此操作)还是取消操作。假如您不希望此对话框再次显示,而是要始终执行所选的操作,则选中特定复选框。如下图。
用Konqueror浏览器治理蓝牙设备 |
四. 发送文件到 蓝牙 设备
下面可以发送文件到蓝牙设备,首先选择要发送的文件点击鼠标右键选择“send with bluetooch”。如下图。
发送文件到蓝牙设备 |
下面要选择蓝牙设备,然后就可以进行发送了。下图是文件传输界面。
文件传输界面 |
另外系统配置完成后在桌面右下角有勇敢蓝牙工具条方便使用如下图。
KdeBluetooth工具 |
随着社区开源项目KdeBluetooth的不断发展与完善,Apatite利用该项目为原型,为系统提供了蓝牙通讯支持,同时修正了该项目在稳定性方面 的一些问题。KdeBluetooth是建立在Bluez协议栈基础上的一个蓝牙应用程序框架,它使用KDE/QT库提供了一系列图形化的蓝牙应用工具。
五. 命令行下配置 蓝牙
虽然最近几年个人计算机的 潮流 已经从命令行方式转向图形界面方式,大量的采用鼠标操作,但是shell 在Linux中依然有很强的。对命令行有好处的一件事情是它能够让你访问数百个工具软件。在命令行上面,你可以使用一个管道把工具软件结合在一起执行一项单个工具软件无法完成的工作。
“一个过程是Linux执行一个命令。过程之间的通信是UNIX/Linux的验证证实之一。一个通道(书写为垂直的直线“|”,在命令行中或者键盘上是 一个垂直的实线)提供了这种通信最简单的方式。简单地说,一个通道接受一个工具软件的输出,然后把那个输出输入到其它工具软件。
使用UNIX/Linux的词汇,这个通道接受了一个过程的标准输出,并把这个标准的输出作为另一个过程的标准输入。一个过程在屏幕上显示的大多数内容将 发送给标准的输出。假如你没有重新定向这个输出,这个输出就在屏幕上显示出来。使用一个通道,你可以重新定向这个输出,这样它就变成了另一个工具软件的标 准的输入。”
Bluez 系统各个部件的配置文件都位于目录 /etc/bluetooth 中。唯一的例外是用于启动组件的文件 /etc/sysconfig/bluetooth,该文件由 YaST 模块修改。只有用户 root 可以修改下面介绍的配置文件。目前,尚没有用于更改所有设置的图形用户界面。
通常,默认设置可以满足要求。使用 PIN 号码可以基本防止不需要的连接。移动电话在建立第一个联系时(或在电话上建立设备联系时)通常查询 PIN。为使两台设备能进行通讯,这两台设备必须用相同的 PIN 对自身进行标识。在计算机上,PIN 位于文件 /etc/bluetooth/pin 中。可以在配置文件 /etc/bluetooth/hcid.conf 中更改各种设置,例如设备名和安全性方式。
通常,默认设置可以满足要求。此文件包含介绍各个设置选项的注释。所包含文件中有两部分分别被指定为 options 和 device。前者包含 hcid 用于启动的一般信息。后者包含各个本地蓝牙设备的设置。options 部分中最重要的设置之一是 security auto;。
假如设置为 auto,则 hcid 尝试对进来的连接使用本地 PIN。假如失败,则它切换到 none 并建立连接。为提高安全性,应将默认设置设置为 user,以确保每次建立连接时都要求用户输入 PIN。在 device 部分设置在另一个设备中显示该计算机所使用的设备名。本部分定义设备类,例如 Desktop、Laptop 或 Server。还在这里启用或禁用鉴定和加密。
六. 命令行工具
蓝牙 的可操作性取决于各种服务的交互。至少需要两个后台守护程序:hcid(主机控制器接口守护程序)和 sdpd(服务发现协议守护程序),前者充当蓝牙设 备的接口并控制蓝牙 设备 ,而设备可以通过后者找到主机提供的服务。假如在启动系统时未自动激活 hcid 和 sdpd,则可以使用命令 rcbluetooth start激活这两个守护程序。必须以 root 用户身份执行此命令。
下面简要介绍了可用于使用蓝牙的最重要的 Shell 工具。尽管现在可以使用各种图形组件来控制蓝牙,但这些程序也值得您去关注。某些命令只能以 root 用户身份执行。
hcitool
hcitool 可用于确定是否检测到本地和 远程 设 备。命令 hcitool dev 列出本地设备。输出为每个检测到的本地设备生成一行,可以使用命令 hcitool inq 搜索远程设备。对于每个检测到的远程设备,返回 3 个值:设备地址、时钟偏移和设备类。设备地址很重要,因为其他命令用它来标识目标设备。时钟偏移主要用于技术目的。而设备类以十六进制值的形式指定设备类 型和 服务 类型。
命令 hcitoolname device-address 可用于确定远程设备的设备名。对于远程计算机,设备类和设备名对应于其 /etc/bluetooth/hcid.conf 中的信息。使用本地设备地址将生成错误输出。hcitool命令行方式的蓝牙扫描各程序,它内嵌有已被编译到内核中去了的BlueZ协议,这个扫描程序被 称为hcitool,它可找到所有那些已处于可发现模式(discoverable mode)的蓝牙设备。Hcitool的网站主页地址为http://linuxcommand.org/man_pages /hcitool1.html ;现在,拿来在计算机有效范围内的另外一个蓝牙设备,确保该设备对蓝牙扫描可见。然后,从命令行运行hcitool scan。该过程将持续15~20s 后完成扫描,之后将显示以下信息:
My output :
hcitool scan
00:E0:03:36:90:2D Nokia 6230 |
hciconfig
命令 /usr/sbin/hciconfig 提供有关本地设备的具体信息。假如不带任何参数执行 hciconfig,则输出将显示设备名 (hciX) 等设备信息、物理设备地址(12 位数字,形式为 00:12:34:56:78)和有关已传送数据量的信息。hciconfig hci0 name 显示当您的计算机接收来自远程设备的请求时它返回的名称。除查询本地设备的设置外,hciconfig 还可用于修改这些设置。例如,hciconfig hci0 name TEST 将名称设置为 TEST。典型输出如下:
hciconfig –a
hci0: Type: USB BD Address: 00:A0:96:20:2B:A0 ACL MTU: 128:8 SCO MTU: 64:8 UP RUNNING PSCAN ISCAN RX bytes:159590 acl:1544 sco:0 events:977 errors:0 TX bytes:56114 acl:769 sco:0 commands:210 errors:0 Features: 0xff 0xff 0x05 0x00 0x00 0x00 0x00 0x00 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH HOLD SNIFF PARK Link mode: SLAVE ACCEPT Name: 'BlueZ (enki)' Class: 0x100100 Service Classes: Object Transfer Device Class: Computer, Uncategorized HCI Ver: 1.1 (0x1) HCI Rev: 0x72 LMP Ver: 1.1 (0x1) LMP Subver: 0x72 Manufacturer: Cambridge Silicon Radio (10) |
说明:假如没有看到这样的信息,那么确认一下hcid 是否正在运行,在文件/var/log/messages 中是否有错误信息。适配器的BD Address是蓝牙识别符的唯一标识,其原理与以太网的MAC 地址类似。
sdptool
命令sdptool 可用于检查特定设备提供哪些服务。命令 sdptoolbrowsedevice_address 返回某个设备的所有服务。使用命令 sdptool searchservice_code 搜索特定的服务。此命令扫描所有可访问的设备来搜索请求的服务。假如其中一台设备提供服务,则此程序将输出此设备返回的完整服务名及简短说明。输入不带参 数的 sdptool 可以查看所有可能的服务代码列表。典型输出如下:
sdptool browse 00:E0:03:36:90:2D
Service Name: OBEX Object Push Service RecHandle: 0x1000e Service Class ID List: "OBEX Object Push" (0x1105) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 9 "OBEX" (0x0008) Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "OBEX Object Push" (0x1105) Version: 0x0100 …… |
总 结:
如今,支持无线蓝牙的设备真可谓是无处不在,而且相关软件的使用也很简单。尽管如此还是有不少有消费者没有了解它,不知道怎样使用它。本文介绍蓝牙的基础 知识以及如何在Linux系统安装一些蓝牙设备。随着身边内置蓝牙设备的增多,与电脑交换资料假如不用蓝牙的话实在是可惜,但是现在内置蓝牙的本本并不 多,到市场上买一个蓝牙适配器即可,1.2版本的基本在40-80元