本文先收集基本的蓝牙命令,而后明了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 蓝牙命令相关推荐

  1. Linux蓝牙系统(3) Linux 命令

    Linux蓝牙系统(3) Linux 命令 2010-09-27 10:45:44 分类: LINUX Andrew Haung bluedrum@163.com 一.Linux对于蓝牙的支持 --- ...

  2. linux 蓝牙脚本,arm linux串口蓝牙工具移植及使用(示例代码)

    ap6212中串口蓝牙在linux下的使用记录 一.linux蓝牙工具移植 主要使用到的工具及相关库如下: bluez-libs-3.36 libxml2-2.7.4 dbus-1.0.2 glib- ...

  3. 我所用的一些linux常见命令

    linux常见命令 自用的一些命令,特地整理下来,以备以防不时之需 .. //上级目录 ./ //当前目录 / //根目录cd cd.. //返回上级目录 cd~ //home目录 cd- //返回之 ...

  4. linux禁用蓝牙模块,[原创]CVE-2020-12351:Linux蓝牙模块拒绝服务漏洞分析

    一. 漏洞信息 1. 漏洞简述 CVE-2020-12351是谷歌安全研究人员在Linux内核中发现的蓝牙安全漏洞.该漏洞位于net/bluetooth/l2cap_core.c,是一个基于堆的类型混 ...

  5. android shell命令以及Linux常用命令.(以后就不用东奔西走的找了)

    Android本来就是一个linux操作系统,所以大部分都是linux的命令,如mkdir,ls,netstat,mount,ps 等,这里就不具体介绍了, 主要介绍几个Android特有的. get ...

  6. linux常用命令(转载)

    Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短 ...

  7. linux if 命令判断条件总结

    linux if命令 关于文件属性的判断式 -a 如果文件存在 -b 如果文件存在,且该文件是区域设备文件 -c 当file存在并且是字符设备文件时返回真 -d 当pathname存在并且是一个目录时 ...

  8. linux paste变量,Linux paste命令详解

     Linux 命令大全 小白告诉你:Linux paste 命令用于合并文件的列. paste 指令会把每个文件以列对列的方式,一列列地加以合并. 语法 paste [-s][-d ][--help] ...

  9. linux unset命令,Linux unset命令

    Linux unset命令 Linux unset命令用于删除变量或函数. unset为shell内建指令,可删除变量或函数. 语法unset [-fv][变量或函数名称] 参数:-f 仅删除函数. ...

最新文章

  1. python中read table_Python Pandas pandas.read_sql_table函数方法的使用
  2. Jupyter中出现ModuleNotFoundError: No module named ‘matplotlib‘的解决办法
  3. [清华集训2016]石家庄的工人阶级队伍比较坚强——三进制FWT
  4. 组播技术中IP地址到MAC地址的映射
  5. 流程管理软件如何适应变化
  6. 《刻意练习》到底讲了些什么???
  7. linux tomcat php配置文件在哪个文件夹下,tomcat下,怎么安配备置php ?(linux系统)
  8. html 禁用自动跳转,javascript 实现页面跳转,禁止返回上一页【转】
  9. B 站神曲 damedane:精髓在于换脸,五分钟就能学会
  10. 虚树+树型DP SDOI2011消耗战
  11. Linux命令常用的快捷键
  12. 05 jQuery的DOM操作
  13. WM5/6常见进程列表
  14. uni_app UView 2.0 Upload 上传 header 如何配置
  15. PMCAFF外包大师合作模式介绍
  16. 约瑟夫问题c语言链表41人,约瑟夫问题 C语言链表实现
  17. 【转】Ogre 1.7版本重大改进by 诡辩
  18. haproxy frontend 和backend
  19. c语言编程运动会分数统计系统,东华大学数据结构设计C语言运动会分数统计系统...
  20. pg数据库意外优化一例

热门文章

  1. CrapApi——接口管理系统部署
  2. [mmu/cache]-ARMV8-aarch64的虚拟内存(mmu/tlb/cache)介绍-概念扫盲
  3. 奔跑的熊大案例(CSS3动画)
  4. Android开发之如何在App间安全地共享文件(FileProvider详解)?
  5. 全球及中国CMP耗材市场现状全面调研与发展趋势预测报告2022-2028年版
  6. 20万奖金池!【阿里安全 × ICDM 2022】大规模电商图上的风险商品检测赛火热报名中!...
  7. 临云优品后台管理系统
  8. Thumbnailator处理图片
  9. 【题解】2073: [POI2004]PRZ
  10. 光通信器件与系统(西交大朱京平笔记) -5-6 EDFA的工作原理