命令行 藍牙_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.pswp.cn/news/443624.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443624.shtml
英文地址,請注明出處:http://en.pswp.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…

mysql 關系_MySQL之關系

關系多對多的關系,如何通過mysql來表示站在老師的角度一個老師可以教多個學生,一個老師也可以教一個學生。站在學生的角度一個學生可以被一個老師教一個學生也可以被多個老師教結論:如果站在兩邊看都是一對多的情況,那么這個關系就…

mysql賬號密碼忘_mysql用戶名密碼忘記了解決方法

今天想用一下實驗室服務器的mysql,發現不記得用戶名密碼了。解決方法如下:1. 保證服務器處于安全的狀態,如果可以請拔掉網線...(不過我跳過了這一步,額)2. 修改/etc/my.cnf文件在[mysqld]的段中加入:skip-grant-tables…

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常用內置函數_mysql常見內置函數

在mysql中有許多內置的函數,雖然功能都能在PHP代碼中實現,但巧妙的應用mysql內置函數可以大大的簡化開發過程,提高效率。在這里我總結一下一些常用的,方便以后查看:mysql字符串函數:concat(String2 [,...])…

mysql里面有沒有map類型_MySQL學習(二) 數據類型

MySQL支持多種列類型:數值類型、日期/時間類型和字符串(字符)類型。數值類型數值類型又分為整數型與小數型整數型下面的表顯示了需要的每個整數類型的存儲和范圍創建一張表mysql> CREATE TABLE t_int (int_1 TINYINT,int_2 SMALLINT,int_3 MEDIUMINT,int_4 INT,i…

mysql alter table if_MySQL中的alter table命令的基本使用方法及提速優化

一、基本用法1. 增加列?1alter table tbl_nameadd col_name type例如, 給pet的表增加一列 weight,?1mysql>alter table petadd weightint;2. 刪除列?1alter table tbl_namedrop col_name例如, 刪除pet表中的weight這一列?1mysql>alter table petdrop weight;3. 改變…

mysql_real_escape_string 報錯_addslashes與mysql_real_escape_string的區別

addslashes和mysql_real_escape_string.都是為了使數據安全的插入到數據庫中而進行過濾.那么這兩個函數到底是有什么區別呢??我們今天來簡單的看下..首先.我們還是從PHP手冊入手..手冊上addslashes轉義的字符是單引號()、雙引號(")、反斜線(\)與NUL(NULL 字符)。mysql_r…

shell執行perl_【編程技巧(一)】在Perl、Shell和Python中傳參與輸出幫助文檔

社會你明哥,人狠話又多!【小明的碎碎念】與你不見不散!作為一名搞數據的生物狗,咱們是生物狗中代碼寫得最六的,程序員中生物學得最好的——大家沒意見吧,有意見請憋著跟隨小明的步伐,讓我們開開…

項目開發中的編碼規范

1.規范存在的意義: 好的編碼規范可以盡可能的減少一個軟件的維護成本 , 并且幾乎沒有任何一個軟件,在其整個生命周期中,均由最初的開發人員來維護; 好的編碼規范可以改善軟件的可讀性,可以讓開發人員盡快而徹底地理解…

mysql 5.6.36安裝圖解_2017年12月聚合文章--實戰-Mysql5.6.36腳本編譯安裝及初始化 | 碼友網...

概述本文為centos7.3自動化編譯安裝mysql5.3.6的腳本及后續初始化操作,話不多少,直接上腳本。安裝腳本install.py如下:#codingutf-8#!/usr/bin/pythonimport os,commands#定義變量install_dir /data/mysqldata_dir /data/mysql/datapackage…

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位…

MySQL多個線程同時寫數據_多個線程可以同時將數據寫入文件嗎?

同步聲明可以做到這一點。嘗試下面的代碼,我在類似的情況下使用。package hrblib;import java.io.*;public class FileOp {static int nStatsCount 0;static public String getContents(String sFileName) {try {BufferedReader oReader new BufferedReader(new F…