linux 蓝牙命令
本文先收集基本的蓝牙命令,而后明了linux中蓝牙子系统的结构。后续文章再针对性细化。
目录
目录
hciconfig
默认参数为查看蓝牙控制器设备:
控制器的开关
hcitool
查询设备
扫描设备
bluetoothctl
查询当前的设备
配对设备
移除设备
问题
hciconfig
Host Controller Interface
默认参数为查看蓝牙控制器设备:
hci0: Type: Primary Bus: USB
BD Address: 2C:33:7A:F4:DC:C2 ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING PSCAN ISCAN
RX bytes:4470 acl:1 sco:0 events:319 errors:0
TX bytes:39127 acl:0 sco:0 commands:294 errors:0
上面的UP 和RUNNING,看起来和网口比较类似,即即有物理链接,又配置了设备地址。
控制器的开关
hciconfig hci0 down
sudo hciconfig
hci0: Type: Primary Bus: USB
BD Address: 2C:33:7A:F4:DC:C2 ACL MTU: 1021:8 SCO MTU: 64:1
DOWN
RX bytes:4470 acl:1 sco:0 events:319 errors:0
TX bytes:39127 acl:0 sco:0 commands:294 errors:0
hcitool
hcitool - HCI Tool ver 5.50
查询设备包括本地和远端设备,发起设备扫描
查询设备
sudo hcitool dev 本地设备,可以看出和上面命令查到一样的设备,即蓝牙控制器
Devices:
hci0 2C:33:7A:F4:DC:C2
sudo hcitool inq 这个查询远端设备,虽然物理上有设备,但需要先进行扫描,然后才能看到。
Inquiring ...
扫描设备
sudo hciconfig hci0 iscan
$ hcitool scan
Scanning ...
48:59:A4:BB:7A:08 ZTE Blade A7s
$ hciconfig
hci0: Type: Primary Bus: USB
BD Address: 2C:33:7A:F4:DC:C2 ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING PSCAN
RX bytes:5815 acl:1 sco:0 events:408 errors:0
TX bytes:40065 acl:0 sco:0 commands:364 errors:0
以下两种扫描方式的差异是什么?在笔记本和手机蓝牙进行链接时,改配不同的scan参数,扫描结果有些差异。有时候扫描不到设备,将手机蓝牙重新关开,则可以扫描到。
iscan Enable Inquiry scan
pscan Enable Page scan
采用iscan 时,内核dmesg报错: Bluetooth: hci0: inquiry failed: status 0x12
获取对端设备信息
sudo hcitool info 48:59:A4:BB:7A:08 ( ZTE Blade A7s的地址)
Requesting information ...
BD Address: 48:59:A4:BB:7A:08
OUI Company: zte corporation (48-59-A4)
Device Name: ZTE Blade A7s
LMP Version: 5.0 (0x9) LMP Subversion: 0x0
Manufacturer: MediaTek, Inc. (70)
Features page 0: 0xbf 0x3e 0x8d 0xfe 0xdb 0xff 0x5b 0x87
<3-slot packets> <5-slot packets>
<3-slot EDR ACL>
<5-slot EDR ACL>
<3-slot EDR eSCO>
Features page 1: 0x0f 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Features page 2: 0x05 0x03 0x00 0x00 0x00 0x00 0x00 0x00
bluetoothctl
查询当前的设备
sudo bluetoothctl devices
Device 44:16:2F:9C:E6:11 44-16-2F-9C-E6-11
Device 76:8C:C7:2D:46:32 76-8C-C7-2D-46-32
Device 43:E2:DC:4B:D4:32 43-E2-DC-4B-D4-32
Device 52:65:DA:D4:6B:F9 52-65-DA-D4-6B-F9
Device 48:F4:92:D8:60:43 48-F4-92-D8-60-43
Device 4D:F5:AA:77:A7:29 4D-F5-AA-77-A7-29
Device 1C:B7:96:20:00:03 POT-AL00a
Device D8:1E:DD:09:C8:10 OPPO A9x
Device 39:EF:03:0B:CA:9C EDIFIER BLE
Device 48:59:A4:BB:7A:08 ZTE Blade A7s
配对设备
sudo bluetoothctl pair 48:59:A4:BB:7A:08
Attempting to pair with 48:59:A4:BB:7A:08
[CHG] Device 48:59:A4:BB:7A:08 Connected: yes
[DEL] Device 39:EF:03:0B:CA:9C EDIFIER BLE
[DEL] Device D8:1E:DD:09:C8:10 OPPO A9x
[DEL] Device 1C:B7:96:20:00:03 POT-AL00a
[DEL] Device 4D:F5:AA:77:A7:29 4D-F5-AA-77-A7-29
[DEL] Device 48:F4:92:D8:60:43 48-F4-92-D8-60-43
[DEL] Device 52:65:DA:D4:6B:F9 52-65-DA-D4-6B-F9
[DEL] Device 43:E2:DC:4B:D4:32 43-E2-DC-4B-D4-32
[DEL] Device 76:8C:C7:2D:46:32 76-8C-C7-2D-46-32
[DEL] Device 44:16:2F:9C:E6:11 44-16-2F-9C-E6-11
Failed to pair: org.bluez.Error.AuthenticationFailed
在配对时在电脑测,必须在此弹出的窗口中点击“配对”,才能授权成功,则配对成功
sudo bluetoothctl pair 48:59:A4:BB:7A:08
Attempting to pair with 48:59:A4:BB:7A:08
[CHG] Device 48:59:A4:BB:7A:08 Connected: yes
[CHG] Device 48:59:A4:BB:7A:08 Modalias: bluetooth:v0046p1200d1436
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 00001105-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 0000110a-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 00001112-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 00001115-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 00001116-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 0000111f-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 0000112d-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 0000112f-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 00001132-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 00001200-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device 48:59:A4:BB:7A:08 ServicesResolved: yes
[CHG] Device 48:59:A4:BB:7A:08 Paired: yes
Pairing successful
再次配对,报错:
$ sudo bluetoothctl pair 48:59:A4:BB:7A:08
Attempting to pair with 48:59:A4:BB:7A:08
Failed to pair: org.bluez.Error.AlreadyExists
配对和链接是两个不同的过程。
移除设备
sudo bluetoothctl remove 48:59:A4:BB:7A:08
[CHG] Device 48:59:A4:BB:7A:08 ServicesResolved: no
Device has been removed
$ sudo bluetoothctl pair 48:59:A4:BB:7A:08
Device 48:59:A4:BB:7A:08 not available 此时报设备不可用,需要重新scan设备。
l2ping
查看底层链路的联通性
sudo l2ping 48:59:A4:BB:7A:08
Ping: 48:59:A4:BB:7A:08 from 2C:33:7A:F4:DC:C2 (data size 44) ...
44 bytes from 48:59:A4:BB:7A:08 id 0 time 16.42ms
44 bytes from 48:59:A4:BB:7A:08 id 1 time 9.93ms
44 bytes from 48:59:A4:BB:7A:08 id 2 time 11.12ms
44 bytes from 48:59:A4:BB:7A:08 id 3 time 21.23ms
sudo l2ping 48:59:A4:BB:7A:07
Can't connect: Host is down
问题
1. scan设备的流程是怎么样的?为什么必须手机侧把蓝牙关了再打开,在笔记本侧才能扫描到
2. 配对的流程?配置按钮时做了哪些操作?
linux 蓝牙命令相关推荐
- Linux蓝牙系统(3) Linux 命令
Linux蓝牙系统(3) Linux 命令 2010-09-27 10:45:44 分类: LINUX Andrew Haung bluedrum@163.com 一.Linux对于蓝牙的支持 --- ...
- linux 蓝牙脚本,arm linux串口蓝牙工具移植及使用(示例代码)
ap6212中串口蓝牙在linux下的使用记录 一.linux蓝牙工具移植 主要使用到的工具及相关库如下: bluez-libs-3.36 libxml2-2.7.4 dbus-1.0.2 glib- ...
- 我所用的一些linux常见命令
linux常见命令 自用的一些命令,特地整理下来,以备以防不时之需 .. //上级目录 ./ //当前目录 / //根目录cd cd.. //返回上级目录 cd~ //home目录 cd- //返回之 ...
- linux禁用蓝牙模块,[原创]CVE-2020-12351:Linux蓝牙模块拒绝服务漏洞分析
一. 漏洞信息 1. 漏洞简述 CVE-2020-12351是谷歌安全研究人员在Linux内核中发现的蓝牙安全漏洞.该漏洞位于net/bluetooth/l2cap_core.c,是一个基于堆的类型混 ...
- android shell命令以及Linux常用命令.(以后就不用东奔西走的找了)
Android本来就是一个linux操作系统,所以大部分都是linux的命令,如mkdir,ls,netstat,mount,ps 等,这里就不具体介绍了, 主要介绍几个Android特有的. get ...
- linux常用命令(转载)
Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短 ...
- linux if 命令判断条件总结
linux if命令 关于文件属性的判断式 -a 如果文件存在 -b 如果文件存在,且该文件是区域设备文件 -c 当file存在并且是字符设备文件时返回真 -d 当pathname存在并且是一个目录时 ...
- linux paste变量,Linux paste命令详解
Linux 命令大全 小白告诉你:Linux paste 命令用于合并文件的列. paste 指令会把每个文件以列对列的方式,一列列地加以合并. 语法 paste [-s][-d ][--help] ...
- linux unset命令,Linux unset命令
Linux unset命令 Linux unset命令用于删除变量或函数. unset为shell内建指令,可删除变量或函数. 语法unset [-fv][变量或函数名称] 参数:-f 仅删除函数. ...
最新文章
- python中read table_Python Pandas pandas.read_sql_table函数方法的使用
- Jupyter中出现ModuleNotFoundError: No module named ‘matplotlib‘的解决办法
- [清华集训2016]石家庄的工人阶级队伍比较坚强——三进制FWT
- 组播技术中IP地址到MAC地址的映射
- 流程管理软件如何适应变化
- 《刻意练习》到底讲了些什么???
- linux tomcat php配置文件在哪个文件夹下,tomcat下,怎么安配备置php ?(linux系统)
- html 禁用自动跳转,javascript 实现页面跳转,禁止返回上一页【转】
- B 站神曲 damedane:精髓在于换脸,五分钟就能学会
- 虚树+树型DP SDOI2011消耗战
- Linux命令常用的快捷键
- 05 jQuery的DOM操作
- WM5/6常见进程列表
- uni_app UView 2.0 Upload 上传 header 如何配置
- PMCAFF外包大师合作模式介绍
- 约瑟夫问题c语言链表41人,约瑟夫问题 C语言链表实现
- 【转】Ogre 1.7版本重大改进by 诡辩
- haproxy frontend 和backend
- c语言编程运动会分数统计系统,东华大学数据结构设计C语言运动会分数统计系统...
- pg数据库意外优化一例
热门文章
- CrapApi——接口管理系统部署
- [mmu/cache]-ARMV8-aarch64的虚拟内存(mmu/tlb/cache)介绍-概念扫盲
- 奔跑的熊大案例(CSS3动画)
- Android开发之如何在App间安全地共享文件(FileProvider详解)?
- 全球及中国CMP耗材市场现状全面调研与发展趋势预测报告2022-2028年版
- 20万奖金池!【阿里安全 × ICDM 2022】大规模电商图上的风险商品检测赛火热报名中!...
- 临云优品后台管理系统
- Thumbnailator处理图片
- 【题解】2073: [POI2004]PRZ
- 光通信器件与系统(西交大朱京平笔记) -5-6 EDFA的工作原理