hcitool
是一个用于与蓝牙设备进行交互的命令行工具。它可以帮助用户执行各种蓝牙操作,如扫描、连接、查询设备信息等。本文将详细介绍 hcitool
的安装、基本用法、常用命令以及实际示例。
安装 hcitool
在大多数Linux发行版中,hcitool
是 bluez
软件包的一部分。可以通过包管理器轻松安装。例如,在Debian或Ubuntu系统中:
sudo apt-get update
sudo apt-get install bluez
在CentOS或Red Hat系统中:
sudo yum install bluez
安装完成后,可以通过以下命令检查 hcitool
的版本:
[root@:/]# hcitool -h
hcitool - HCI Tool ver 5.50
Usage:
hcitool [options] <command> [command parameters]
Options:
--help Display help
-i dev HCI device
Commands:
dev Display local devices
inq Inquire remote devices
scan Scan for remote devices
name Get name from remote device
info Get information from remote device
spinq Start periodic inquiry
epinq Exit periodic inquiry
cmd Submit arbitrary HCI commands
con Display active connections
cc Create connection to remote device
dc Disconnect from remote device
sr Switch master/slave role
cpt Change connection packet type
rssi Display connection RSSI
lq Display link quality
tpl Display transmit power level
afh Display AFH channel map
lp Set/display link policy settings
lst Set/display link supervision timeout
auth Request authentication
enc Set connection encryption
key Change connection link key
clkoff Read clock offset
clock Read local or remote clock
lescan Start LE scan
leinfo Get LE remote information
lewladd Add device to LE White List
lewlrm Remove device from LE White List
lewlsz Read size of LE White List
lewlclr Clear LE White List
lerladd Add device to LE Resolving List
lerlrm Remove device from LE Resolving List
lerlclr Clear LE Resolving List
lerlsz Read size of LE Resolving List
lerlon Enable LE Address Resolution
lerloff Disable LE Address Resolution
lecc Create a LE Connection
ledc Disconnect a LE Connection
lecup LE Connection Update
For more information on the usage of each command use:
hcitool <command> --help
基本用法
hcitool
的基本语法如下:
hcitool [选项] <命令> [命令参数]
常用选项
--help
:显示帮助信息。-i dev
:指定HCI设备。
常用命令
显示本地蓝牙设备
hcitool dev
此命令列出本地所有可用的蓝牙设备及其地址。
扫描远程设备
hcitool scan
此命令扫描周围的蓝牙设备并显示它们的地址和名称。
查询远程设备
hcitool inq
此命令进行设备查询,并显示响应的蓝牙设备地址和类信息。
获取远程设备名称
hcitool name <BD_ADDR>
此命令从指定的远程设备获取名称。
获取远程设备信息
hcitool info <BD_ADDR>
此命令获取指定远程设备的详细信息,包括设备类、制造商、连接信息等。
显示活动连接
hcitool con
此命令显示当前活动的蓝牙连接。
创建连接到远程设备
hcitool cc <BD_ADDR>
此命令创建与指定远程设备的连接。
断开与远程设备的连接
hcitool dc <BD_ADDR>
此命令断开与指定远程设备的连接。
启动LE扫描
hcitool lescan
此命令启动低功耗蓝牙设备的扫描。
获取LE远程信息
hcitool leinfo <BD_ADDR>
此命令获取低功耗蓝牙设备的详细信息。
示例
显示本地蓝牙设备
hcitool dev
输出示例:
Devices:
hci0 00:1A:7D:DA:71:13
扫描周围的蓝牙设备
hcitool scan
输出示例:
Scanning ...
00:1A:7D:DA:71:13 MyPhone
00:1B:DC:06:78:88 MyLaptop
查询远程设备
hcitool inq
输出示例:
Inquiring ...
00:1A:7D:DA:71:13 clock offset: 0x53e4 class: 0x5a020c
00:1B:DC:06:78:88 clock offset: 0x6921 class: 0x1c0104
获取远程设备的名称
hcitool name 00:1A:7D:DA:71:13
输出示例:
MyPhone
获取远程设备信息
hcitool info 00:1A:7D:DA:71:13
输出示例:
Requesting information ...
BD Address: 00:1A:7D:DA:71:13
Device Name: MyPhone
LMP Version: 2.0 (0x3) LMP Subversion: 0x4226
Manufacturer: Cambridge Silicon Radio (10)
Features page 0: 0xbf 0xee 0xcd 0xfe 0xdb 0xff 0x7b 0x87
Features page 1: 0x55 0x59 0x81 0x00 0x00 0x00 0x00 0x00
...
显示当前活动的蓝牙连接
hcitool con
输出示例:
Connections:
< SCO 00:1A:7D:DA:71:13 handle 11 state 1 lm MASTER
< ACL 00:1B:DC:06:78:88 handle 12 state 1 lm SLAVE AUTH ENCRYPT
创建与远程设备的连接
hcitool cc 00:1A:7D:DA:71:13
此命令将尝试连接到地址为 00:1A:7D:DA:71:13
的设备。
断开与远程设备的连接
hcitool dc 00:1A:7D:DA:71:13
此命令将断开与地址为 00:1A:7D:DA:71:13
的设备的连接。
启动低功耗蓝牙设备扫描
hcitool lescan
输出示例:
LE Scan ...
00:1A:7D:DA:71:13 MyLEDevice
00:1B:DC:06:78:88 AnotherLEDevice
获取LE设备信息
hcitool leinfo 00:1A:7D:DA:71:13
输出示例:
Requesting LE remote information ...
BD Address: 00:1A:7D:DA:71:13
LE Address Type: Public
LE Role: Master
Connection Interval: 0x0018
Connection Latency: 0x0000
Supervision Timeout: 0x01f4
总结
hcitool
是一个功能强大的蓝牙命令行工具,可以帮助用户扫描、连接和管理蓝牙设备。通过灵活使用各种命令和选项,你可以高效地执行各种蓝牙操作。在蓝牙设备的调试和管理中,hcitool
是一种不可或缺的工具。