命令行 蓝牙_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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java在Windows下导出xml文件到Linux服务器上

最近由于公司项目需要,学习了在Windows平台导出xml文件到Linux服务器上的指定目录下的方法,(注:这里的我的Linux是在本机上装的虚拟机)现在写下来记录一下! 1.首先是项目截图: 2.主要是类&…

java peek函数_Java 8 Stream Api 中的 peek 操作

1. 前言我在 Java 8 Stream API中的 map 和flatMap 中讲述了Java8 Stream API中 map 操作和 flatMap 操作的区别。然后有小伙伴告诉我 peek 操作 也能实现元素的处理。但是你知道 map 和 peek 的区别吗? map 我们在开头文章已经讲过了,你可以去详细了解一…

iphone如何查看dns延迟_iPhone手机网速慢?1分钟教你设置DNS,网速立马翻一番

很多小伙伴在购机时选择苹果手机都是因为iOS系统的流畅度和精简性,但iPhone在可玩性和信号方面是不如安卓手机的。大家在使用过程中一定遇到过这样的情况,连接同一个无线网,但是苹果的网速总是要比安卓慢,这该怎么办呢&#xff1f…

copying mysql status_mysql慢查询copying to tmp table

windows server,无论修改my.ini的tmp_table_size,max_heap_table_size到多少,情况都一样。同样的表和查询语句,在本地运行,没出现慢查询。SELECTg.goods_id,g.goods_name,g.shop_price,g.goods_thumb,SUM(og.goods_num…

JDK 7,jdk1.7 安装及配置

1.打开网页:http://www.oracle.com 下载对应平台的合适JDK。 2. 双击下载的exe,如jdk-7u7-windows-i586.exe。 3.进入安装向导: 4.下一步,更改安装路径,选择安装所有组件。 更改为D:\jdk1.7.0_07\ 点击确定 5.下一步,…

c mysql 编译_MySQL编译安装之cmake

mysql版本5.5以上编译安装时需要用到软件cmake,cmake特性是独立于源码编译,编译工作可以在另外一个目录中而非源码目录中进行,mysql版本5.5以上编译安装时需要用到软件cmake,cmake特性是独立于源码编译,编译工作可以在…

vb连接mysql未发现_vb连接MySQL遇到的问题解决方法

1.安装mysql,2.安装MyODBC-standard-3.51.07-win.msi3:vb连接语句是:Public strcnn As StringPublic sql As StringPublic conn A1.安装mysql,2.安装MyODBC-standard-3.51.07-win.msi3:vb连接语句是:Public strcnn As StringPublic sql As StringPublic conn As New ADODB.Conn…

mysql里面有没有map类型_MySQL学习(二) 数据类型

MySQL支持多种列类型:数值类型、日期/时间类型和字符串(字符)类型。数值类型数值类型又分为整数型与小数型整数型下面的表显示了需要的每个整数类型的存储和范围创建一张表mysql> CREATE TABLE t_int (int_1 TINYINT,int_2 SMALLINT,int_3 MEDIUMINT,int_4 INT,i…

shell执行perl_【编程技巧(一)】在Perl、Shell和Python中传参与输出帮助文档

社会你明哥,人狠话又多!【小明的碎碎念】与你不见不散!作为一名搞数据的生物狗,咱们是生物狗中代码写得最六的,程序员中生物学得最好的——大家没意见吧,有意见请憋着跟随小明的步伐,让我们开开…

python之路2.0_Python之路【第二十一篇】:JS基础

1.2 ECMAScript尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。实际上,一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:● 核心(ECMAScript)● 文档对象…

solr4 mysql自动更新_(solr系列:五) solr定时实时重建索引和增量更新

将mysql中的数据导入到了solr中之后,如果数据库中的数据有变动,solr中还是第一次导入的旧的数据,那该如何是好呢?该如何实现mysql数据库中的数据定时同步到solr中呢?下面将做详细的介绍。准备工作要做好:1、…

mysql pydev_pydev-python 链接mysql数据库(mac系统)

在mac os上安装MySQLdb,遇到了非常多问题,总结一下:首先。假设用sudo easy_install mysql-python命令安装,基本上不会成功的,原因有两个:一是找不到mysql_config位置,二是如今基本上安装的是64位…

上海交通大学python期末考试样题加解析_上海交通大学python期末考试样题加解析...

一、选择题: 将唯一正确的选项写在题前括号中.每题2分.【】(1) 本课程的目标定位是什么?[A] 学习Python语言[B] 学习计算机的工作原理[C] 学习各种算法[D] 学习用计算机解决问题【】(2) 下列哪个标识符是合法的?[A] var-name [B] !#$% [C] _100 [D] elif【】(3) 执行下列语句…

mysql 安装测试ok_tpcc-mysql安装测试与使用的实例教程

1:下载tpcc-mysql的压缩包,从下面的网站进行下载也可直接从叶总博客直接下载:我这边使用的就是后者。2:安装tpcc-mysql[rootmxqmongodb2 tpccmysql]# gunzip tpcc-mysql-src.tgz[rootmxqmongodb2 tpccmysql]# tar xf tpcc-mysql-s…

python多线程写同一文件_Python多线程写文件实例

# -*- coding: utf-8 -*-import threading多线程生成日志工具__author ["yangfei" ]#该方法主要用于写入300行WARN日志def writeWarnLog(file):count0;while count<300:try:file.write(2012-11-28 22:51:01|zookeeper|WARN|m1|172.17.1.15\n)count1except Except…

java asc码_Java中ASC码与字符互相转化

package com.ljq.test;/*** Java中ASC码与字符互相转化** author jiqinlin**/public class ASCTest {private static int ascNum;private static char strChar;public static void main(String[] args) {System.out.println(getAsc("a"));System.out.println(backcha…

hp 导出日志 远程管理卡_惠普服务器远程管理卡安装详解

可以远程管理服务器。带惠普基于Web的网络资源管理和性能监视工具HP Toptools惠普远程管理卡的主要功能是可以实现对服务器的远程监控&#xff0c;其中包括察看日志、远程诊断、远程开/关机、重启等等。基于惠普远程管理卡的重要功能&#xff0c;本文将着重介绍惠普远程管理卡的…

java 错误登陆次数_纯java代码实现登陆次数验证,登陆错误5次之后锁定30分钟

本方法因为是根据思路纯手写&#xff0c;代码可以再简化&#xff0c;功能尝试没问题&#xff0c;最主要就是在登陆验证中的逻辑&#xff0c;checkLogin()方法是登录前的验证&#xff0c;而真正的登陆方式采用的是Shiro&#xff0c;若不是采用Shiro登陆&#xff0c;将该逻辑采用…

java 监听器 分类_java过滤器和监听器详解 分类: 学习专区

过滤器1、Filter工作原理(执行流程)当客户端发出Web资源的请求时&#xff0c;Web服务器根据应用程序配置文件设置的过滤规则进行检查&#xff0c;若客户请求满足过滤规则&#xff0c;则对客户请求&#xff0f;响应进行拦截&#xff0c;对请求头和请求数据进行检查或改动&#x…

linux java启动脚本文件_不错的linux下通用的java程序启动脚本

#!/bin/sh#该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用&#xff0c;#也可以作为启动java程序的独立脚本来使用。##Author: tudaxia.com, Date: 2011/6/7##警告!!!&#xff1a;该脚本stop部分使用系统kill命令来强制终止指定的java程序进程。…