命令行 蓝牙_Ubuntu使用BlueZ驱动蓝牙dongle

蓝牙dongle即蓝牙适配器,一般为USB接口,通过USB连接到PC等设备。连接dongle后,PC即可使用驱动程序控制dongle连接其它蓝牙设备。本文主要介绍在Ubuntu系统中安装BlueZ的方法及蓝牙的使用。

01

获取BlueZ

BlueZ是Linux系统的官方蓝牙协议栈,提供对核心蓝牙层和协议的支持。

当前的BlueZ由许多独立的模块组成:

  • 蓝牙内核子系统

  • L2CAP和SCO音频内核层

  • RFCOMM,BNEP,CMTP和HIDP内核实现

  • HCI UART,USB,PCMCIA和虚拟设备驱动

  • 通用蓝牙以及SDP库以及守护进程

  • 配置和测试程序

  • 协议解码及分析工具

BlueZ软件包可以直接在官网获取,BlueZ源码可以在Git仓库获取。

BlueZ网站:

http://www.bluez.org/

7dfd862de9f42ef07f3a391d7fac218d.png

Git仓库:

https://git.kernel.org/pub/scm/bluetooth/bluez.git

2e17170c05852712c92dc00091c24767.png

02

编译安装

解压软件包

在BlueZ网站下载的软件包为.tar.xz后缀的压缩文件,可以通过tar Jxvf命令进行解压。

tar Jxvf bluez-5.54.tar.xz

    -J       --处理xz格式的压缩文件

    -x       --从压缩包中提取文件

    -v       --打印处理信息

    -f       --使用压缩文件作为输入

解压后可以查看软件包目录下的README文件了解BlueZ软件包的使用方法。

安装依赖库

编译BlueZ需要以下软件包:

    -GCC编译器

    -GLib库

    -D-Bus库

    -udev库(可选)

    -readline(命令行客户端)

在基于debian的系统中,可以通过以下命令安装上述库。

sudo apt-get build-dep bluez

安装时提示以下信息表示缺少源码链接。

Reading package lists... Done

E: You must put some 'source' URIs in your sources.list

可以在UI界面中打开“Software & Updates”。勾选“Source code”,然后点击“Close”。

a8ee12b216458e66d8f725b08a8c14b8.png

在弹出窗口中点击“Reload”,重新加载软件列表。

17caf17670306a5667c67f936c35f64a.png

23baea6790a6a4d3a16cee9bebc6855a.png

更新完成后再次执行安装命令即可。

也可以直接修改/etc/apt/sources.list文件,在文件中添加deb-src开头的软件源。

配置安装目录

解压软件包后进入软件包目录,通过configure文件配置安装目录。

./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var

    --prefix=/usr                将/usr设为默认目录

    --mandir=/usr/share/man        设置文档目录

    --sysconfdir=/etc         设置只读数据目录

    --localstatedir=/var      设置可编辑数据目录

编译及安装

设置完成后通过make和make install命令进行编译和安装。

make && sudo make install

安装过程会创建/usr/libexec/bluetooth目录,蓝牙程序会存放至该目录中。

安装完成后系统会直接启动蓝牙进程。

ps aux | grep bluetooth

查看蓝牙进程信息。

03

使用dongle

选择“Setting”,进入“Bluetooth”界面,系统中没有蓝牙设备时,会提示插入适配器以使用蓝牙功能。

2fd38e6fde1f6772a0a8632c3c2cce16.png

此时接入蓝牙适配器将会自动开始扫描,找到待连接的设备后点击连接即可。

f0ffee77e0dd9cdcb073130ee7c2170e.png

查看USB设备
lsusb

查看接入的USB设备,打印信息如下:

Bus 002 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

查看无线设备
rfkill list

查看可用的无线设备,打印信息如下:

3: hci0: Bluetooth

       Soft blocked: no

       Hard blocked: no

如果蓝牙设备显示为blocked,则需要先启用蓝牙设备。

3: hci0: Bluetooth

       Soft blocked: yes

       Hard blocked: no

rfkill unblock [identifier]

启用蓝牙设备,identifier为设备的标识,此处为3。

配置HCI设备

hciconfig为HCI设备配置程序,直接发送hciconfig命令可以查看hci设备的信息。

hciconfig -a

查看HCI设备的详细信息。

hciconfig hciX up

启用hciX(hci0, hci1, ...),需要管理员权限。

hciconfig hciX down

关闭hciX(hci0, hci1, ...),需要管理员权限。

参考素材:

BlueZ网站

http://www.bluez.org/about/

ARM平台上蓝牙协议栈Bluez的移植使用和配置

https://blog.csdn.net/gatieme/article/details/48751743

https://blog.csdn.net/colorant/article/details/2590654

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值