首先確定硬件上有支持藍牙的設(shè)備,然后運行如下命令,就可以開到我們的藍牙設(shè)備了:
lsusb
運行hciconfig可以看到:
從上圖可以看出,我們的藍牙設(shè)備是hci0
運行hcitool dev可以看到我們的藍牙設(shè)備的硬件地址
運行hcitoo --help 可以查看更多相關(guān)命令
然后我們激活它:
sudo hciconfig hci0 up
要注意的是,激活前藍牙必須是打開的,否則會出現(xiàn)如下錯誤:
然后我們開始掃描了:
hcitool scan
可以看到,發(fā)現(xiàn)了我手機的藍牙了~~
然后我們要開始連接了,連接階段使用的主要命令是rfcomm:
運行rfcomm --help 可以查看用法
首先需要綁定目的藍牙設(shè)備:
sudo rfcomm bind /dev/rfcomm0 E0:A6:70:8C:A3:02
注意:上面的這個地址是目的藍牙設(shè)備的硬件地址
接著我們連接它:
sudo cat >/dev/rfcomm0
這是目的藍牙主機就會彈出一個對話框要求輸入pin碼,隨便輸入一個,然后主機就會彈出一個對話框,只要輸入的和剛才一致就可以通過驗證。之后我們發(fā)現(xiàn)我的手機已經(jīng)顯示了成功配對的標記了。
在配對完成之后我們需要刪除綁定(否則在下次使用時會提示設(shè)備正忙),命令如下:
sudo rfcomm release /dev/rfcomm0
在 Linux 下使用 rfkill 軟開關(guān)藍牙及無線功能
很多計算機系統(tǒng)包含無線電傳輸,其中包括Wi-Fi、藍牙和3G設(shè)備。這些設(shè)備消耗電源,在不使用這些設(shè)備時是一種能源浪費。
RFKill 是Linux內(nèi)核中的一個子系統(tǒng),它可提供一個接口,在此接口中可查詢、激活并取消激活計算機系統(tǒng)中的無線電傳輸。當取消激活傳輸時,可使其處于可被軟件重新激活的狀態(tài)( 軟鎖定 )或軟件無法重新激活的位置( 硬鎖定 )。
RFKill 為內(nèi)核子系統(tǒng)提供應用程序編程界面(API)。內(nèi)核驅(qū)動程序被設(shè)計為支持RFKill使用這個API注冊內(nèi)核,并包含啟用和禁用這個設(shè)備的方法。另外,RFKill提供用戶程序可解讀的通知以及用戶程序查詢傳輸狀態(tài)的方法。
RFKill接口位于 /dev/rfkill,其中包含系統(tǒng)中所有無線電傳輸?shù)漠斍盃顟B(tài)。每個設(shè)備都在 sysfs 中注冊當前RFKill狀態(tài)。另外,在啟用了RFKill的設(shè)備中每當狀態(tài)更改時,RFKill會發(fā)出 uevents。
rfkill 是一個命令行工具,您可使用它查詢和更改系統(tǒng)中啟用了RFKill的設(shè)備。要獲得這個工具,請安裝 rfkill 軟件包。
如果開機時在可以搜索到無線網(wǎng)絡(luò)且輸入密碼正確但仍然無法接入的情況下,就可能是rfkill這個程序阻攔了接入,它是個用來控制無線網(wǎng)絡(luò)及藍牙的使用的軟開關(guān)。
使用命令 rfkill list 獲得設(shè)備列表,每個都包含與之關(guān)聯(lián)的索引號 ,從 0 開始。
rfkill list
您可以使用這個索引號讓 rfkill 停使或者使用某個設(shè)備,例如:
rfkill block 0
停用系統(tǒng)中第一個啟用RFKill的設(shè)備。
您還可以使用 rfkill 阻斷某一類設(shè)備,或者所有啟用了RFKill的設(shè)備。例如:
rfkill block wifi
停用系統(tǒng)中的所有Wi-Fi設(shè)備。要停用所有啟用了RFKill的設(shè)備,請運行:
rfkill block all
要重新使用設(shè)備,請運行 rfkill unblock。要獲得 rfkill 可停用的完整設(shè)備類別列表,請運行 rfkill help。